Is aarch64_be-linux-gnu_ilp32 supported?

Alan Modra amodra@gmail.com
Thu Apr 20 00:14:16 GMT 2023


On Wed, Apr 19, 2023 at 04:41:53PM -0700, Andrew Pinski wrote:
> On Wed, Apr 19, 2023 at 4:34 PM Alan Modra via Binutils
> <binutils@sourceware.org> wrote:
> >
> > I added aarch64_be-linux-gnu_ilp32 a while ago to my list of targets
> > to test before pushing global changes, but I'm thinking I ought to drop
> > it.  The ld testsuite gets segmentation faults, and the list of fails
> > is quite large.  No doubt it would be worse if I had installed a
> > cross-compiler for the target.
> 
> The Linux kernel support for ILP32 never made it upstream; glibc
> support never made it upstream; though there was a branch on
> sourceware.org at one time. And we (the folks who were working on
> ILP32 at the time) never tested big-endian support.

Thanks for the info.

I only chose aarch64_be-linux-gnu_ilp32 because I hadn't previously
tested any aarch64 BE targets.  Having just now tested
aarch64-linux-gnu_ilp32 and getting these results,
FAIL: binutils-all/aarch64/sve-dwarf-registers
FAIL: Disassembler detects unallocated instruction encodings.
FAIL: binutils-all/strip-14
FAIL: binutils-all/strip-15
FAIL: gas/aarch64/reloc-prel_g1_nc
FAIL: gas/aarch64/reloc-prel_g2
FAIL: gas/aarch64/reloc-prel_g2_nc
FAIL: gas/aarch64/reloc-prel_g3
FAIL: gas/aarch64/symbol-variant_pcs-1
FAIL: ld-aarch64/erratum843419_tls_ie
FAIL: ld-aarch64/erratum843419-far-adr
FAIL: ld-aarch64/erratum843419-far-full
FAIL: ld-aarch64/emit-relocs-257
FAIL: aarch64-farcall-back
FAIL: aarch64-farcall-b-gsym
FAIL: aarch64-farcall-group
FAIL: ld-aarch64/tls-relax-all
FAIL: ld-aarch64/tls-relax-gd-le
FAIL: ld-aarch64/tls-relax-gdesc-le
FAIL: ld-aarch64/tls-relax-gdesc-le-now
FAIL: ld-aarch64/tls-relax-ie-le
FAIL: ld-aarch64/tls-relax-ld-le-small
FAIL: ld-aarch64/tls-relax-ld-le-tiny
FAIL: ld-aarch64/tls-desc-ie
FAIL: ld-aarch64/tls-relax-gdesc-le-2
FAIL: ld-aarch64/tls-relax-ie-le-2
FAIL: ld-aarch64/tls-relax-ie-le-3
FAIL: ld-aarch64/tls-tiny-gd
FAIL: ld-aarch64/tls-tiny-gd-le
FAIL: ld-aarch64/tls-tiny-desc
FAIL: ld-aarch64/tls-tiny-desc-le
FAIL: ld-aarch64/tls-tiny-ie
FAIL: ld-aarch64/tls-tiny-ld
FAIL: ld-aarch64/tls-small-ld
FAIL: ld-aarch64/tlsle-symbol-offset
FAIL: ld-aarch64/gc-got-relocs
FAIL: ld-aarch64/gc-tls-relocs
FAIL: TLS offset out of range
FAIL: TLS offset out of range - TPREL_ADD_LO12
FAIL: ld-aarch64/protected-data
FAIL: ld-aarch64/tls-relax-gd-ie
FAIL: ld-aarch64/tls-relax-large-gd-ie
FAIL: ld-aarch64/tls-relax-large-desc-ie
FAIL: ld-aarch64/tls-relax-gdesc-ie
FAIL: ld-aarch64/tls-relax-gdesc-ie-2
FAIL: ld-aarch64/tls-tiny-gd-ie
FAIL: ld-aarch64/tls-tiny-desc-ie
FAIL: ld-aarch64/tls-relax-gd-ie-2
FAIL: ld-aarch64/tls-relax-gd-ie-3
FAIL: ld-aarch64/tls-relax-ie-le-4
FAIL: ld-aarch64/relasz
FAIL: AArch64 mapping symbol for plt section test.
FAIL: GNU Property (single input, combine section)
FAIL: GNU Property (combine multiple with BTI)
FAIL: GNU Property (combine multiple with PAC)
FAIL: PT_GNU_PROPERTY alignment
FAIL: Check -z force-bti emits BTI PLT (shared)
FAIL: Check -z force-bti emits BTI feature (shared)
FAIL: ld-aarch64/exe with copy relocation
FAIL: ld-aarch64/exe with copy relocation 2
FAIL: ld-aarch64/exe with copy relocation elimination
FAIL: ld-aarch64/func sym hash opt for exe
FAIL: Build bti-plt-so for PLT tests
FAIL: Check -z force-bti emits BTI PLT (exec)
FAIL: Check -z force-bti emits BTI feature (exec)
FAIL: BTI PLT with only GNU PROP
FAIL: Warn with one missing GNU NOTE BTI input
FAIL: Warn when neither inputs has GNU NOTE BTI
FAIL: ld-aarch64/pac-plt-1
FAIL: ld-aarch64/pac-plt-2
FAIL: ld-aarch64/bti-pac-plt-1
FAIL: ld-aarch64/bti-pac-plt-2
FAIL: Warn when both have GNU prop but neither BTI
FAIL: ld-aarch64/weak-tls
FAIL: ld-aarch64/undef-tls
FAIL: Check linker stubs with indirect calls handle BTI (shared lib).
FAIL: Check linker stubs with indirect calls handle BTI (exe).
FAIL: Check linker stubs with indirect calls handle BTI when target has BTI.
the message is fairly loud and clear that this is an experimental
target.

BTW, aarch64_be-linux-gnu gets the same segfaults I was seeing with
aarch64_be-linux-gnu_ilp32.

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list