summaryrefslogtreecommitdiffstats
path: root/Changes
blob: 5c76a876142dc262d3d18e29a99c7f99d08c7ab0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
==================== Changes in man-pages-3.12 ====================

Released: 2008-10-29, Bucaramanga


Contributors
------------

The following people contributed notes, ideas, or patches that have
been incorporated in changes in this release:


Apologies if I missed anyone!


New and rewritten pages
-----------------------

pthread_attr_init.3
    Michael Kerrisk
        New page for pthread_attr_init(3) and pthread_attr_destroy(3)

pthread_attr_setdetachstate.3
    Michael Kerrisk
        New page for pthread_attr_setdetachstate(3) and
        pthread_attr_getdetachstate(3)

pthread_attr_setguardsize.3
    Michael Kerrisk
        New page for pthread_attr_setguardsize(3) and
        pthread_attr_getguardsize(3)

pthread_attr_setscope.3
    Michael Kerrisk
        New page for pthread_attr_setscope(3) and pthread_attr_getscope(3)

pthread_attr_setstack.3
    Michael Kerrisk
        New page for pthread_attr_setstack(3) and pthread_attr_getstack(3)

pthread_attr_setstackaddr.3
    Michael Kerrisk
        New page for pthread_attr_setstackaddr(3) and
        pthread_attr_getstackaddr(3)

pthread_attr_setstacksize.3
    Michael Kerrisk
        New page for pthread_attr_setstacksize(3) and
        pthread_attr_getstacksize(3)

pthread_create.3
    Michael Kerrisk
        New page describing pthread_create(3)

pthread_detach.3
    Michael Kerrisk
        New page for pthread_detach(3)

pthread_equal.3
    Michael Kerrisk
        New page for pthread_equal(3)

pthread_exit.3
    Michael Kerrisk
        New page describing pthread_exit(3)

pthread_getattr_np.3
    Michael Kerrisk
        New page for pthread_getattr_np(3)

pthread_join.3
    Michael Kerrisk
        New page for pthread_join(3)

pthread_self.3
    Michael Kerrisk
        New page for pthread_self(3)

pthread_tryjoin_np.3
    Michael Kerrisk
        New page for pthread_tryjoin_np(3) and pthread_timedjoin_np(3)


Newly documented interfaces in existing pages
---------------------------------------------

dup.2
    Michael Kerrisk
        Add description of dup3()
            dup3() was added in kernel 2.6.27.

epoll_create.2
    Michael Kerrisk
        Add description of new epoll_create1()
            The new epoll_create1() system call appeared in Linux 2.6.27.
eventfd.2
    Michael Kerrisk
        Describe eventfd2() and EFD_NONBLOCK and EFD_CLOEXEC
            Linux 2.6.27 added eventfd(), which supports a flags argument
            that eventfd() did not provide.  The flags so far implemented
            are EFD_NONBLOCK and EFD_CLOEXEC,

inotify_init.2
    Michael Kerrisk
        Add description of inotify_init1()
            The inotify_init1() system call was added in Linux 2.6.27.

pipe.2
    Michael Kerrisk
        Add description of new pipe2() syscall
            pipe2() was added in 2.6.27.  Describe the O_NONBLOCK and
            O_CLOEXEC flags.

signalfd.2
    Michael Kerrisk
        Describe signalfd4() and SFD_NONBLOCK and SFD_CLOEXEC
            Linux 2.6.27 added signalfd4(), which supports a flags argument
            that signalfd() did not provide.  The flags so far implemented
            are SFD_NONBLOCK and SFD_CLOEXEC.


New and changed links
---------------------

dup3.2
    Michael Kerrisk
        New link to dup.2
            dup.2 now contains the description of the new dup3() syscall.

epoll_create1.2
    Michael Kerrisk
        New link to epoll_create.2
            epoll_create.2 now includes a description of the new
            epoll_create1() system call.

eventfd2.2
    Michael Kerrisk
        New link to eventfd.2
            The eventfd.2 page has some details on the eventfd2() system call,
            which was new in Linux 2.6.27.

inotify_init1.2
    Michael Kerrisk
        New link to inotify_init.2
            inotify_init.2 now includes a description of the new
            inotify_init1() system call.

