Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/CAVEATS
Parent Directory | Revision Log
Revision 1297 -
(show annotations)
(download)
Fri May 27 15:12:11 2011 UTC (13 years, 4 months ago) by niro
File size: 1594 byte(s)
Fri May 27 15:12:11 2011 UTC (13 years, 4 months ago) by niro
File size: 1594 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 | ------------------------------------------------- |
2 | Please note the following caveats when 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 | signal() now defaults to bsd_signal(). |