Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2023 18:22:08 +0000
From:      John F Carr <jfc@mit.edu>
To:        Thomas David Rivers <rivers@dignus.com>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: 32-bit executables on aarch64?
Message-ID:  <46BE47DA-9306-4682-8320-D2CBEB5918F7@mit.edu>
In-Reply-To: <202305181816.34IIGA8P024382@office.dignus.com>
References:  <202305181816.34IIGA8P024382@office.dignus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I had to set up a jail to test 32 bit ARM on a 64 bit host.  If you get pas=
t the link error, expect the program to fail at startup.

$ file /bin/ls /usr/jail/armv7/bin/ls
/bin/ls:                ELF 64-bit LSB pie executable, ARM aarch64, version=
 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for Fre=
eBSD 13.2 (1302505), FreeBSD-style, stripped
/usr/jail/armv7/bin/ls: ELF 32-bit LSB executable, ARM, EABI5 version 1 (Fr=
eeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, FreeBSD-style=
, for FreeBSD 13.2 (1302500), stripped
$ /usr/jail/armv7/bin/ls
ELF interpreter /libexec/ld-elf.so.1 not found, error 8
Abort trap

"Not found" means "is not a 32 bit executable."  Because both 32 and 64 bit=
 progams use the same intepreter pathname they can't both work.


> On May 18, 2023, at 14:16, Thomas David Rivers <rivers@dignus.com> wrote:
>=20
>=20
> Tried the following with a small "hello world" program on=20
>   FreeBSD freebsd 13.2-RELEASE FreeBSD 13.2-RELEASE releng/13.2-n254617-5=
25ecfdad597 GENERIC arm64
>=20
> # cc -m32 hello.c
>=20
> To get these errors:
>=20
>  ld: error: /tmp/hello-1eb3b8.o is incompatible with /usr/lib/crt1.o
>  cc: error: linker command failed with exit code 1 (use -v to see invocat=
ion)
>=20
> Is building a 32-bit program not supported on 13.2 arm64?
>=20
>  man cc
>=20
> gave me the CLANG doc... which didn't even mention "m32"; so perhaps
> I just need a different set of options?   I tried -arch arm but I still
> got 64-bit code.  Also, I tried several other -arch options and didn't
> see a difference, even with -arch x86, I still got Aarch64 code.
>=20
> - Many thanks! -
> - Dave Rivers -
>=20
> --
> rivers@dignus.com                        Work: (919) 676-0847
> Get your mainframe programming tools at http://www.dignus.com
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46BE47DA-9306-4682-8320-D2CBEB5918F7>