Magellan Linux

Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/CAVEATS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1297 - (hide annotations) (download)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File size: 1594 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 niro 532 -------------------------------------------------
2 niro 1297 Please note the following caveats when using klibc:
3 niro 532 -------------------------------------------------
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().