pipe2.2
    Michael Kerrisk
        New link to pipe.2
            pipe(2) now contains a description of the new pipe2() syscall.

pthread_attr_destroy.3
    Michael Kerrisk
        New link to new pthread_attr_init.3

pthread_attr_getdetachstate.3
    Michael Kerrisk
        New link to new pthread_attr_setdetachstate.3

pthread_attr_getguardsize.3
    Michael Kerrisk
        New link to new pthread_attr_setguardsize.3

pthread_attr_getscope.3
    Michael Kerrisk
        New link to new pthread_attr_setscope.3

pthread_attr_getstack.3
    Michael Kerrisk
        New link to new pthread_attr_setstack.3

pthread_attr_getstackaddr.3
    Michael Kerrisk
        New link to new pthread_attr_setstackaddr.3

pthread_attr_getstacksize.3
    Michael Kerrisk
        New link to new pthread_attr_setstacksize.3

pthread_timedjoin_np.3
    Michael Kerrisk
        New link to new pthread_tryjoin_np.3

signalfd4.2
    Michael Kerrisk
        New link to signalfd.2
            signalfd.2 now includes text describing signalfd4() system call,
            new in Linux 2.6.27.


Global changes
--------------

eventfd.2, getdents.2, mprotect.2, signalfd.2, timerfd_create.2,
wait.2, backtrace.3, clock_getcpuclockid.3, end.3, fmemopen.3,
fopencookie.3, getdate.3, getgrouplist.3, getprotoent_r.3,
getservent_r.3, gnu_get_libc_version.3, inet.3, inet_pton.3,
makecontext.3, matherr.3, offsetof.3, pthread_attr_init.3,
pthread_create.3, pthread_getattr_np.3, sem_wait.3, strtol.3, core.5
    Michael Kerrisk
        Add ".SS Program source" to EXAMPLE
            Add ".SS Program source" to clearly distinguish shell session and
            descriptive text from actual program code.

eventfd.2, execve.2, getdents.2, ioprio_set.2, mprotect.2,
signalfd.2, timerfd_create.2, wait.2, backtrace.3,
clock_getcpuclockid.3, end.3, fmemopen.3, fopencookie.3, frexp.3,
getdate.3, getgrouplist.3, getprotoent_r.3, getservent_r.3,
gnu_get_libc_version.3, inet.3, inet_pton.3, makecontext.3,
malloc.3, matherr.3, offsetof.3, pthread_attr_init.3,
pthread_create.3, pthread_getattr_np.3, sem_wait.3, strftime.3,
strtok.3, strtol.3, core.5, proc.5, cpuset.7, mq_overview.7
    Michael Kerrisk
        Format user input in shell sessions in boldface

frexp.3, strftime.3, strtok.3
    Michael Kerrisk
        Relocate shell session above example program
            Move the shell session text that demonstrates the use of
            the example program so that it precedes the actual
            example program.  This makes the page consistent with the
            majority of other pages.


Changes to individual pages
---------------------------

epoll_create.2
    Michael Kerrisk
        Say more about unused epoll_create() 'size' arg
            Supply a little more explanation about why the 'size' argument
            of epoll_create() is nowadays ignored.

eventfd.2
    Michael Kerrisk
        Remove crufty text relating to flags argument
            Remove sentence saying that glibc adds a flags argument
            to the syscall; that was only relevant for the older
            eventfd() system call.
getdents.2
    Christoph Hellwig
        Fix text relating to DT_UNKNOWN and 'd_type' support
            Some file systems provide partial support for 'dt_type',
            returning DT_UNKNOWN for cases they don't support.
            Update the discussion of 'd_type' and DT_UNKNOWN to
            support this.

getpeername.2, getsockname.2
    Michael Kerrisk
        SEE ALSO: add ip(7) and unix(7)

getsockopt.2
    Michael Kerrisk
        EINVAL can also occur if 'optval' is invalid
            In some cases, EINVAL can occur if 'optval' is invalid.
            Note this, and point reader to an example in ip(7).
            In response to:
            http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=216092

