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.
_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
__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:
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:
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.