Bug#1023692: gcc-arm-linux-gnueabihf: Compiling anything with <math.h> fails: error: '_Float128' is not supported on this target
> No, this is totally broken. No package in Debian ships anything in
> /usr/include/bits/. If you have anything there, your system is broken
> rather than Debian.
That's exactly the kind of info I was looking for. Thank you!
> The interesting question now is where those files came from.
Easy enough.
$ dpkg -S /usr/include/bits
libc6-dev-i386: /usr/include/bits
That's the problematic package. I don't recall why I had this installed,
but it was there on all of my boxes.
I removed it:
$ sudo apt remove libc6-dev-i386
...
The following additional packages will be installed:
cpp-10 g++-10 gcc-10 gcc-10-base gfortran-10 lib32gcc-10-dev lib32stdc++-10-dev libgcc-10-dev libgfortran-10-dev
libstdc++-10-dev libx32gcc-10-dev libx32stdc++-10-dev
The following packages will be REMOVED:
g++-10-multilib gcc-10-multilib libc6-dev-i386 libc6-dev-x32
The following packages will be upgraded:
cpp-10 g++-10 gcc-10 gcc-10-base gfortran-10 lib32gcc-10-dev lib32stdc++-10-dev libgcc-10-dev libgfortran-10-dev
libstdc++-10-dev libx32gcc-10-dev libx32stdc++-10-dev
But the build still fails:
$ arm-linux-gnueabihf-gcc-12 -c -o /tmp/tst.o /tmp/tst.c
In file included from /tmp/tst.c:1:
/usr/include/math.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory
27 | #include <bits/libc-header-start.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Looking around, this was due to libc6-dev-armhf-cross not being
installed. I install it:
$ sudo apt install libc6-dev-armhf-cross
...
The following additional packages will be installed:
linux-libc-dev-armhf-cross
The following NEW packages will be installed:
libc6-dev-armhf-cross linux-libc-dev-armhf-cross
And the test compile then works.
I then looked at the package relationships to see why
libc6-dev-armhf-cross wasn't pulled in. It looks like
gcc-12-arm-linux-gnueabihf Recommends libc6-dev-armhf-cross
And for whatever reason this recommendation wasn't being satisfied on my
systems. I'm sure there's a reason this is Recommends and not Depends.
Would it break too much stuff to upgrade this to a Depends? This failure
was kinda fundamental.
Also, the libc6-dev-i386 was a red herring: I can reinstall that
package, and it can coexist nicely with the armhf-cross stuff without
breaking anything.
Thanks!
Reply to: