Common issues with GCC-4.6/G++-4.6
https://wiki.edubuntu.org/GCC4.6
GCC4.6
GCC-4.6 is again more strict, introduces new warnings, and lets packages fail to build, which did succeed to build with earlier GCC versions.
Every warning has the option which did produce the warning appended to the warnings, e.g.
This triggers a lot:
Either fix it, or if the package is built with -Werror, add as a workaround: -Wno-error=unused-but-set-variable
Fix: #include is missing.
Fix: #include
djvulibre:
Fix: #include
ld.gold doesn't know about -z syms.
d-conf:
GCC4.6
Common issues with GCC-4.6 / G++-4.6
GCC-4.6 is again more strict, introduces new warnings, and lets packages fail to build, which did succeed to build with earlier GCC versions.
Warnings
Warning format
Every warning has the option which did produce the warning appended to the warnings, e.g.
FAILURE: warning diffs: 1c1
< #warning undefining SECOND due to option name conflict [-Wcpp]
---
> #warning undefining SECOND due to option name conflict
FAIL: cond.test
New warning -Wunused-but-set-variable
This triggers a lot:
uuid_gen_unix.c:62:20: error: variable 'tv' set but not used [-Werror=unused-but-set-variable]
Either fix it, or if the package is built with -Werror, add as a workaround: -Wno-error=unused-but-set-variable
C++
NULL not defined
../build/include/apt-pkg/weakptr.h:58:26: error: 'NULL' was not declared in this scope
Fix: #include
ptrdiff_t does not name a type
/usr/include/sigc++-2.0/sigc++/signal.h:38:11: error: 'ptrdiff_t' does not name a type
Fix: #include
size_t does not name a type
djvulibre:
GSmartPointer.h:497:30: error: 'size_t' does not name a type
Fix: #include
Linker
-z syms unknown
ld.gold doesn't know about -z syms.
d-conf:
CCLD libdconfsettings.so
gcc: error: unrecognized option '-avoid-version'
gcc kerneloops.o submit.o dmesg.o configfile.o -Wl,--as-needed `pkg-config --libs glib-2.0 dbus-glib-1` `curl-config --libs` -Wl,"-z relro" -Wl,"-z now" -o kerneloops
/usr/bin/ld.gold: relro: unknown -z option
/usr/bin/ld.gold: use the --help option for usage information
collect2: ld returned 1 exit status