inotify_init.2, pipe.2, timerfd_create.2
    Michael Kerrisk
        Clarify *_NONBLOCK description
            Make it clear that the NONBLOCK flag sets an attribute in the new
            open file description.

sched_yield.2
    Michael Kerrisk
        Rewrite description in terms of threads
            The text formerly described the operation of sched_yield() in
            terms of processes.  It should be in terms of threads.
    Michael Kerrisk
        Add NOTES text on appropriate use of sched_yield()
            Strategic calls to sched_yield() can be used to improve
            performance, but unnecessary use should be avoided.

sigaction.2
    Michael Kerrisk
        Clarify that sa_mask affects the *per-thread* signal mask
            The page didn't previously clearly explain the scope of the
            signal mask that is affected by sa_mask.

signalfd.2
    Michael Kerrisk
        Remove crufty text relating to flags argument
            Remove sentence saying that glibc adds a flags argument
            to the syscall; that was only relevant for the older
            signalfd() system call.

sigprocmask.2
    Michael Kerrisk
        Clarify that sigprocmask() operates on a per-thread mask
            The first sentence of the page was vague on the scope of the
            attribute changed by sigprocmask().  Reword to make this
            clearer and add a sentence in NOTES to explicitly state that
            the signal mask is a per-thread attribute.

socket.2
    Michael Kerrisk
        Document SOCK_NONBLOCK and SOCK_CLOEXEC flags
            These flags, specified in the 'type' argument, are supported
            since Linux 2.6.27.

socketpair.2
    Michael Kerrisk
        Refer to socket(2) for SOCK_CLOEXEC and SOCK_NONBLOCK
            Refer the reader to socket(2) for a description of the SOCK_CLOEXEC
            and SOCK_NONBLOCK flags, which are supported by socketpair() since
            Linux 2.6.27.

syscalls.2
    Michael Kerrisk
        Add new 2.6.27 system calls
            Add pipe2(), dup3(), epoll_create1(), inotify_init1(),
            eventfd2(), signalfd4().

timerfd_create.2
    Michael Kerrisk
        Document timerfd_create() TFD_CLOEXEC and TFD_NONBLOCK
            TFD_CLOEXEC and TFD_NONBLOCK are supported since LInux 2.6.27.

vfork.2
    Michael Kerrisk
        Clarify meaning of "child releases the parent's memory"
            The man page was not explicit about how the memory used by
            the child is released back to the parent.

ctime.3
    Michael Kerrisk
        ctime_r() and localtime_r() need not set 'timezone' and 'daylight'
            The man page already noted that these functions need not set
            'tzname', but things could be clearer: it tzset() is not called,
            then the other two variables also are not set.

            Also, clarify that ctime() does set 'timezone' and 'daylight'.

dlopen.3
    Michael Kerrisk
        LD_LIBRARY_PATH is inspected once, at program start-up
            Make it clear that LD_LIBRARY_PATH is inspected *once*, at
            program start-up.  (Verified from source and by experiment.)

fmemopen.3
    Michael Kerrisk
        Document binary mode (mode 'b')
            Glibc 2.9 adds support to fmemopen() for binary mode opens.
            Binary mode is specified by inclusion of the letter 'b' in
            the 'mode' argument.

getaddrinfo.3
    Michael Kerrisk
        Clarify error descriptions with some examples
            Clarify the description of some errors by giving examples
            that produce the errors.  (Text added for EAI_SERVICE and
            EAI_SOCKTYPE.)

            Also, add an error case for EAI_BADFLAGS.

gethostbyname.3
    Michael Kerrisk
        Rationalize text on POSIX.1-2001 obsolete interfaces
            POSIX.1 marks gethostbyname(), gethostbyaddr(), and 'h_errno'
            as obsolete.  The man page explained this, but with some
            duplication.  Remove the duplication, and otherwise tidy up
            discussion of this point.

popen.3
    Michael Kerrisk
        Change one-line description in NAME
            s%process I/O%pipe stream to or from a process%
    Michael Kerrisk
        Document 'e' (close-on-exec) flag
            glibc 2.9 implements the 'e' flag in 'type', which sets the
            close-on-exec flag on the underlying file descriptor.

