Annotation of dietlibc/dietfeatures.h, revision 1.65
1.4 fefe 1: #ifndef _DIETFEATURES_H
2: #define _DIETFEATURES_H
1.1 cvs 3:
4: /* feel free to comment some of these out to reduce code size */
5:
1.13 fefe 6: #define WANT_FLOATING_POINT_IN_PRINTF
7: #define WANT_FLOATING_POINT_IN_SCANF
1.12 fefe 8: #define WANT_CHARACTER_CLASSES_IN_SCANF
1.1 cvs 9: #define WANT_NULL_PRINTF
1.52 sanjiyan 10: /* #define WANT_ERROR_PRINTF */
1.24 fefe 11: #define WANT_LONGLONG_PRINTF
1.42 olaf 12: #define WANT_LONGLONG_SCANF
1.1 cvs 13:
1.20 fefe 14: /* 128 or 2048 bytes buffer size? */
15: /* #define WANT_SMALL_STDIO_BUFS */
16:
1.40 fefe 17: /* want fread to read() directly if size of data is larger than buffer?
18: * This costs a few bytes but is worth it if the application is already
19: * buffering. */
20: #define WANT_FREAD_OPTIMIZATION
21:
1.34 fefe 22: /* this is only for meaningful for ttyname and sysconf_cpus so far */
1.40 fefe 23: #define SLASH_PROC_OK
1.1 cvs 24:
1.65 ! leitner 25: /* use errno_location instead of errno; NEEDED FOR MULTI-THREADING! */
1.20 fefe 26: #define WANT_THREAD_SAFE
1.1 cvs 27:
1.65 ! leitner 28: /* support __thread; NEEDED FOR MULTI-THREADING! */
1.64 leitner 29: #define WANT_TLS
30:
1.35 olaf 31: /* make the startcode, etc. dynamic aware ({con,de}structors) */
1.38 olaf 32: /* #define WANT_DYNAMIC */
1.1 cvs 33:
1.57 leitner 34: /* GDB support in the dynamic linker */
35: #define WANT_LD_SO_GDB_SUPPORT
36:
1.1 cvs 37: /* do you want smaller or faster string routines? */
1.63 leitner 38: #define WANT_FASTER_STRING_ROUTINES
1.1 cvs 39:
1.43 fefe 40: /* define this to have strncpy zero-fill and not just zero-terminate the
41: * string */
42: /* #define WANT_FULL_POSIX_COMPAT */
43:
1.47 leitner 44: /* on i386, Linux has an alternate syscall method since 2002/12/16 */
45: /* on my Athlon XP, it is twice as fast, but it's only in kernel 2.5 */
1.53 leitner 46: /* 20040118: enabling this breaks User Mode Linux! It's their fault. */
1.48 leitner 47: #define WANT_SYSENTER
1.47 leitner 48:
1.4 fefe 49: #define WANT_LINKER_WARNINGS
50:
1.7 fefe 51: /* you need to define this if you want to run your programs with large
1.31 fefe 52: * file support on kernel 2.2 or 2.0 */
1.7 fefe 53: #define WANT_LARGEFILE_BACKCOMPAT
54:
1.8 fefe 55: /* do you want localtime(3) to read /etc/localtime?
56: * Needed for daylight saving time etc. */
57: #define WANT_TZFILE_PARSER
1.1 cvs 58:
1.21 fefe 59: /* do you want the DNS routines to parse and use "domain" and "search"
60: * lines from /etc/resolv.conf? Normally not used on boot floppies and
61: * embedded environments. */
62: #define WANT_FULL_RESOLV_CONF
63:
1.45 fefe 64: /* do you want IPv6 transport support in the DNS resolver? */
65: #define WANT_IPV6_DNS
66:
1.27 fefe 67: /* do you want gethostbyname and friends to consult /etc/hosts? */
68: #define WANT_ETC_HOSTS
69:
1.46 fefe 70: /* do you want gethostbyname to understand dotted decimal IP numbers
71: * directly and not try to resolve them? */
72: #define WANT_INET_ADDR_DNS
73:
1.29 fefe 74: /* do you want math functions high precision rather than fast/small? */
75: #define WANT_HIGH_PRECISION_MATH
76:
77: /* do you want support for matherr? */
78: #define WANT_MATHERR
79:
1.30 fefe 80: /* do you want crypt(3) to use MD5 if the salt starts with "$1$"? */
81: #define WANT_CRYPT_MD5
82:
1.32 fefe 83: /* do you want diet to include a safeguard dependency to make linking
1.45 fefe 84: * against glibc fail? This may fail with older binutils. */
1.32 fefe 85: #define WANT_SAFEGUARD
1.38 olaf 86:
1.60 leitner 87: /* This enables zeroconf DNS aka Rendezvous aka Bonjour. */
88: /* This code will try zeroconf DNS if you ask for host.local or if you
89: * ask for an unqualified hostname */
1.59 leitner 90: #define WANT_PLUGPLAY_DNS
1.49 leitner 91:
1.54 leitner 92: /* do you want that malloc(0) return a pointer to a "zero-length" object
1.38 olaf 93: * that is realloc-able; means realloc(..,size) gives a NEW object (like a
94: * call to malloc(size)).
95: * WARNING: this violates C99 */
96: /* #define WANT_MALLOC_ZERO */
97:
1.62 leitner 98: /* do you want free to overwrite freed data immediately, in the hope of
99: * catching people accessing pointers after they were freed? This does
100: * a memset with 0x55 as a value. which is not NULL and not -1. Please
101: * note that this is the shotgun method for debugging, what you really
102: * want is valgrind. */
103: /* #define WANT_FREE_OVERWRITE */
104:
1.54 leitner 105: /* This enables a stack gap. Basically, the start code does not run
106: * main but stackgap, which then does alloca(random()) and calls main.
107: * The effect is that buffer overflow exploits will no longer be able to
108: * know the address of the buffer. Cost: 62 bytes code on x86. */
1.56 leitner 109: /* WARNING: this appears to break with some binutils versions. Works
110: * for me with binutils 2.15. The symptom is an error message that
111: * `main' can not be found. */
1.58 leitner 112: /* #define WANT_STACKGAP */
1.32 fefe 113:
1.61 leitner 114: /* Include support for ProPolice/SSP, calls guard_setup */
115: /* ProPolice is part of gcc 4.1 and up, there were patches for earlier
116: * versions. To make use of this, compile your application with
1.64 leitner 117: * -fstack-protector. */
1.61 leitner 118: #if (__GNUC__>4) || ((__GNUC__==4) && (__GNUC_MINOR__>=1))
119: #define WANT_SSP
120: #endif
121:
122:
123:
1.1 cvs 124: /* stop uncommenting here ;-) */
1.61 leitner 125: #if defined(WANT_SSP) || defined(WANT_STACKGAP)
126: #define CALL_IN_STARTCODE stackgap
127: #else
128: #define CALL_IN_STARTCODE main
129: #endif
130:
1.1 cvs 131: #ifndef WANT_FASTER_STRING_ROUTINES
132: #define WANT_SMALL_STRING_ROUTINES
1.4 fefe 133: #endif
134:
1.22 fefe 135: #ifdef WANT_THREAD_SAFE
1.44 fefe 136: #ifndef __ASSEMBLER__
1.22 fefe 137: #define errno (*__errno_location())
1.23 fefe 138: #define _REENTRANT
1.44 fefe 139: #endif
1.22 fefe 140: #endif
141:
1.33 olaf 142: #ifdef __DYN_LIB
1.39 olaf 143: /* with shared libraries you MUST have a dynamic aware startcode */
1.33 olaf 144: #ifndef WANT_DYNAMIC
145: #define WANT_DYNAMIC
1.35 olaf 146: #endif
147: /* saveguard crashes with shared objects ... */
148: #ifdef WANT_SAFEGUARD
149: #undef WANT_SAFEGUARD
1.33 olaf 150: #endif
151: #endif
152:
1.1 cvs 153: #endif
LinuxTV legacy CVS <linuxtv.org/cvs>