gcc 从5.3升级到6.1之后 openwrt pkg-config glib编译报错修复办法
-
报错
01 |
/usr/bin/env bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DGLIB_COMPILATION -DPCRE_STATIC -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/ include -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/usr/ include -pthread -Wall -Wstrict-prototypes -Werror=declaration- after -statement -Werror=missing-prototypes -Werror= implicit - function -declaration -Werror=pointer-arith -Werror=init-self -Werror=format=2 -fvisibility=hidden -O2 -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/ include -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/usr/ include -MT libglib_2_0_la-gdate.lo -MD -MP -MF .deps/libglib_2_0_la-gdate.Tpo -c -o libglib_2_0_la-gdate.lo `test -f 'gdate.c' || echo './' `gdate.c |
02 |
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../glib -I../glib -I.. -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DGLIB_COMPILATION -DPCRE_STATIC -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/ include -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/usr/ include -pthread -Wall -Wstrict-prototypes -Werror=declaration- after -statement -Werror=missing-prototypes -Werror= implicit - function -declaration -Werror=pointer-arith -Werror=init-self -Werror=format=2 -fvisibility=hidden -O2 -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/ include -I/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/host/usr/ include -MT libglib_2_0_la-gdate.lo -MD -MP -MF .deps/libglib_2_0_la-gdate.Tpo -c gdate.c -o libglib_2_0_la-gdate.o |
03 |
gdate.c: In function 'g_date_strftime' : |
04 |
gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral] |
05 |
tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm); |
06 |
^~~~~~ |
07 |
cc1: some warnings being treated as errors |
08 |
make[10]: *** [libglib_2_0_la-gdate.lo] Error 1 |
09 |
make[10]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/glib/glib' |
10 |
make[9]: *** [all-recursive] Error 1 |
11 |
make[9]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/glib/glib' |
12 |
make[8]: *** [all] Error 2 |
13 |
make[8]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/glib/glib' |
14 |
make[7]: *** [all-recursive] Error 1 |
15 |
make[7]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/glib' |
16 |
make[6]: *** [all] Error 2 |
17 |
make[6]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/glib' |
18 |
make[5]: *** [all-recursive] Error 1 |
19 |
make[5]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1' |
20 |
make[4]: *** [all] Error 2 |
21 |
make[4]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1' |
22 |
make[3]: *** [/media/kofec/Linux/openwrt/kirkwoodTrunk/build_dir/host/pkg-config-0.29.1/.built] Error 2 |
23 |
make[3]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk/tools/pkg-config' |
24 |
make[2]: *** [tools/pkg-config/compile] Error 2 |
25 |
make[2]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk' |
26 |
make[1]: *** [/media/kofec/Linux/openwrt/kirkwoodTrunk/staging_dir/target-arm_xscale_musl-1.1.14_eabi/stamp/.tools_install_yynyynynynyyyyyyynyyynyyyyyyyyynyyyyynnyynynnyyynnnyy] Error 2 |
27 |
make[1]: Leaving directory `/media/kofec/Linux/openwrt/kirkwoodTrunk' |
修复
01 |
> +--- glib/gdate.c.orig 2014-12-19 21:49:48.000000000 +0000 |
02 |
> ++++ glib/gdate.c |
03 |
> +@@ -2494,7 +2494,10 @@ g_date_strftime (gchar *s, |
04 |
> + * recognize whether strftime actually failed or just returned "" . |
05 |
> + */ |
06 |
> + tmpbuf[0] = '\1' ; |
07 |
> ++ #pragma GCC diagnostic push |
08 |
> ++ #pragma GCC diagnostic ignored "-Wformat-nonliteral" |
09 |
> + tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm); |
10 |
> ++ #pragma GCC diagnostic pop |
11 |
> + |
12 |
> + if (tmplen == 0 && tmpbuf[0] != '\0' ) |
13 |
> + { |