From 0f3a580c4fec98bd4612dce4d77a9ac53a669fd3 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Thu, 20 Mar 2008 13:13:09 +0000 Subject: [PATCH] gcc compat fix and warning suppression by Joe Krahn --- findutils/find.c | 5 ++++- include/platform.h | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/findutils/find.c b/findutils/find.c index 634fbd189..f75bc9ef9 100644 --- a/findutils/find.c +++ b/findutils/find.c @@ -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; diff --git a/include/platform.h b/include/platform.h index bfe631506..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__))