raise.3
    Michael Kerrisk
        SEE ALSO: add pthread_kill(3)

readdir.3
    Christoph Hellwig
        Fix text relating to DT_UNKNOWN and 'd_type' support
            (This mirrors the previous change to getdents.2)
            Some file systems provide partial support for 'dt_type',
            returning DT_UNKNOWN for cases they don't support.
            Update the discussion of 'd_type' and DT_UNKNOWN to
            support this.

strcpy.3
    Jason Spiro
        Strengthen warning about checking against buffer overruns
            http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=413940

tty_ioctl.4
    Michael Kerrisk
        Explain capability requirements for TIOCCONS
            Explain capability requirements for TIOCCONS, and describe
            changes in 2.6.10 relating to capabilities.
    Michael Kerrisk
        Explain capability requirements for various ioctls
            For TIOCSLCKTRMIOS, TIOCSCTTY, TIOCEXCL, explain the exact
            capability that is required (the text formerly just said "root"
            in each case).

proc.5
    Michael Kerrisk
        Document /proc/sys/kernel/threads-max
            Defines the system-wide limit on the number of threads (tasks).

utmp.5
    Pierre Cazenave
        It is just "other" who should not have write perms on utmp
            The page was vague before, saying that utmp should not be
            writable by any user.  This isn't true: it can be, and
            typically is, writable by user and group.

epoll.7
    Michael Kerrisk
        Mention epoll_create1() as part of epoll API
            epoll_create1() was added in Linux 2.6.27, and extends the
            functionality of epoll_create().

inotify.7
    Michael Kerrisk
        Mention inotify_init1() in overview of API
            Discuss the new inotify_init1() system call in the overview of
            the inotify API.

ip.7
    Michael Kerrisk
        Detail EINVAL error for IP_ADD_MEMBERSHIP socket option
            In response to:
            http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=216092

iso_8859-7.7
    Lefteris Dimitroulakis
        Add Drachma, Euro, and Greek Ypogegrammeni
            Also, amend description of characters 0241 and 0242.

man-pages.7
    Michael Kerrisk
        Example shell sessions should have user input boldfaced

pthreads.7
    Michael Kerrisk
        Describe return value from pthreads functions
            Describe the usual success (0) and failure (non-zero) returns,
            and note that POSIX.1-2001 specifies that pthreads functions
            can never fail with the error EINTR.

signal.7
    Michael Kerrisk
        Timeouts make socket interfaces non-restartable
            If setsockopt() is used to set a timeout on a socket(),
            then the various socket interfaces are not automatically
            restarted, even if SA_RESTART is specified when
            establishing the signal handler.  Analogous behavior occurs
            for the "stop signals" case.

socket.7
    Michael Kerrisk
        SEE ALSO: add unix(7)

ld.so.8
    Michael Kerrisk
        Document LD_USE_LOAD_BIAS
            Drawing heavily on Jakub Jelinek's description in
            http://sources.redhat.com/ml/libc-hacker/2003-11/msg00127.html
            (Subject: [PATCH] Support LD_USE_LOAD_BIAS)
        --inhibit-rpath is ignored for setuid/setgid ld.so
            The --inhibit-rpath option is ignored if ld.so is setuid/setgid
            (not if the executable is setuid/setgid).
    Michael Kerrisk
        Since glibc 2.4, setuid/setgid programs ignore LD_ORIGIN_PATH
    Michael Kerrisk
        Fix description of LD_PROFILE and LD_PROFILE_OUTPUT
            Clarify that LD_PROFILE is pathname or a soname,
            and identify name of profiling output file.
            Fix description of LD_PROFILE_OUTPUT, which wasn't even close to
            the truth.  (But why did it remain unfixed for so many years?)
    Michael Kerrisk
        Since glibc 2.3.4, setuid/setgid programs ignore LD_DYNAMIC_WEAK
    Michael Kerrisk
        Since version 2.3.5, setuid/setgid programs ignore LD_SHOW_AUXV
    Michael Kerrisk
        Reorder lists of LD_* environment variables alphabetically
    Michael Kerrisk
        Since glibc 2.3.4, setuid/setgid programs ignore LD_DEBUG