Re: Float ABI confusion for armv7
- In reply to: John F Carr: "Float ABI confusion for armv7"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Aug 2023 14:24:45 UTC
There's two changes you should look into: (1) The -m32 for arm llvm change (which has been implicated for other issues in other email threads): commit f1d5183124d3e18d410ded61e45adb9a23b23c83 Author: Mike Karels <karels@FreeBSD.org> Date: Tue Jul 25 18:58:51 2023 -0500 arm64 lib32: change clang to allow -m32 on arm64 The FreeBSD driver support for clang tested explicitly for 32-bit Intel, MIPS, or PowerPC targets where /usr/lib32/libcrt1.o was present to decide whether -m32 should use /usr/lib32. At jrtc27's suggestion, simply test for a 32-bit platform rather than adding arm to the list. Upstreamed as https://github.com/llvm/llvm-project/commit/3450272fc281979388bb845a9fffb59b42cc2e7e Bump the freebsd version to force a bootstrap build. This is one step in adding support for -m32 on arm64. Reviewed by: jrtc27, brooks, dim Differential Revision: https://reviews.freebsd.org/D40943 and (2) Some of my cleanup: commit 2726978bd801ceca07075f150d6ad9ef55470a21 Author: Warner Losh <imp@FreeBSD.org> Date: Tue Jul 5 10:16:19 2022 -0600 Makefile.inc1: Remove redundant test for armv[67] If MACHINE is arm, then MACHINE_ARCH is going to be either armv6* or armv7*. Sponsored by: Netflix I suspect #1, but maybe #2 is implicated as well. Despite looking like it had an earlier date, #2 landed later. Warner On Tue, Aug 15, 2023 at 7:52 AM John F Carr <jfc@mit.edu> wrote: > Has something changed in llvm to cause soft float to be the default for > armv7? > > I am cross-compiling using poudriere on a 64 bit ARM host to target armv7. > This used to work. After updating my jail (poudriere jail -u -msrc=...) I > get an > unnecessarily mysterious failure building pkg. Poudriere erases the > evidence, > poudriere -i does not work as advertised, pkg's configure script spawns > subshells > to prevent set -x from working, and the subshell directs error messages to > /dev/null. > After getting past all that, > > # cc -target armv7-freebsd -o /tmp/a.out autosetup/jimsh0.c > > in the pkg source directory results in undefined symbols such as __eqdf2. > > # cc -target armv7-freebsd-gnueabihf -o /tmp/a.out autosetup/jimsh0.c > > works fine. > > # cc -v > FreeBSD clang version 16.0.6 (https://github.com/llvm/llvm-project.git > llvmorg-16.0.6-0-g7cbf1a259152) > Target: armv7-unknown-freebsd14.0 > Thread model: posix > InstalledDir: /usr/bin > > >