[BusyBox] syslogd uClinux another fix

Cristian Ionescu-Idbohrn cristian.ionescu-idbohrn at axis.com
Sat Aug 23 13:11:32 UTC 2003


Hi,

Could someone explain the history behind these 2 defines:

  __UCLIBC__
  __uClinux__

The only thing I find in the uClibc/include/... header files is:

--- include/features.h ------------------------------------------------
/* This macro indicates that the installed library is uClibc.  Use
 * __UCLIBC_MAJOR__ and __UCLIBC_MINOR__ to test for the features in
 * specific releases.  */
#define __UCLIBC__              1

/* Major and minor version number of the uClibc library package are
 * can be used to test for features in specific uClibc releases.
 *
 * Now included from bits/uClibc_config.h */
#if 0
/* For uClibc release 0.9.12, these numbers would be: */
#define __UCLIBC_MAJOR__        0
#define __UCLIBC_MINOR__        9
#define __UCLIBC_SUBLEVEL__     12
#endif

/*  There is an unwholesomely huge amount of code out there that depends on the
 *  presence of GNU libc header files.  We have GNU libc header files.  So here
 *  we commit a horrible sin.  At this point, we _lie_ and claim to be GNU libc
 *  to make things like /usr/include/linux/socket.h and lots of apps work as
 *  their developers intended.  This is IMHO, pardonable, since these defines
 *  are not really intended to check for the presence of a particular library,
 *  but rather are used to define an _interface_.  */
#if !defined __FORCE_NOGLIBC && (!defined _LIBC || defined __FORCE_GLIBC)
#   define __GNU_LIBRARY__ 6
#   define __GLIBC__       2
#   define __GLIBC_MINOR__ 2
#endif
-----------------------------------------------------------------------

Can't find the uClibc/include/bits/uClibc_config.h, referred to here
above. I do find references to __uClinux__ and __UCLIBC__ tho, in the
bb-tree:

./init/init.c:#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_MMU__)
./init/init.c:#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
./init/init.c:#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
./libbb/printf.c:#if defined(__UCLIBC__)
./libbb/vfork_daemon_rexec.c:#if defined(__uClinux__)
./miscutils/crond.c:#if defined(__uClinux__)
./networking/inetd.c:#if defined(__uClinux__)
./procps/free.c:#ifndef __uClinux__
./procps/free.c:#ifndef __uClinux__
./procps/free.c:#ifndef __uClinux__
./shell/ash.c:#if defined(__uClinux__)
./shell/hush.c:#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
./shell/hush.c:#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
./shell/lash.c:#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
./sysklogd/klogd.c:#if defined(__uClinux__)
./sysklogd/syslogd.c:#if ! defined(__uClinux__)
./sysklogd/syslogd.c:#if ! defined(__uClinux__)
./sysklogd/syslogd.c:#if ! defined(__uClinux__)
./util-linux/mount.c:#if defined(__UCLIBC__) && ! defined(__UCLIBC_HAS_RPC__)


I hit the wall i some othe context and I'm curious.


Cheers,
Cristian



More information about the busybox mailing list