[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/build/uClibc/docs/defines.txt b/ap/build/uClibc/docs/defines.txt
new file mode 100644
index 0000000..6e4a604
--- /dev/null
+++ b/ap/build/uClibc/docs/defines.txt
@@ -0,0 +1,85 @@
+Feeble attempt to document the horde of #defines we deal with.
+Editors, please make your descriptions short but informative.
+
+
+
+__BEGIN_DECLS, __END_DECLS
+ Defined to either empty or 'extern "C" {' and '}' if included by C++.
+
+__USE_GNU, __USE_BSD, __USE_XOPEN[2K], __USE_SVID, __USE_POSIX...
+ If defined, user program which included us requests compat additions
+ from relevant standard or Unix flavor. See features.h for full list.
+
+__USE_FILE_OFFSET64
+__USE_LARGEFILE[64]
+_LARGEFILE[64]_SOURCE
+_FILE_OFFSET_BITS
+ ???
+
+__THROW
+ 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
+ Should be always as shown. __PDP_ENDIAN is historic, ignore?
+__BYTE_ORDER, __FLOAT_WORD_ORDER
+ Should be defined to __BIG_ENDIAN or __LITTLE_ENDIAN.
+ Usage: "#if __BYTE_ORDER == __LITTLE_ENDIAN ..."
+ __USE_BSD adds versions without leading "__" for above four defines.
+_BIG_ENDIAN, __BIG_ENDIAN__
+_LITTLE_ENDIAN, __LITTLE_ENDIAN__
+ Defined (to what?) by gcc for some architectures to indicate endianness.
+ Seems that the fact of defined-ness is an indicator, not the value.
+
+__USE_EXTERN_INLINES
+ If defined, headers will supply some function as inlines.
+ uclibc itself is built with this option off and provides
+ out-of-line version of every inlined function in case user program
+ calls it instead of using an inline.
+_EXTERN_INLINE
+ If not defined by user prior to #include, will be defined to
+ "extern inline" or equivalent. IOW, if user defines it prior
+ #include, it replaces "extern __inline" string in inline definitions
+ (those enabled by __USE_EXTERN_INLINES) with something else.
+ A few uclibc .c files use it to create non-inlined functions
+ by defining it to "".
+__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 func(params) internal_function;
+ int internal_function func(params) { body }
+
+_LIBC
+ 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_HAS_XXX__, __UCLIBC_HAVE_XXX__
+ __UCLIBC_HAS_XXX__ are booleans (defined/undefined), defined in
+ 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.