]> Zhao Yanbai Git Server - minix.git/commitdiff
Fix -DNEDUG builds 05/2805/1
authorLionel Sambuc <lionel@minix3.org>
Tue, 2 Sep 2014 13:22:15 +0000 (15:22 +0200)
committerLionel Sambuc <lionel@minix3.org>
Tue, 2 Sep 2014 13:22:15 +0000 (15:22 +0200)
 - assert() is macro which is defined as empty, while panic is always
   present. I added an explicit abort() after the macro to make sure the
   function never returns in case of wrong flags.

 - Fixed gcc build with -NDEBUG, -Os for ARM.
   * A few 'may be used uninitialized' messages
   * A few new missing support library functions where added in libminc.

Change-Id: I69fcda2cd3888390b7ddeff4c0cd849105ce86ff

external/bsd/flex/dist/scanopt.c
minix/lib/libc/gen/fslib.c
minix/lib/libminc/Makefile
usr.bin/make/targ.c
usr.bin/mkdep/mkdep.c
usr.bin/vis/vis.c

index cad3a9685466fb019d1c60123cdd6a5a60346430..527c35600685f192a2576031dd7c5abb95de8340 100644 (file)
@@ -715,6 +715,11 @@ int     scanopt (svoid, arg, optindex)
        struct _aux *auxp;
        int     is_short;
        int     opt_offset = -1;
+#if defined(__minix)
+       /* triggers a 'may be used uninitialized', when compiled with gcc,
+        * asserts off, and -Os. */
+       is_short = 0;
+#endif /* defined(__minix) */
 
        s = (struct _scanopt_t *) svoid;
 
index 0613d5933eee1341747b0d558fd86776623f7e2f..dcc99815ed1f33986fda6b77810bdce881fb2705 100644 (file)
@@ -4,6 +4,7 @@
 #include <limits.h>
 #include <dirent.h>
 #include <assert.h>
+#include <stdlib.h>            /* for abort() */
 #include <sys/types.h>
 #include <minix/const.h>
 #include <minix/type.h>                /* for unshort :-( */
@@ -56,5 +57,8 @@ uint8_t fs_mode_to_type(mode_t mode)
        else if(S_ISSOCK(mode)) return DT_SOCK;
 
        assert(0 && "unknown type");
+
+       /* assert()s are removed on NDEBUG builds. */
+       abort();
 }
 
index 4d30934604484090fd61b92d6807db2b93bb1224..21a859e7af2a8feaf5fcd9ed0b39a150312dc21e 100644 (file)
@@ -127,7 +127,8 @@ CPPFLAGS.sha2.c+=   -D_STANDALONE
 CPPFLAGS.sha2.c+=      -I${NETBSDSRCDIR}/sys
 
 .for f in \
-       divdi3.o moddi3.o udivdi3.o umoddi3.o qdivrem.o
+       ashrdi3.o divdi3.o lshldi3.o lshrdi3.o moddi3.o \
+       udivdi3.o umoddi3.o qdivrem.o
 ${f} ${f:C/\.o/.bc/}:  ${LIBCOMMONCDIR}/quad/${f:C/\.o/.c/}
 OBJS+= ${f}
 CLEANFILES+= ${f}
index 17ea4f06a2b0006f5056f5cb9c0dd6bf00f3507b..4de1aea80df479bf83d736dafd12e95a824f54a2 100644 (file)
@@ -338,6 +338,11 @@ Targ_FindNode(const char *name, int flags)
     Boolean      isNew;      /* Set TRUE if Hash_CreateEntry had to create */
                              /* an entry for the node */
 
+#if defined(__minix)
+    /* triggers a 'may be used uninitialized', when compiled with gcc,
+     * asserts off, and -Os. */
+    he = NULL;
+#endif /* defined(__minix) */
     if (!(flags & (TARG_CREATE | TARG_NOHASH))) {
        he = Hash_FindEntry(&targets, name);
        if (he == NULL)
index b059b32f1463790c9f96f82ffe74399d3c8fcb43..44f13e707c81d3ee3875bab2a1e3f111a78819e1 100644 (file)
@@ -230,9 +230,13 @@ main(int argc, char **argv)
        const char *prefix = NULL;
        const char *suffixes = NULL, *s;
        suff_list_t *suff_list = NULL, *sl;
-#ifdef __minix
+#if defined(__minix)
        size_t nr;
-#endif
+
+       /* triggers a 'may be used uninitialized', when compiled with gcc,
+        * asserts off, and -Os. */
+       slen = 0;
+#endif /* defined(__minix) */
 
        suf = NULL;             /* XXXGCC -Wuninitialized [sun2] */
        sl = NULL;              /* XXXGCC -Wuninitialized [sun2] */
index 1509c81c41231e1adfb2831353f0f56d35ab1694..dda34f0ebe77764c42b786a9b946023f7c17e213 100644 (file)
@@ -166,6 +166,11 @@ process(FILE *fp)
        char buff[4 * MB_LEN_MAX + 1]; /* max encoding length for one char */
        int mbilen, cerr = 0, raerr = 0;
        
+#if defined(__minix)
+       /* triggers a 'may be used uninitialized', when compiled with gcc,
+        * asserts off, and -Os. */
+       rachar = 0;
+#endif /* defined(__minix) */
         /*
          * The input stream is considered to be multibyte characters.
          * The input loop will read this data inputing one character,