OSDN Git Service

test: Fix math .c dependency
[uclinux-h8/uClibc.git] / docs / defines.txt
index c142494..6e4a604 100644 (file)
@@ -1,5 +1,5 @@
 Feeble attempt to document the horde of #defines we deal with.
-Editors, plese make your descriptions short but informative.
+Editors, please make your descriptions short but informative.
 
 
 
@@ -16,11 +16,18 @@ _LARGEFILE[64]_SOURCE
 _FILE_OFFSET_BITS
     ???
 
-__NTH(fct)
 __THROW
-__REDIRECT(name, proto, alias)
-__REDIRECT_NTH(name, proto, alias)
-    ???
+    Function annotation "I do not throw anything".
+__NTH(func(params))
+    Function annotation "I do not throw anything".
+    Needed for situatuons when it's unclear on what side of "func(params)"
+    the "throw()" or "attribute((nothrow))" should eventually appear.
+    Messy, eh?
+
+return_type __REDIRECT(name, (params), alias)
+    declare alias to "name(params)"
+return_type __REDIRECT_NTH(name, (params), alias)
+    declare alias to "name(params) __THROW"
 
 __BIG_ENDIAN    4321
 __LITTLE_ENDIAN 1234
@@ -49,6 +56,7 @@ _EXTERN_INLINE
 __extern_inline
     Defined to "extern inline", modulo gcc/C standard deviations.
     Can't be used by user to play tricks as with _EXTERN_INLINE.
+
 internal_function
     Used to modify function's calling convention, if "standard" one
     is suboptimal. Examples:
@@ -56,11 +64,8 @@ internal_function
        int internal_function func(params) { body }
 
 _LIBC
-UCLIBC_INTERNAL
-    Defined only at libc build time. _LIBC is probably from glibc,
-and UCLIBC_INTERNAL is added by vda (he didn't know about _LIBC).
-Both defines are physically deleted from headers (using unifdef tool)
-in installed headers ("make install").
+    Defined only at libc build time. It is physically deleted
+from the headers (using unifdef tool) in installed headers ("make install").
 
 __UCLIBC_XXX
     uclibc-internal and uclibc-specific defines. In particular:
@@ -69,3 +74,12 @@ __UCLIBC_HAS_XXX__, __UCLIBC_HAVE_XXX__
     uClibc_config.h and generated from uclibc .config file.
     __UCLIBC_HAVE_XXX__ are booleans from bits/uClibc_arch_features.h
     (there are more __UCLIBC_XXX defines there)
+
+_IEEE_LIBM
+    Always defined at libm build time
+__LDBL_COMPAT
+    Never defined, TODO: remove?
+
+__SSP_ALL__
+    All functions, even small ones, have stack smashing protection
+    prologue enabled.