X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fplatform.h;h=51934853b777106c48fc87e2d9785663df631ed2;hb=1f228985b27602f94ff973d50e276220887df6a3;hp=edb0f8ab0f94ad540bc0780ff29d42e7a445a22b;hpb=77f1ec1b9bf100e6c10aa0856c7156e321511785;p=oweals%2Fbusybox.git diff --git a/include/platform.h b/include/platform.h index edb0f8ab0..51934853b 100644 --- a/include/platform.h +++ b/include/platform.h @@ -52,7 +52,8 @@ # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) # define ATTRIBUTE_PACKED __attribute__ ((__packed__)) # define ATTRIBUTE_ALIGNED(m) __attribute__ ((__aligned__(m))) -# if __GNUC_PREREQ (3,0) +/* __NO_INLINE__: some gcc's do not honor inlining! :( */ +# if __GNUC_PREREQ (3,0) && !defined(__NO_INLINE__) # define ALWAYS_INLINE __attribute__ ((always_inline)) inline /* I've seen a toolchain where I needed __noinline__ instead of noinline */ # define NOINLINE __attribute__((__noinline__)) @@ -137,29 +138,29 @@ /* ---- Networking ------------------------------------------ */ #ifndef __APPLE__ # include +# ifndef __socklen_t_defined +typedef int socklen_t; +# endif #else # include #endif -#ifndef __socklen_t_defined -typedef int socklen_t; -#endif - /* ---- Compiler dependent settings ------------------------- */ -#if (defined __digital__ && defined __unix__) +#if (defined __digital__ && defined __unix__) || defined __APPLE__ # undef HAVE_MNTENT_H +# undef HAVE_SYS_STATFS_H #else # define HAVE_MNTENT_H 1 +# define HAVE_SYS_STATFS_H 1 #endif /* ___digital__ && __unix__ */ /* linux/loop.h relies on __u64. Make sure we have that as a proper type * until userspace is widely fixed. */ -#ifndef __GNUC__ -#if defined __INTEL_COMPILER +#if (defined __INTEL_COMPILER && !defined __GNUC__) || \ + (defined __GNUC__ && defined __STRICT_ANSI__) __extension__ typedef __signed__ long long __s64; __extension__ typedef unsigned long long __u64; -#endif /* __INTEL_COMPILER */ -#endif /* ifndef __GNUC__ */ +#endif /*----- Kernel versioning ------------------------------------*/ #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) @@ -181,7 +182,7 @@ __extension__ typedef unsigned long long __u64; #define HAVE_FEATURES_H #include #define HAVE_STDINT_H -#else +#elif !defined __APPLE__ /* Largest integral types. */ #if __BIG_ENDIAN__ typedef long intmax_t; @@ -228,11 +229,11 @@ typedef unsigned smalluint; /* uclibc does not implement daemon() for no-mmu systems. * For 0.9.29 and svn, __ARCH_USE_MMU__ indicates no-mmu reliably. * For earlier versions there is no reliable way to check if we are building - * for a mmu-less system; the user should pass EXTRA_CFLAGS="-DBB_NOMMU" - * on his own. + * for a mmu-less system. */ -#if defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \ - __UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__ +#if ENABLE_NOMMU || \ + (defined __UCLIBC__ && __UCLIBC_MAJOR__ >= 0 && __UCLIBC_MINOR__ >= 9 && \ + __UCLIBC_SUBLEVEL__ > 28 && !defined __ARCH_USE_MMU__) #define BB_MMU 0 #define BB_NOMMU 1 #define USE_FOR_NOMMU(...) __VA_ARGS__ @@ -268,12 +269,6 @@ static ALWAYS_INLINE char* strchrnul(const char *s, char c) # define lchown chown #endif -/* THIS SHOULD BE CLEANED OUT OF THE TREE ENTIRELY */ -/* FIXME: fix tar.c! */ -#ifndef FNM_LEADING_DIR -#define FNM_LEADING_DIR 0 -#endif - #if (defined __digital__ && defined __unix__) #include #define HAVE_STANDARDS_H