[PATCH 4/4] aarch64: add tests for glibc.cpu.aarch64_bti behaviour
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Mon Nov 17 13:03:05 GMT 2025
On 14/11/25 11:58, Yury Khrustalev wrote:
> Hi Adhemerval,
>
> Thank you for your comments, all will be fixed in the next version of
> this patch series.
>
> On Mon, Nov 10, 2025 at 12:02:50PM -0300, Adhemerval Zanella Netto wrote:
>>
>> On 31/10/25 16:37, Yury Khrustalev wrote:
>>> Check that the new tunable changes behaviour correctly:
>>>
>>> * When BTI is enforced, any unmarked binary that is loaded
>>> results in an error: either an abort or dlopen error when
>>> this binary is loaded via dlopen.
>>> * When BTI is not enforced, it is OK to load an unmarked
>>> binary.
>>> ...
>>>
>>> +tests += \
>>> + tst-bti-abort-imm \
>>> + tst-bti-abort-transitive \
>>> + tst-bti-abort-unprot \
>>> + tst-bti-dep-prot \
>>> + tst-bti-dlopen-imm \
>>> + tst-bti-dlopen-prot \
>>> + tst-bti-dlopen-transitive \
>>> + tst-bti-permissive-dlopen \
>>> + tst-bti-permissive-imm \
>>> + tst-bti-permissive-transitive \
>>> + # tests
>>
>> I am seeing these failures when the toolchain does not have
>> --enable-standard-branch-protection:
>>
>> FAIL: misc/tst-bti-dep-prot
>> FAIL: misc/tst-bti-dlopen-imm
>> FAIL: misc/tst-bti-dlopen-prot
>> FAIL: misc/tst-bti-dlopen-transitive
>>
>> It is because the binaries do not have the BTI property:
>
> A similar problem exists with some of the GCS tests too. In case when
> the toolchain's CC and LD support BTI (or GCS, etc) but we do not
> enable corresponding branch protection for the Glibc itself, we are
> going to see such test errors simply because libc.so won't have the
> marking.
>
> Ideally, we need a way to know if branch protection is enabled when
> compiling and linking libc.so and only then activate the corresponding
> tests.
>
> Perhaps before running the test we could check properties of libc.so
> and let these tests to fail as UNSUPPORTED?
This can be a configure check that enabled Makefile flag.
>
>> I think we will need to use -mbranch-protection=bti for the aforementioned
>> tests.
>
> This won't work unfortunately.
I will need to redo my test environment, but this failure in specific was
indeed due the missing support from the binary itself.
More information about the Libc-alpha
mailing list