add USE_PORTABLE_CODE option and use it in find applet
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 13 Sep 2009 12:57:24 +0000 (14:57 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 13 Sep 2009 12:57:24 +0000 (14:57 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Config.in
findutils/find.c

index 99f814e5ab705ba227fada4774f76d3b7e6e0c19..05bc3a58abdabe44510e8b93edf99663cf713ef4 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -30,6 +30,14 @@ config EXTRA_COMPAT
          some GNU extensions in libc. You probably only need this option
          if you plan to run busybox on desktop.
 
+config USE_PORTABLE_CODE
+       bool "Avoid using GCC-specific code constructs"
+       default n
+       help
+         Use this option if you are trying to compile busybox with
+         compiler other than gcc.
+         If you do use gcc, this option may needlessly increase code size.
+
 choice
        prompt "Buffer allocation policy"
        default FEATURE_BUFFERS_USE_MALLOC
index ba8fa08543ca298cafdf00e9ecb6fdb41844bb7d..76f670942253d6fc2234f66e4e0e7ce2e883e73d 100644 (file)
@@ -276,7 +276,11 @@ ACTF(inum)
 ACTF(exec)
 {
        int i, rc;
+#if ENABLE_USE_PORTABLE_CODE
+       char **argv = alloca(sizeof(char*) * (ap->exec_argc + 1));
+#else /* gcc 4.3.1 generates smaller code: */
        char *argv[ap->exec_argc + 1];
+#endif
        for (i = 0; i < ap->exec_argc; i++)
                argv[i] = subst(ap->exec_argv[i], ap->subst_count[i], fileName);
        argv[i] = NULL; /* terminate the list */