gcc compat fix and warning suppression
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 20 Mar 2008 13:13:09 +0000 (13:13 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 20 Mar 2008 13:13:09 +0000 (13:13 -0000)
by Joe Krahn <krahn AT niehs.nih.gov>

findutils/find.c
include/platform.h

index 634fbd1..f75bc9e 100644 (file)
@@ -517,7 +517,10 @@ static action*** parse_params(char **argv)
        unsigned cur_action = 0;
        USE_FEATURE_FIND_NOT( bool invert_flag = 0; )
 
-       /* 'static' doesn't work here! (gcc 4.1.2) */
+       /* This is the only place in busybox where we use nested function.
+        * So far more standard alternatives were bigger. */
+       /* Suppress a warning "func without a prototype" */
+       auto action* alloc_action(int sizeof_struct, action_fp f);
        action* alloc_action(int sizeof_struct, action_fp f)
        {
                action *ap;
index bfe6315..5193485 100644 (file)
@@ -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__))