Discussion:
Bug#1017538: dietlibc: FTBFS on armhf: selected processor does not support vldm in ARM mode
(too old to reply)
Arnd Bergmann
2022-08-17 18:00:02 UTC
Permalink
tags 1017538 + help
forwarded 1017538 https://lists.debian.org/debian-arm/2022/07/msg00041.html
thanks
Hi Sebastian,
instead of filing a bug with the information we already have…
arm/__longjmp.S:9: Error: selected processor does not support `vldm ip!,{d0-d15}' in ARM mode
… you could maybe have considered answering the question I posed
on the Debian ARM mailing list about *why* it fails because nothing
related to ARM was changed in the package or code.
So something in the toolchain(?) must have changed since the last
successful build (what?) which we need to locally revert.
The way the FPU type gets selected in gcc changed with recent versions,
this was intentional and won't be reverted but it did break packages that
used the old method. In most cases, it's sufficient to pass
-march=armv7-a+fp instead of -march=armv7-a to pick the right
instruction set.

Arnd
Thorsten Glaser
2022-08-17 18:10:01 UTC
Permalink
-march=3Darmv7-a+fp instead of -march=3Darmv7-a to pick the right
=E2=80=9Cinstead of=E2=80=9D

We pass nothing there, and we need a solution (or two distinct
ones) for armel and armhf.

bye,
//mirabilos
--=20
[...] if maybe ext3fs wasn't a better pick, or jfs, or maybe reiserfs, oh b=
ut
what about xfs, and if only i had waited until reiser4 was ready... in the =
be-
ginning, there was ffs, and in the middle, there was ffs, and at the end, t=
here
was still ffs, and the sys admins knew it was good. :) -- Ted Unangst =C3=
=BCber *fs
Arnd Bergmann
2022-08-17 23:10:01 UTC
Permalink
Post by Arnd Bergmann
The way the FPU type gets selected in gcc changed with recent versions,
this was intentional and won't be reverted but it did break packages that
used the old method.
Hmph.
Post by Arnd Bergmann
In most cases, it's sufficient to pass
-march=armv7-a+fp instead of -march=armv7-a to pick the right
instruction set.
There’s no “instead of”, though.
So basically, I now need to add -march=… to CFLAGS in the package
when compiling for either of armel and armhf.
What I see with gcc-12-arm-linux-gnueabihf 12.1.0-8cross1 is that it defaults
to the correct architecture level (armv7-a+fp) and passes that to the assembler,
so it /should/ not be necessary do this explictily.

The problem with other packages was that they did pass "-march=armv7-a"
for armhf, but that is interpreted as not having an FPU now, where on older
compilers the -mhard-float flag would override the -march= flag and enable
support for an FPU regardless.
Which value do I use for armel, which for armhf (the one you gave
is for armhf, I think)?
That should be -march=armv5te

Arnd

Loading...