summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--findutils/find.c5
-rw-r--r--include/platform.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/findutils/find.c b/findutils/find.c
index 634fbd1..f75bc9e 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 bfe6315..5193485 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__))