Discussion:
neon: armhf baseline for next release ? (was: python-cogent fails to build on armhf )
(too old to reply)
Mathieu Malaterre
2023-02-10 09:10:01 UTC
Permalink
Dear arm porters,

On Thu, Feb 9, 2023 at 8:43 PM Andreas Tille <***@an3as.eu> wrote:
[...]
according to the build logs[1] armhf fails to build (as only
architecture) with
[...]
LLVM ERROR: Symbol not found: __sync_fetch_and_add_4
I see that abel.d.o porterbox is offline. There is currently no other
porterbox for a DD to actually check armhf code on neon-less machine.

Would it be possible to raise the armhf baseline to have some minimal
neon instructions ?

Thanks much for comment,
Vagrant Cascadian
2023-02-10 18:30:02 UTC
Permalink
Post by Mathieu Malaterre
[...]
according to the build logs[1] armhf fails to build (as only
architecture) with
[...]
LLVM ERROR: Symbol not found: __sync_fetch_and_add_4
I see that abel.d.o porterbox is offline. There is currently no other
porterbox for a DD to actually check armhf code on neon-less machine.
Would it be possible to raise the armhf baseline to have some minimal
neon instructions ?
I am pretty sure the answer in the short term is "no", as that would
effectively be a new architecture... longer term, "maybe someday ... but
not terribly likely"?

Mostly because 32-bit arm is arguably a legacy platform; there is little
to no new debian-capable hardware coming out, and so adding support for
an entire new port seems unlikely, or at the very least, a very niche
target. Either it supports armhf as it is, or more likely it supports
arm64.

For an individual package that wants to make use of neon, the correct
thing to do is to make the neon support detected at run-time rather than
rely on it at build-time and enabling or disabling codepaths, features,
etc. as appropriate.


live well,
vagrant
Arnd Bergmann
2023-02-10 21:40:01 UTC
Permalink
Post by Vagrant Cascadian
Post by Mathieu Malaterre
[...]
according to the build logs[1] armhf fails to build (as only
architecture) with
[...]
LLVM ERROR: Symbol not found: __sync_fetch_and_add_4
I see that abel.d.o porterbox is offline. There is currently no other
porterbox for a DD to actually check armhf code on neon-less machine.
Would it be possible to raise the armhf baseline to have some minimal
neon instructions ?
I am pretty sure the answer in the short term is "no", as that would
effectively be a new architecture... longer term, "maybe someday ... but
not terribly likely"?
I agree that the short term for the Bookwork release, it makes no sense
to drop currently supported hardware. However, I don't think changing
the target to include NEON and VFPv3-D32 in itself would qualify as a new
architecture, but is the same as raising the minimum supported ISA
for armel from ARMv4T to ARMv5 in Buster, or from i586 to i686 in
Stretch, while keeping the ABI compatible.
Post by Vagrant Cascadian
Mostly because 32-bit arm is arguably a legacy platform; there is little
to no new debian-capable hardware coming out, and so adding support for
an entire new port seems unlikely, or at the very least, a very niche
target. Either it supports armhf as it is, or more likely it supports
arm64.
This does not sound quite correct either: while no new SoCs have come
out without NEON for ten years now (the last ones were Tegra 2,
Armada 370/XP, Berlin2, Dove, MMP3 and apparently SPEAr13xx), there
are definitely new SoCs based on Cortex-A7 coming out all the time.
In 2022, we added support for 14 ARMv7-A SoCs (plus one ARMv5 SoC
and one ARMv7-M SoC), and a lot of low-end ARMv8 boards are too memory
limited to sensibly run an arm64 userspace but can work fine with
a 64-bit kernel and an armhf rootfs.
Post by Vagrant Cascadian
For an individual package that wants to make use of neon, the correct
thing to do is to make the neon support detected at run-time rather than
rely on it at build-time and enabling or disabling codepaths, features,
etc. as appropriate.
The more common problem I think is not packages that want to use
NEON for performance reasons, it's packages that drop support for
non-NEON systems inadvertently or because upstream decides that
those are too old for them. Keeping all packages VFPv3-D16 clean
is an uphill battle and losing the relatively obscure Tegra2 and
Armada XP support may be worthwhile if that makes maintaining
armhf easier in the long run.

Arnd
Diederik de Haas
2023-02-10 22:10:01 UTC
Permalink
Post by Arnd Bergmann
This does not sound quite correct either: while no new SoCs have come
out without NEON for ten years now (the last ones were Tegra 2,
I recently brought my Asus Transformer TF-101 'back to life' and was
absolutely thrilled that I should be able to make a mainline-ish kernel 6.1
running on it.
The TF-101 has a Tegra 2 chip ... (and indeed doesn't have NEON)
Paul Wise
2023-02-11 04:00:01 UTC
Permalink
Post by Vagrant Cascadian
For an individual package that wants to make use of neon, the correct
thing to do is to make the neon support detected at run-time rather than
rely on it at build-time and enabling or disabling codepaths, features,
etc. as appropriate.
FTR, there is documentation on the mechanisms for doing that here:

https://wiki.debian.org/InstructionSelection

If there is anything missing for NEON, please update it.
--
bye,
pabs

https://wiki.debian.org/PaulWise
Loading...