Annotation of dietlibc/dietfeatures.h, revision 1.54

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: 
                     25: /* use errno_location instead of errno */
1.20      fefe       26: #define WANT_THREAD_SAFE
1.1       cvs        27: 
1.35      olaf       28: /* make the startcode, etc. dynamic aware ({con,de}structors) */
1.38      olaf       29: /* #define WANT_DYNAMIC */
1.1       cvs        30: 
                     31: /* do you want smaller or faster string routines? */
1.2       fefe       32: /* #define WANT_FASTER_STRING_ROUTINES */
1.1       cvs        33: 
1.43      fefe       34: /* define this to have strncpy zero-fill and not just zero-terminate the
                     35:  * string */
                     36: /* #define WANT_FULL_POSIX_COMPAT */
                     37: 
1.16      fefe       38: /* read the comment in lib/strncat.c for an explanation */
1.54    ! leitner    39: #define WANT_NON_COMPLIANT_STRNCAT
1.16      fefe       40: 
1.47      leitner    41: /* on i386, Linux has an alternate syscall method since 2002/12/16 */
                     42: /* on my Athlon XP, it is twice as fast, but it's only in kernel 2.5 */
1.53      leitner    43: /* 20040118: enabling this breaks User Mode Linux!  It's their fault. */
1.48      leitner    44: #define WANT_SYSENTER
1.47      leitner    45: 
1.4       fefe       46: #define WANT_LINKER_WARNINGS
                     47: 
1.7       fefe       48: /* you need to define this if you want to run your programs with large
1.31      fefe       49:  * file support on kernel 2.2 or 2.0 */
1.7       fefe       50: #define WANT_LARGEFILE_BACKCOMPAT
                     51: 
1.8       fefe       52: /* do you want localtime(3) to read /etc/localtime?
                     53:  * Needed for daylight saving time etc. */
                     54: #define WANT_TZFILE_PARSER
1.1       cvs        55: 
1.21      fefe       56: /* do you want the DNS routines to parse and use "domain" and "search"
                     57:  * lines from /etc/resolv.conf?  Normally not used on boot floppies and
                     58:  * embedded environments. */
                     59: #define WANT_FULL_RESOLV_CONF
                     60: 
1.45      fefe       61: /* do you want IPv6 transport support in the DNS resolver? */
                     62: #define WANT_IPV6_DNS
                     63: 
1.27      fefe       64: /* do you want gethostbyname and friends to consult /etc/hosts? */
                     65: #define WANT_ETC_HOSTS
                     66: 
1.46      fefe       67: /* do you want gethostbyname to understand dotted decimal IP numbers
                     68:  * directly and not try to resolve them? */
                     69: #define WANT_INET_ADDR_DNS
                     70: 
1.29      fefe       71: /* do you want math functions high precision rather than fast/small? */
                     72: #define WANT_HIGH_PRECISION_MATH
                     73: 
                     74: /* do you want support for matherr? */
                     75: #define WANT_MATHERR
                     76: 
1.30      fefe       77: /* do you want crypt(3) to use MD5 if the salt starts with "$1$"? */
                     78: #define WANT_CRYPT_MD5
                     79: 
1.32      fefe       80: /* do you want diet to include a safeguard dependency to make linking
1.45      fefe       81:  * against glibc fail?  This may fail with older binutils. */
1.32      fefe       82: #define WANT_SAFEGUARD
1.38      olaf       83: 
1.49      leitner    84: /* this enables an experimental DNS hack of mine.
                     85:  * See http://www.fefe.de/ipv6pnpdns.html */
1.50      leitner    86: // #define WANT_IPV6_PLUGPLAY_DNS
1.49      leitner    87: 
1.54    ! leitner    88: /* do you want that malloc(0) return a pointer to a "zero-length" object
1.38      olaf       89:  * that is realloc-able; means realloc(..,size) gives a NEW object (like a
                     90:  * call to malloc(size)).
                     91:  * WARNING: this violates C99 */
                     92: /* #define WANT_MALLOC_ZERO */
                     93: 
1.54    ! leitner    94: /* This enables a stack gap.  Basically, the start code does not run
        !            95:  * main but stackgap, which then does alloca(random()) and calls main.
        !            96:  * The effect is that buffer overflow exploits will no longer be able to
        !            97:  * know the address of the buffer.  Cost: 62 bytes code on x86. */
        !            98: #define WANT_STACKGAP
1.32      fefe       99: 
1.1       cvs       100: /* stop uncommenting here ;-) */
                    101: #ifndef WANT_FASTER_STRING_ROUTINES
                    102: #define WANT_SMALL_STRING_ROUTINES
1.4       fefe      103: #endif
                    104: 
1.22      fefe      105: #ifdef WANT_THREAD_SAFE
1.44      fefe      106: #ifndef __ASSEMBLER__
1.22      fefe      107: #define errno (*__errno_location())
1.23      fefe      108: #define _REENTRANT
1.44      fefe      109: #endif
1.22      fefe      110: #endif
                    111: 
1.33      olaf      112: #ifdef __DYN_LIB
1.39      olaf      113: /* with shared libraries you MUST have a dynamic aware startcode */
1.33      olaf      114: #ifndef WANT_DYNAMIC
                    115: #define WANT_DYNAMIC
1.35      olaf      116: #endif
                    117: /* saveguard crashes with shared objects ... */
                    118: #ifdef WANT_SAFEGUARD
                    119: #undef WANT_SAFEGUARD
1.33      olaf      120: #endif
                    121: #endif
                    122: 
1.1       cvs       123: #endif

LinuxTV legacy CVS <linuxtv.org/cvs>