Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/CAVEATS
Parent Directory | Revision Log
Revision 815 -
(hide annotations)
(download)
Fri Apr 24 18:32:46 2009 UTC (15 years ago) by niro
File size: 1592 byte(s)
Fri Apr 24 18:32:46 2009 UTC (15 years ago) by niro
File size: 1592 byte(s)
-updated to klibc-1.5.15
1 | niro | 532 | ------------------------------------------------- |
2 | Please note the following caveats to using klibc: | ||
3 | ------------------------------------------------- | ||
4 | |||
5 | optimization: | ||
6 | ------------- | ||
7 | Compiling with -O0 is not supported. It may or may not work; please | ||
8 | use -O1 if you want to do maximize debuggability. | ||
9 | |||
10 | Compiling with -O0 is more likely to work on gcc 3. | ||
11 | |||
12 | |||
13 | setjmp()/longjmp(): | ||
14 | ------------------- | ||
15 | setjmp() and longjmp() *do not* save signal state. sigsetjmp() and | ||
16 | siglongjmp() *do* save the signal mask -- regardless of the value of | ||
17 | the extra argument. | ||
18 | |||
19 | The standards actually state that if you pass longjmp() a final value | ||
20 | of zero the library should change that to a 1! Presumably the reason | ||
21 | is so people who write broken code can get away with writing | ||
22 | longjmp(buf); or something equally bad. If you pass longjmp() a final | ||
23 | value of 0 you get what you deserve -- setjmp() will happily return 0. | ||
24 | |||
25 | |||
26 | stdio: | ||
27 | ------ | ||
28 | Only a small subset of the stdio functions are implemented. Those | ||
29 | that are implemented do not buffer, although they *do* trap EINTR or | ||
30 | short read/writes and iterate. | ||
31 | |||
32 | _fread() and _fwrite(), which take only one size argument (like | ||
33 | read/write), but do handle EINTR/short return are also available. | ||
34 | |||
35 | |||
36 | namespaces: | ||
37 | ----------- | ||
38 | klibc frequently includes headers in other headers in a way that | ||
39 | exposes more symbols than POSIX says they should. "Live with it." | ||
40 | |||
41 | |||
42 | theading: | ||
43 | --------- | ||
44 | klibc is not thread-safe. Consequently, clone() or any of the | ||
45 | pthreads functions are not included. | ||
46 | |||
47 | |||
48 | bsd_signal vs sysv_signal: | ||
49 | -------------------------- | ||
50 | niro | 815 | signal() now defaults to bsd_signal(). |