On Tue, Sep 06, 2016 at 03:17:52PM +0200, Andreas Beckmann wrote: > Control: retitle -1 libgcc-6-dev: Missing crtfastmath.o on kfreebsd-* > Control: affects -1 + src:vlc > > On Tue, 9 Aug 2016 11:39:54 +0200 Matthias Klose <d...@debian.org> wrote: > > > I'm unable to build a package because crtfastmath.o is missing from this > > > package. Architecture is kfreebsd-i386. I don't see this bug on the > > > kfreebsd-amd64 > > > > > > ,---- > > > | cc -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre > > > -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 > > > -D_LARGEFILE_SOURCE -fPIC -pthread luma.c -o luma > > > | /usr/bin/ld: cannot find crtfastmath.o: No such file or directory > > > `---- > > > > https://buildd.debian.org/status/fetch.php?pkg=gcc-6&arch=kfreebsd-i386&ver=6.1.1-11&stamp=1470331624 > > > > looks like this is never built, and the install step succeeds despite it > > complains about not finding this file. > > Seems to be specific to gcc-6, the file is available in libgcc-4.9-dev, > libgcc-5-dev, and gcc-snapshot (7.0.0). > > This bug is the cause for the FTBFS of vlc on both kfreebsd-amd64 and > kfreebsd-i386: > > https://buildd.debian.org/status/fetch.php?pkg=vlc&arch=kfreebsd-amd64&ver=2.2.4-3%2Bb4&stamp=1472902929 > https://buildd.debian.org/status/fetch.php?pkg=vlc&arch=kfreebsd-i386&ver=2.2.4-3%2Bb4&stamp=1472905628
This seems to be caused by the fact that t-crtfm moved from libgcc/config/i386 to just libgcc/config between GCC 5 and 6, but kfreebsd-unwind.diff wasn't updated to reflect this (GCC 7's was though, but there's another issue below). Patch included, though I haven't actually tested it. Matthias, I noticed a couple of other things when exploring this: 1. GCC 5 and 6 both omit the tm_file="${tm_file} i386/elf-lib.h" statement in the new kfreebsd branch for both x86_64 and i386, but GCC 7 includes it. 2. (Likely more important) GCC 7's kfreebsd-unwind.diff is missing the change for x86_64[1], so I assume only i386 has unwind support. Let me know if you want separate bugs for either of these. Regards, James [1] https://sources.debian.net/src/gcc-7/7.1.0-5/debian/patches/kfreebsd-unwind.diff/ --- diff -u gcc-6-6.3.0/debian/patches/kfreebsd-unwind.diff gcc-6-6.3.0/debian/patches/kfreebsd-unwind.diff --- gcc-6-6.3.0/debian/patches/kfreebsd-unwind.diff +++ gcc-6-6.3.0/debian/patches/kfreebsd-unwind.diff @@ -11,7 +11,7 @@ -i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) +i[34567]86-*-kfreebsd*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" -+ tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" ++ tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + md_unwind_header=i386/freebsd-unwind.h + ;; +i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) @@ -25,7 +25,7 @@ -x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) +x86_64-*-kfreebsd*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" -+ tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" ++ tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + md_unwind_header=i386/freebsd-unwind.h + ;; +x86_64-*-knetbsd*-gnu)