Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1297 - (show 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 -------------------------------------------------
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().