Menu

#185 5.18.14 fail to build due to -Werror

autogen
wont-fix
nobody
None
1
2020-09-14
2018-07-19
No

autogen 5.18.14 sets AM_CFLAGS to @WARN_CFLAGS@ in autoopts/Makefile.am (see 32da2280eb7747514af8b1e31b20075b67e6edca) and therefore adds -Werror to CFLAGS. Wgich causes a build error:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../autoopts -Wdate-time -D_FORTIFY_SOURCE=2 -DPKGDATADIR=\"/usr/share/autogen\" -g -O2 -fdebug-prefix-map=/tmp/AUTOGEN/autogen-5.18.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-format-contains-nul -Wno-format-contains-nul -fno-strict-aliasing -Wall -Werror -Wcast-align -Wmissing-prototypes -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings -Wstrict-aliasing=3 -Wextra -Wno-cast-qual -g -O2 -fdebug-prefix-map=/tmp/AUTOGEN/autogen-5.18.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-format-contains-nul -Wno-format-contains-nul -fno-strict-aliasing -c libopts.c  -fPIC -DPIC -o .libs/libopts_la-libopts.o
In file included from libopts.c:24:0:
configfile.c: In function 'file_preset':
configfile.c:467:20: error: this statement may fall through [-Werror=implicit-fallthrough=]
                 if (ftext++ != NULL)
                    ^
configfile.c:470:13: note: here
             default:
             ^~~~~~~
In file included from libopts.c:46:0:
usage.c: In function 'parse_usage_flags':
usage.c:155:17: error: this statement may fall through [-Werror=implicit-fallthrough=]
             txt = SPN_WHITESPACE_CHARS(txt + 1);
usage.c:158:9: note: here
         default:
         ^~~~~~~
In file included from libopts.c:22:0:
boolean.c: In function 'optionBooleanVal':
boolean.c:63:5: error: this statement may fall through [-Werror=implicit-fallthrough=]
     {
     ^
boolean.c:69:5: note: here
     case 'N':
     ^~~~
In file included from libopts.c:32:0:
makeshell.c: In function 'text_to_var':
makeshell.c:324:14: error: this statement may fall through [-Werror=implicit-fallthrough=]
             (*(opts->pUsageProc))(opts, EXIT_SUCCESS);
             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makeshell.c:327:9: note: here
         case TT_USAGE:
         ^~~~
makeshell.c:328:14: error: this statement may fall through [-Werror=implicit-fallthrough=]
             (*(opts->pUsageProc))(opts, EXIT_FAILURE);
             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makeshell.c:331:9: note: here
         case TT_VERSION:
         ^~~~
makeshell.c:337:13: error: this statement may fall through [-Werror=implicit-fallthrough=]
             optionPrintVersion(opts, od);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
makeshell.c:340:9: note: here
         default:
         ^~~~~~~
makeshell.c: In function 'genshelloptUsage':
makeshell.c:887:9: error: this statement may fall through [-Werror=implicit-fallthrough=]
         optionUsage(opts, EXIT_FAILURE);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makeshell.c:890:5: note: here
     case 0:
     ^~~~
makeshell.c:932:9: error: this statement may fall through [-Werror=implicit-fallthrough=]
         optionUsage(optionParseShellOptions, EXIT_FAILURE);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makeshell.c:934:5: note: here
     default:
     ^~~~~~~
In file included from libopts.c:34:0:
numeric.c: In function 'optionNumericVal':
numeric.c:139:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 't':  val *= 1000;
                    ~~~~^~~~~~~
numeric.c:140:9: note: here
         case 'g':  val *= 1000;
         ^~~~
numeric.c:140:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 'g':  val *= 1000;
                    ~~~~^~~~~~~
numeric.c:141:9: note: here
         case 'm':  val *= 1000;
         ^~~~
numeric.c:141:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 'm':  val *= 1000;
                    ~~~~^~~~~~~
numeric.c:142:9: note: here
         case 'k':  val *= 1000; break;
         ^~~~
numeric.c:144:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 'T':  val *= 1024;
                    ~~~~^~~~~~~
numeric.c:145:9: note: here
         case 'G':  val *= 1024;
         ^~~~
numeric.c:145:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 'G':  val *= 1024;
                    ~~~~^~~~~~~
numeric.c:146:9: note: here
         case 'M':  val *= 1024;
         ^~~~
numeric.c:146:24: error: this statement may fall through [-Werror=implicit-fallthrough=]
         case 'M':  val *= 1024;
                    ~~~~^~~~~~~
numeric.c:147:9: note: here
         case 'K':  val *= 1024; break;
         ^~~~
cc1: all warnings being treated as errors

Discussion

  • Bruce Korb

    Bruce Korb - 2018-07-25

    New warning. My best guess is that I'm going to fix it by disabling "implicit-fallthrough".
    I've been programming for too many decades to consider it a problem, but I will look
    to see what is easier.

     
  • Bruce Korb

    Bruce Korb - 2020-09-14
    • status: open --> wont-fix
     
  • Bruce Korb

    Bruce Korb - 2020-09-14

    Fallthrough warnings being errors is an error in your build. Don't do that. They all have FALLTHROUGH comments that must be honored.

     

Log in to post a comment.