randomconfig fixes
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 19 Jun 2016 16:15:33 +0000 (18:15 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 19 Jun 2016 16:15:33 +0000 (18:15 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
archival/libarchive/get_header_tar.c
archival/tar.c
miscutils/Kbuild.src
modutils/modprobe-small.c
scripts/kconfig/zconf.hash.c_shipped
scripts/randomtest
testsuite/busybox.tests
testsuite/du/du-m-works
util-linux/fbset.c
util-linux/fdisk_osf.c
util-linux/fdisk_sgi.c

index ac2be726f205fb726d618fc4910020d31ab30d66..ea91a883e0b61ff7951c89e283f2d45148080204 100644 (file)
@@ -60,13 +60,21 @@ static unsigned long long getOctal(char *str, int len)
 }
 #define GET_OCTAL(a) getOctal((a), sizeof(a))
 
+#define TAR_EXTD (ENABLE_FEATURE_TAR_GNU_EXTENSIONS || ENABLE_FEATURE_TAR_SELINUX)
+#if !TAR_EXTD
+#define process_pax_hdr(archive_handle, sz, global) \
+       process_pax_hdr(archive_handle, sz)
+#endif
 /* "global" is 0 or 1 */
 static void process_pax_hdr(archive_handle_t *archive_handle, unsigned sz, int global)
 {
+#if !TAR_EXTD
+       unsigned blk_sz = (sz + 511) & (~511);
+       seek_by_read(archive_handle->src_fd, blk_sz);
+#else
+       unsigned blk_sz = (sz + 511) & (~511);
        char *buf, *p;
-       unsigned blk_sz;
 
-       blk_sz = (sz + 511) & (~511);
        p = buf = xmalloc(blk_sz + 1);
        xread(archive_handle->src_fd, buf, blk_sz);
        archive_handle->offset += blk_sz;
@@ -104,30 +112,31 @@ static void process_pax_hdr(archive_handle_t *archive_handle, unsigned sz, int g
                p[-1] = '\0';
                value = end + 1;
 
-#if ENABLE_FEATURE_TAR_GNU_EXTENSIONS
+# if ENABLE_FEATURE_TAR_GNU_EXTENSIONS
                if (!global && is_prefixed_with(value, "path=")) {
                        value += sizeof("path=") - 1;
                        free(archive_handle->tar__longname);
                        archive_handle->tar__longname = xstrdup(value);
                        continue;
                }
-#endif
+# endif
 
-#if ENABLE_FEATURE_TAR_SELINUX
+# if ENABLE_FEATURE_TAR_SELINUX
                /* Scan for SELinux contexts, via "RHT.security.selinux" keyword.
                 * This is what Red Hat's patched version of tar uses.
                 */
-# define SELINUX_CONTEXT_KEYWORD "RHT.security.selinux"
+#  define SELINUX_CONTEXT_KEYWORD "RHT.security.selinux"
                if (is_prefixed_with(value, SELINUX_CONTEXT_KEYWORD"=")) {
                        value += sizeof(SELINUX_CONTEXT_KEYWORD"=") - 1;
                        free(archive_handle->tar__sctx[global]);
                        archive_handle->tar__sctx[global] = xstrdup(value);
                        continue;
                }
-#endif
+# endif
        }
 
        free(buf);
+#endif
 }
 
 char FAST_FUNC get_header_tar(archive_handle_t *archive_handle)
index 346a9404eef9f8a3e3780892797aeea7da53b3da..7434e22e4028a7b086eed2f7fc6bc5ff62f79dc8 100644 (file)
@@ -1199,9 +1199,10 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
        //      /* We need to know whether child (gzip/bzip/etc) exits abnormally */
        //      signal(SIGCHLD, check_errors_in_children);
 
+#if ENABLE_FEATURE_TAR_CREATE
        /* Create an archive */
        if (opt & OPT_CREATE) {
-#if SEAMLESS_COMPRESSION
+# if SEAMLESS_COMPRESSION
                const char *zipMode = NULL;
                if (opt & OPT_COMPRESS)
                        zipMode = "compress";
@@ -1213,7 +1214,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
                        zipMode = "lzma";
                if (opt & OPT_XZ)
                        zipMode = "xz";
-#endif
+# endif
                /* NB: writeTarFile() closes tar_handle->src_fd */
                return writeTarFile(tar_handle->src_fd, verboseFlag,
                                (opt & OPT_DEREFERENCE ? ACTION_FOLLOWLINKS : 0)
@@ -1221,6 +1222,7 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
                                tar_handle->accept,
                                tar_handle->reject, zipMode);
        }
+#endif
 
        if (opt & OPT_ANY_COMPRESS) {
                USE_FOR_MMU(IF_DESKTOP(long long) int FAST_FUNC (*xformer)(transformer_state_t *xstate);)
index 7b449e6e8b587ba6b7f2f68693da9065933cb905..503f549047b660cd872ad0f74a112aadfd3a9b92 100644 (file)
@@ -25,8 +25,13 @@ lib-$(CONFIG_FLASH_UNLOCK)   += flash_lock_unlock.o
 lib-$(CONFIG_IONICE)      += ionice.o
 lib-$(CONFIG_HDPARM)      += hdparm.o
 lib-$(CONFIG_INOTIFYD)    += inotifyd.o
-lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
-lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
+
+ifeq ($(CONFIG_FEATURE_LAST_FANCY),y)
+lib-$(CONFIG_FEATURE_LAST_FANCY) += last_fancy.o
+else
+lib-$(CONFIG_LAST)        += last.o
+endif
+
 lib-$(CONFIG_LESS)        += less.o
 lib-$(CONFIG_MAKEDEVS)    += makedevs.o
 lib-$(CONFIG_MAN)         += man.o
index 9c941064b60f3534801cf378e3d79d554f0858d6..ffb46e6becda34096b11577d09a30a63db6b7633 100644 (file)
@@ -21,7 +21,6 @@
 
 extern int init_module(void *module, unsigned long len, const char *options);
 extern int delete_module(const char *module, unsigned flags);
-extern int query_module(const char *name, int which, void *buf, size_t bufsize, size_t *ret);
 /* linux/include/linux/module.h has limit of 64 chars on module names */
 #undef MODULE_NAME_LEN
 #define MODULE_NAME_LEN 64
index d39cf189ae0679d66d71d1be99e9ff7eb5f8ee5a..29d9cf6cc9160920e2c33f1f13b9eb5d9aa6f157 100644 (file)
 struct kconf_id;
 /* maximum key range = 45, duplicates = 0 */
 
-#ifdef __GNUC__
-__inline
-#else
-#ifdef __cplusplus
-inline
-#endif
-#endif
-static unsigned int
+unsigned int
 kconf_id_hash (register const char *str, register unsigned int len)
 {
   static unsigned char asso_values[] =
@@ -119,7 +112,7 @@ struct kconf_id_strings_t
     char kconf_id_strings_str41[sizeof("choice")];
     char kconf_id_strings_str46[sizeof("prompt")];
   };
-static struct kconf_id_strings_t kconf_id_strings_contents =
+struct kconf_id_strings_t kconf_id_strings_contents =
   {
     "if",
     "int",
@@ -153,9 +146,6 @@ static struct kconf_id_strings_t kconf_id_strings_contents =
     "prompt"
   };
 #define kconf_id_strings ((const char *) &kconf_id_strings_contents)
-#ifdef __GNUC__
-__inline
-#endif
 struct kconf_id *
 kconf_id_lookup (register const char *str, register unsigned int len)
 {
index e2513d058b76288105432e0a5c99fe77f82f32d4..41f252ad70fbd08a21ce42333eb5e67f01bccb6b 100755 (executable)
@@ -52,9 +52,18 @@ echo '# CONFIG_RFKILL is not set' >>.config
 if test x"$LIBC" = x"glibc"; then
        cat .config \
        | grep -v CONFIG_STATIC \
+       \
+       | grep -v CONFIG_FEATURE_2_4_MODULES \
+       | grep -v CONFIG_FEATURE_USE_BSS_TAIL \
+       | grep -v CONFIG_DEBUG_SANITIZE \
        >.config.new
        mv .config.new .config
        echo '# CONFIG_STATIC is not set' >>.config
+       # newer glibc (at least 2.23) no longer supply query_module() ABI.
+       # People who target 2.4 kernels would likely use older glibc (and older bbox).
+       echo '# CONFIG_FEATURE_2_4_MODULES is not set' >>.config
+       echo '# CONFIG_FEATURE_USE_BSS_TAIL is not set' >>.config
+       echo '# CONFIG_DEBUG_SANITIZE is not set' >>.config
 fi
 
 # If uclibc, build static, and remove some things
@@ -68,6 +77,11 @@ if test x"$LIBC" = x"uclibc"; then
        | grep -v CONFIG_FEATURE_2_4_MODULES \
        | grep -v CONFIG_FEATURE_SYNC_FANCY \
        | grep -v CONFIG_FEATURE_TOUCH_NODEREF \
+       | grep -v CONFIG_NANDWRITE \
+       | grep -v CONFIG_NANDDUMP \
+       | grep -v CONFIG_BLKDISCARD \
+       | grep -v CONFIG_NSENTER \
+       | grep -v CONFIG_UNSHARE \
        >.config.new
        mv .config.new .config
        echo 'CONFIG_STATIC=y' >>.config
@@ -76,6 +90,12 @@ if test x"$LIBC" = x"uclibc"; then
        echo '# CONFIG_FEATURE_2_4_MODULES is not set' >>.config
        echo '# CONFIG_FEATURE_SYNC_FANCY is not set' >>.config
        echo '# CONFIG_FEATURE_TOUCH_NODEREF is not set' >>.config
+       # My uclibc installation does not support some needed APIs...
+       echo '# CONFIG_NANDWRITE is not set' >>.config
+       echo '# CONFIG_NANDDUMP is not set' >>.config
+       echo '# CONFIG_BLKDISCARD is not set' >>.config
+       echo '# CONFIG_NSENTER is not set' >>.config
+       echo '# CONFIG_UNSHARE is not set' >>.config
 fi
 
 # If STATIC, remove some things.
index 04fea3ea24e2e4f0befb28ca31979787ae4c674a..545cad5c0aad181efe90666156bacd38ca4002a3 100755 (executable)
@@ -6,6 +6,16 @@
 
 . ./testing.sh
 
+ln -s `which busybox` unknown
+
+testing "busybox as unknown name" "./unknown 2>&1" \
+       "unknown: applet not found\n" "" ""
+rm unknown
+
+# We need busybox --help to be enabled for the rest of tests
+test x"$CONFIG_BUSYBOX" = x"y" \
+|| { echo "SKIPPED: busybox --help"; exit 0; }
+
 HELPDUMP=`true | busybox 2>&1 | cat`
 
 # We need to test under calling the binary under other names.
@@ -38,10 +48,4 @@ do
 done
 rm busybox-suffix
 
-ln -s `which busybox` unknown
-
-testing "busybox as unknown name" "./unknown 2>&1" \
-       "unknown: applet not found\n" "" ""
-rm unknown
-
 exit $FAILCOUNT
index 9fa7437ace8268131443a8966e88f7572f2008df..c96c3b35999f5611e6772678311f3e08bfeee355 100644 (file)
@@ -1,4 +1,4 @@
 # FEATURE: CONFIG_FEATURE_HUMAN_READABLE
 
 dd if=/dev/zero of=file bs=1M count=1 2>/dev/null
-test x"`busybox du -m .`" = x"1        ."
+test x"`busybox du -m file`" = x"1     ."
index 09e96b763fcee24ded033700c3126cde78ddd890..b75ec1921f019a53e6d9aa596ed4c5b0aee29193 100644 (file)
@@ -164,6 +164,7 @@ static const struct cmdoptions_t {
        const unsigned char code;
 } g_cmdoptions[] = {
        /*"12345678" + NUL */
+//TODO: convert to index_in_strings()
        { "fb"      , 1, CMD_FB       },
        { "db"      , 1, CMD_DB       },
        { "a"       , 0, CMD_ALL      },
@@ -416,7 +417,7 @@ int fbset_main(int argc, char **argv)
        unsigned options = 0;
 
        const char *fbdev = DEFAULTFBDEV;
-       const char *modefile = DEFAULTFBMODE;
+       IF_FEATURE_FBSET_READMODE(const char *modefile = DEFAULTFBMODE;)
        char *thisarg;
        char *mode = mode; /* for compiler */
 
@@ -444,7 +445,7 @@ int fbset_main(int argc, char **argv)
                                fbdev = argv[1];
                                break;
                        case CMD_DB:
-                               modefile = argv[1];
+                               IF_FEATURE_FBSET_READMODE(modefile = argv[1];)
                                break;
                        case CMD_ALL:
                                options |= OPT_ALL;
index af04cfcc8fb2146fab28dda46bed8f3199078cbd..89f1f323c79886509d8f7648b524a6c17e83d30b 100644 (file)
@@ -366,10 +366,11 @@ bsd_select(void)
                        }
                                printf("Reading disklabel of %s at sector %u\n",
                                        partname(disk_device, t+1, 0), ss + BSD_LABELSECTOR);
-                       if (xbsd_readlabel(xbsd_part) == 0)
+                       if (xbsd_readlabel(xbsd_part) == 0) {
                                if (xbsd_create_disklabel() == 0)
                                        return;
                                break;
+                       }
                }
        }
 
index 23ebc56ef456e5a9c4c39ccaf4d5c3e6085adf34..30def09c63ebdd67d29d706386dfd6d5c6b025be 100644 (file)
@@ -504,17 +504,19 @@ verify_sgi(int verbose)
        if (sgi_get_sysid(Index[0]) == SGI_ENTIRE_DISK) {
                if ((Index[0] != 10) && verbose)
                        printf("IRIX likes when Partition 11 covers the entire disk\n");
-               if ((sgi_get_start_sector(Index[0]) != 0) && verbose)
+               if ((sgi_get_start_sector(Index[0]) != 0) && verbose) {
                        printf("The entire disk partition should start "
                                "at block 0,\n"
                                "not at diskblock %u\n",
                                sgi_get_start_sector(Index[0]));
-               if (SGI_DEBUG)      /* I do not understand how some disks fulfil it */
+               }
+               if (SGI_DEBUG) {     /* I do not understand how some disks fulfil it */
                        if ((sgi_get_num_sectors(Index[0]) != lastblock) && verbose)
                                printf("The entire disk partition is only %u diskblock large,\n"
                                        "but the disk is %u diskblocks long\n",
                                        sgi_get_num_sectors(Index[0]), lastblock);
                        lastblock = sgi_get_num_sectors(Index[0]);
+               }
        } else {
                if (verbose)
                        printf("One Partition (#11) should cover the entire disk\n");
@@ -669,16 +671,17 @@ sgi_set_volhdr(void)
        int n;
 
        for (n = 8; n < g_partitions; n++) {
-       if (!sgi_get_num_sectors(n)) {
-               /*
-                * 5 cylinders is an arbitrary value I like
-                * IRIX 5.3 stored files in the volume header
-                * (like sash, symmon, fx, ide) with ca. 3200
-                * sectors.
-                */
-               if (g_heads * g_sectors * 5 < sgi_get_lastblock())
-                       sgi_set_partition(n, 0, g_heads * g_sectors * 5, SGI_VOLHDR);
-                       break;
+               if (!sgi_get_num_sectors(n)) {
+                       /*
+                        * 5 cylinders is an arbitrary value I like
+                        * IRIX 5.3 stored files in the volume header
+                        * (like sash, symmon, fx, ide) with ca. 3200
+                        * sectors.
+                        */
+                       if (g_heads * g_sectors * 5 < sgi_get_lastblock()) {
+                               sgi_set_partition(n, 0, g_heads * g_sectors * 5, SGI_VOLHDR);
+                               break;
+                       }
                }
        }
 }