Files
rust/library
Aelin 79bb9f71e7 symcheck: Only ELFv1 ppc64 doesn't set .note.GNU-stack
`powerpc64-unknown-linux-gnu` currently is an ELFv1 target, while
`powerpc64-unknown-linux-musl` is an ELFv2 target.

Big-endian and little-endian ELFv2 targets both behave normally: they emit
`.note.GNU-stack`. Therefore, currently the tests would fail on big-endian
powerpc64 with ELFv2 ABI.

To determine whether we need to special-case powerpc64, we should check
the ABI instead of the endianness. The problem here is that the `e_flags`
part of the ELF header is actually `0` in the output of `cc -O0
-ffunction-sections -fdata-sections -fPIC -m64 -mabi=elfv2 -Wall -Wextra
-o missing_gnu_stack_section.o -c missing_gnu_stack_section.S`, the output
of that command is bit-for-bit identical on ELFv1 and ELFv2 hosts. In
order to know when to allow an unset `.note.GNU-stack` we therefore must
set `.abiversion 2` to be able to tell them apart from the ELF header.

This makes all tests pass on `powerpc64-unknown-linux-musl`.
2026-05-26 06:03:19 -05:00
..
2026-04-20 16:00:18 +00:00
2026-01-26 10:57:35 +00:00
2026-02-22 19:59:25 +01:00
2026-01-26 10:59:16 +00:00