mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-17 12:01:53 +08:00
bd54749095
At the moment when targeting bare-metal targets or systems without definition for the locking primitives newlib, uses dummy empty macros. This has the advantage of reduced size and faster implementation but does not allow the application to retarget the locking routines. Retargeting is useful for a single toolchain to support multiple systems since then it's only at link time that you know which system you are targeting. This patch adds a new configure option --enable-newlib-retargetable-locking to use dummy empty functions instead of dummy empty macros. The default is to keep the current behavior to not have any size or speed impact on targets not interested in this feature. To allow for any size of lock, the _LOCK_T type is changed into pointer to struct _lock and the _init function are tasked with allocating the locks. The platform being targeted must provide the static locks. A dummy implementation of the locking routines and static lock is provided for single-threaded applications to link successfully out of the box. To ensure that the behavior is consistent (either no locking whatsoever or working locking), the dummy implementation is strongly defined such that a partial retargeting will cause a doubly defined link error. Indeed, the linker will only pull in the file providing the dummy implementation if it cannot find an implementation for one of the routine or lock.
198 lines
6.0 KiB
Plaintext
198 lines
6.0 KiB
Plaintext
/* newlib.hin. Manually edited from the output of autoheader to
|
|
remove all PACKAGE_ macros which will collide with any user
|
|
package using newlib header files and having its own package name,
|
|
version, etc... */
|
|
#ifndef __NEWLIB_H__
|
|
|
|
#define __NEWLIB_H__ 1
|
|
|
|
/* EL/IX level */
|
|
#undef _ELIX_LEVEL
|
|
|
|
/* Newlib version */
|
|
#include <_newlib_version.h>
|
|
|
|
/* C99 formats support (such as %a, %zu, ...) in IO functions like
|
|
* printf/scanf enabled */
|
|
#undef _WANT_IO_C99_FORMATS
|
|
|
|
/* long long type support in IO functions like printf/scanf enabled */
|
|
#undef _WANT_IO_LONG_LONG
|
|
|
|
/* Register application finalization function using atexit. */
|
|
#undef _WANT_REGISTER_FINI
|
|
|
|
/* long double type support in IO functions like printf/scanf enabled */
|
|
#undef _WANT_IO_LONG_DOUBLE
|
|
|
|
/* Positional argument support in printf functions enabled. */
|
|
#undef _WANT_IO_POS_ARGS
|
|
|
|
/* Optional reentrant struct support. Used mostly on platforms with
|
|
very restricted storage. */
|
|
#undef _WANT_REENT_SMALL
|
|
|
|
/* Multibyte supported */
|
|
#undef _MB_CAPABLE
|
|
|
|
/* MB_LEN_MAX */
|
|
#undef _MB_LEN_MAX
|
|
|
|
/* ICONV enabled */
|
|
#undef _ICONV_ENABLED
|
|
|
|
/* Enable ICONV external CCS files loading capabilities */
|
|
#undef _ICONV_ENABLE_EXTERNAL_CCS
|
|
|
|
/* Define if the linker supports .preinit_array/.init_array/.fini_array
|
|
* sections. */
|
|
#undef HAVE_INITFINI_ARRAY
|
|
|
|
/* True if atexit() may dynamically allocate space for cleanup
|
|
functions. */
|
|
#undef _ATEXIT_DYNAMIC_ALLOC
|
|
|
|
/* True if long double supported. */
|
|
#undef _HAVE_LONG_DOUBLE
|
|
|
|
/* Define if compiler supports -fno-tree-loop-distribute-patterns. */
|
|
#undef _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL
|
|
|
|
/* True if long double supported and it is equal to double. */
|
|
#undef _LDBL_EQ_DBL
|
|
|
|
/* Define if ivo supported in streamio. */
|
|
#undef _FVWRITE_IN_STREAMIO
|
|
|
|
/* Define if fseek functions support seek optimization. */
|
|
#undef _FSEEK_OPTIMIZATION
|
|
|
|
/* Define if wide char orientation is supported. */
|
|
#undef _WIDE_ORIENT
|
|
|
|
/* Define if unbuffered stream file optimization is supported. */
|
|
#undef _UNBUF_STREAM_OPT
|
|
|
|
/* Define if lite version of exit supported. */
|
|
#undef _LITE_EXIT
|
|
|
|
/* Define if declare atexit data as global. */
|
|
#undef _REENT_GLOBAL_ATEXIT
|
|
|
|
/* Define if small footprint nano-formatted-IO implementation used. */
|
|
#undef _NANO_FORMATTED_IO
|
|
|
|
/* Define if using retargetable functions for default lock routines. */
|
|
#undef _RETARGETABLE_LOCKING
|
|
|
|
/*
|
|
* Iconv encodings enabled ("to" direction)
|
|
*/
|
|
#undef _ICONV_TO_ENCODING_BIG5
|
|
#undef _ICONV_TO_ENCODING_CP775
|
|
#undef _ICONV_TO_ENCODING_CP850
|
|
#undef _ICONV_TO_ENCODING_CP852
|
|
#undef _ICONV_TO_ENCODING_CP855
|
|
#undef _ICONV_TO_ENCODING_CP866
|
|
#undef _ICONV_TO_ENCODING_EUC_JP
|
|
#undef _ICONV_TO_ENCODING_EUC_TW
|
|
#undef _ICONV_TO_ENCODING_EUC_KR
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_1
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_10
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_11
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_13
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_14
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_15
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_2
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_3
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_4
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_5
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_6
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_7
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_8
|
|
#undef _ICONV_TO_ENCODING_ISO_8859_9
|
|
#undef _ICONV_TO_ENCODING_ISO_IR_111
|
|
#undef _ICONV_TO_ENCODING_KOI8_R
|
|
#undef _ICONV_TO_ENCODING_KOI8_RU
|
|
#undef _ICONV_TO_ENCODING_KOI8_U
|
|
#undef _ICONV_TO_ENCODING_KOI8_UNI
|
|
#undef _ICONV_TO_ENCODING_UCS_2
|
|
#undef _ICONV_TO_ENCODING_UCS_2_INTERNAL
|
|
#undef _ICONV_TO_ENCODING_UCS_2BE
|
|
#undef _ICONV_TO_ENCODING_UCS_2LE
|
|
#undef _ICONV_TO_ENCODING_UCS_4
|
|
#undef _ICONV_TO_ENCODING_UCS_4_INTERNAL
|
|
#undef _ICONV_TO_ENCODING_UCS_4BE
|
|
#undef _ICONV_TO_ENCODING_UCS_4LE
|
|
#undef _ICONV_TO_ENCODING_US_ASCII
|
|
#undef _ICONV_TO_ENCODING_UTF_16
|
|
#undef _ICONV_TO_ENCODING_UTF_16BE
|
|
#undef _ICONV_TO_ENCODING_UTF_16LE
|
|
#undef _ICONV_TO_ENCODING_UTF_8
|
|
#undef _ICONV_TO_ENCODING_WIN_1250
|
|
#undef _ICONV_TO_ENCODING_WIN_1251
|
|
#undef _ICONV_TO_ENCODING_WIN_1252
|
|
#undef _ICONV_TO_ENCODING_WIN_1253
|
|
#undef _ICONV_TO_ENCODING_WIN_1254
|
|
#undef _ICONV_TO_ENCODING_WIN_1255
|
|
#undef _ICONV_TO_ENCODING_WIN_1256
|
|
#undef _ICONV_TO_ENCODING_WIN_1257
|
|
#undef _ICONV_TO_ENCODING_WIN_1258
|
|
|
|
/*
|
|
* Iconv encodings enabled ("from" direction)
|
|
*/
|
|
#undef _ICONV_FROM_ENCODING_BIG5
|
|
#undef _ICONV_FROM_ENCODING_CP775
|
|
#undef _ICONV_FROM_ENCODING_CP850
|
|
#undef _ICONV_FROM_ENCODING_CP852
|
|
#undef _ICONV_FROM_ENCODING_CP855
|
|
#undef _ICONV_FROM_ENCODING_CP866
|
|
#undef _ICONV_FROM_ENCODING_EUC_JP
|
|
#undef _ICONV_FROM_ENCODING_EUC_TW
|
|
#undef _ICONV_FROM_ENCODING_EUC_KR
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_1
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_10
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_11
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_13
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_14
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_15
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_2
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_3
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_4
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_5
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_6
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_7
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_8
|
|
#undef _ICONV_FROM_ENCODING_ISO_8859_9
|
|
#undef _ICONV_FROM_ENCODING_ISO_IR_111
|
|
#undef _ICONV_FROM_ENCODING_KOI8_R
|
|
#undef _ICONV_FROM_ENCODING_KOI8_RU
|
|
#undef _ICONV_FROM_ENCODING_KOI8_U
|
|
#undef _ICONV_FROM_ENCODING_KOI8_UNI
|
|
#undef _ICONV_FROM_ENCODING_UCS_2
|
|
#undef _ICONV_FROM_ENCODING_UCS_2_INTERNAL
|
|
#undef _ICONV_FROM_ENCODING_UCS_2BE
|
|
#undef _ICONV_FROM_ENCODING_UCS_2LE
|
|
#undef _ICONV_FROM_ENCODING_UCS_4
|
|
#undef _ICONV_FROM_ENCODING_UCS_4_INTERNAL
|
|
#undef _ICONV_FROM_ENCODING_UCS_4BE
|
|
#undef _ICONV_FROM_ENCODING_UCS_4LE
|
|
#undef _ICONV_FROM_ENCODING_US_ASCII
|
|
#undef _ICONV_FROM_ENCODING_UTF_16
|
|
#undef _ICONV_FROM_ENCODING_UTF_16BE
|
|
#undef _ICONV_FROM_ENCODING_UTF_16LE
|
|
#undef _ICONV_FROM_ENCODING_UTF_8
|
|
#undef _ICONV_FROM_ENCODING_WIN_1250
|
|
#undef _ICONV_FROM_ENCODING_WIN_1251
|
|
#undef _ICONV_FROM_ENCODING_WIN_1252
|
|
#undef _ICONV_FROM_ENCODING_WIN_1253
|
|
#undef _ICONV_FROM_ENCODING_WIN_1254
|
|
#undef _ICONV_FROM_ENCODING_WIN_1255
|
|
#undef _ICONV_FROM_ENCODING_WIN_1256
|
|
#undef _ICONV_FROM_ENCODING_WIN_1257
|
|
#undef _ICONV_FROM_ENCODING_WIN_1258
|
|
|
|
#endif /* !__NEWLIB_H__ */
|
|
|