Hi Matthias! Thanks for your help! On Oct 09, 2011, at 04:47, Matthias Klose wrote: > On 10/08/2011 10:31 PM, Kyle Moffett wrote: >> Source: gcc-4.6 >> Version: 4.6.1-13 >> Severity: serious >> Justification: fails to build from source (but built successfully in the >> past) >> >> When trying to rebuild gcc-4.6 natively from source, I get build >> failures of the following variety: >> asm/errno.h: No such file or directory >> >> In particular, it seems that recent linux-libc-dev packages have moved >> the architecture-specific header files from the path "/usr/include/asm" >> to "/usr/include/x86_64-linux-gnu/asm". >> >> In particular, I have linux-libc-dev 3.0.0-3 installed locally. >> >> The existing "gcc" on the system finds files in that search path, but >> when building libgcc it seems that the temporary built "xgcc" does not. >> You can some one example failed command below. >> >> Error output: >> In file included from /usr/include/bits/errno.h:25:0, >> from /usr/include/errno.h:36, >> from ../../../../src/libgcc/../gcc/tsystem.h:93, >> from ../../../../src/libgcc/../gcc/libgcc2.c:29: >> /usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file or >> directory > > I don't see this. is /usr/include/asm a symlink? is gcc-multilib the recent > version in unstable? If this is a local build, make sure that the > gcc-multiarch.diff is applied during the build.
No, this is a regular dpkg-buildpackage of the "gcc-4.6" source package: $ apt-get source gcc-4.6=4.6.1-13 $ cd gcc-4.6-4.6.1 $ dpkg-buildpackage -us -uc -b My /usr/include/asm is just a leftover empty directory. If I run: $ dpkg -L linux-libc-dev $ dpkg-deb -c /var/cache/apt/archives/linux-libc-dev_3.0.0-3_amd64.deb I can see files in the following places, which matches up with what I actually see in those directories: /usr/include/asm-generic/*.h /usr/include/linux/*.h /usr/include/linux/*/*.h /usr/include/mtd/*.h /usr/include/rdma/*.h /usr/include/sound/*.h /usr/include/video/*.h /usr/include/xen/*.h /usr/include/x86_64-linux-gnu/asm/*.h My currently installed GCC compiler packages are: gcc 4:4.6.1-2 (gcc-defaults 1.107) gcc-4.6 4.6.1-13 If I run this command on my regular system compiler: $ cpp -v </dev/null [...] #include <...> search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. [...] So it looks like everything is OK. But when I try the build listed at the beginning of this email, the very first "xgcc" partway through the bootstrap fails with the attached message (with libgcc). If I manually extract the command-line from that, strip out the object files, and add the options "-E -Wp,-v -x c /dev/null", I get the output found in the second attachment. The highlights are below: #include "..." search starts here: #include <...> search starts here: . ../../.././gcc ../../../../src/libgcc ../../../../src/libgcc/../gcc ../../../../src/libgcc/../include ../../../../src/libgcc/config/libbid /srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/include /srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/include-fixed /usr/local/include /usr/include End of search list. The /usr/include/x86_64-include-linux directory with some headers from linux-libc-dev is distinctly missing from that search path. Cheers, Kyle Moffett
make[7]: Entering directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/x86_64-linux-gnu/32/libgcc' # If this is the top-level multilib, build all the other # multilibs. /srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/xgcc -B/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/ -B/usr/x86_64-linux-gnu/bin/ -B/usr/x86_64-linux-gnu/lib/ -isystem /usr/x86_64-linux-gnu/include -isystem /usr/x86_64-linux-gnu/sys-include -g -O2 -m32 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -fno-stack-protector -I. -I. -I../../.././gcc -I../../../../src/libgcc -I../../../../src/libgcc/. -I../../../../src/libgcc/../gcc -I../../../../src/libgcc/../include -I../../../../src/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS -DUSE_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c ../../../../src/libgcc/../gcc/libgcc2.c \ -fvisibility=hidden -DHIDE_EXPORTS In file included from /usr/include/bits/errno.h:25:0, from /usr/include/errno.h:36, from ../../../../src/libgcc/../gcc/tsystem.h:93, from ../../../../src/libgcc/../gcc/libgcc2.c:29: /usr/include/linux/errno.h:4:23: fatal error: asm/errno.h: No such file or directory compilation terminated. make[7]: *** [_muldi3.o] Error 1 make[7]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/x86_64-linux-gnu/32/libgcc' make[6]: *** [multi-do] Error 1 make[6]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/x86_64-linux-gnu/libgcc' make[5]: *** [all-multi] Error 2 make[5]: *** Waiting for unfinished jobs.... make[5]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/x86_64-linux-gnu/libgcc' make[4]: *** [all-stage1-target-libgcc] Error 2 make[4]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build' make[3]: *** [stage1-bubble] Error 2 make[3]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build' make[2]: *** [bootstrap-lean] Error 2 make[2]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build' s=`cat status`; rm -f status; test $s -eq 0 make[1]: *** [stamps/05-build-stamp] Error 1 make[1]: Leaving directory `/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1' make: *** [stamps/05-build-stamp] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2
ignoring nonexistent directory "/usr/x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/x86_64-linux-gnu/sys-include" ignoring nonexistent directory "./include" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/x86_64-linux-gnu/4.6.1/include" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/x86_64-linux-gnu/4.6.1/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/4.6.1/include" ignoring nonexistent directory "/usr/local/include/i386-linux-gnu" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed" ignoring nonexistent directory "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/gcc/../lib/gcc/../../lib/gcc/x86_64-linux-gnu/4.6.1/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/include/i386-linux-gnu" ignoring duplicate directory "." ignoring duplicate directory "../../../../src/libgcc/." #include "..." search starts here: #include <...> search starts here: . ../../.././gcc ../../../../src/libgcc ../../../../src/libgcc/../gcc ../../../../src/libgcc/../include ../../../../src/libgcc/config/libbid /srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/include /srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/./gcc/include-fixed /usr/local/include /usr/include End of search list. # 1 "/dev/null" # 1 "/srv/stuff/toolchain/BUILDER/GCC/gcc-4.6-4.6.1/build/x86_64-linux-gnu/32/libgcc//" # 1 "<built-in>" # 1 "<command-line>" # 1 "/dev/null"