= 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 is missing. === 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 [[http://www.cplusplus.com/reference/clibrary/cstddef/|]] === size_t does not name a type === djvulibre: {{{ GSmartPointer.h:497:30: error: 'size_t' does not name a type }}} Fix: #include [[http://www.cplusplus.com/reference/clibrary/cstddef/|]] == 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 }}}