Source: gcc-5 Version: 5.1.1-13 Tags: patch User: helm...@debian.org Usertags: rebootstrap
Trying to build a stage1 cross compiler for kfreebsd-any, e.g. kfreebsd-amd64 fails with the following error: >From https://jenkins.debian.net/job/rebootstrap_kfreebsd-amd64_gcc5/2/console | /tmp/buildd/gcc1/gcc-5-5.2.1/build/./gcc/xgcc -B/tmp/buildd/gcc1/gcc-5-5.2.1/build/./gcc/ -B/usr/x86_64-kfreebsd-gnu/bin/ -B/usr/x86_64-kfreebsd-gnu/lib32/ -isystem /usr/x86_64-kfreebsd-gnu/include -isystem /usr/x86_64-kfreebsd-gnu/sys-include -isystem /tmp/buildd/gcc1/gcc-5-5.2.1/build/sys-include -g -O2 -m32 -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic -mlong-double-80 -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -fpic -mlong-double-80 -I. -I. -I../../.././gcc -I../../../../src/libgcc -I../../../../src/libgcc/. -I../../../../src/libgcc/../gcc -I../../../../src/libgcc/../include -DHAVE_CC_TLS -DUSE_TLS -o unwind-dw2.o -MT unwind-dw2.o -MD -MP -MF unwind-dw2.dep -fexceptions -c ../../../../src/libgcc/unwind-dw2.c -fvisibility=hidden -DHIDE_EXPORTS | In file included from ../../../../src/libgcc/unwind-dw2.c:401:0: | ./md-unwind-support.h:29:23: fatal error: sys/types.h: No such file or directory | compilation terminated. | ../../../../src/libgcc/static-object.mk:17: recipe for target 'unwind-dw2.o' failed | make[6]: *** [unwind-dw2.o] Error 1 | make[6]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1/build/x86_64-kfreebsd-gnu/32/libgcc' | Makefile:1154: recipe for target 'multi-do' failed | make[5]: *** [multi-do] Error 1 | make[5]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1/build/x86_64-kfreebsd-gnu/libgcc' | Makefile:117: recipe for target 'all-multi' failed | make[4]: *** [all-multi] Error 2 | make[4]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1/build/x86_64-kfreebsd-gnu/libgcc' | Makefile:10662: recipe for target 'all-target-libgcc' failed | make[3]: *** [all-target-libgcc] Error 2 | make[3]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1/build' | Makefile:852: recipe for target 'all' failed | make[2]: *** [all] Error 2 | make[2]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1/build' | s=`cat status`; rm -f status; test $s -eq 0 | debian/rules2:1169: recipe for target 'stamps/05-build-stamp' failed | make[1]: *** [stamps/05-build-stamp] Error 1 | make[1]: Leaving directory '/tmp/buildd/gcc1/gcc-5-5.2.1' | debian/rules:52: recipe for target 'stamps/05-build-stamp' failed | make: *** [stamps/05-build-stamp] Error 2 This is a regression introduced in gcc-5 svn revision 8143 which amounts to version 5.1.1-13. It updates the patch stack for a new gcc-5 release and thus updates debian/patches/kfreebsd-unwind.diff. The mentioned patch drops the creation of src/libgcc/config/i386/freebsd-unwind.h, because that file was upstreamed. Well almost that is. What was upstreamed is different from what was removed from packaging patches. In particular the "#ifndef inhibit_libc" that was present in the Debian patch was dropped upstream. However it was what made the stage1 build work. I therefore propose appending the attached patch to debian/patches/kfreebsd-unwind.diff. Thanks to Steven Chamberlain for his help to sort this out. Helmut
--- a/src/libgcc/config/i386/freebsd-unwind.h +++ a/src/libgcc/config/i386/freebsd-unwind.h @@ -26,6 +26,8 @@ /* Do code reading to identify a signal frame, and set the frame state data appropriately. See unwind-dw2.c for the structs. */ +#ifndef inhibit_libc + #include <sys/types.h> #include <signal.h> #include <sys/ucontext.h> @@ -171,3 +171,5 @@ return _URC_NO_REASON; } #endif /* ifdef __x86_64__ */ + +#endif /* ifndef inhibit_libc */