On Mon, May 16, 2022 at 10:29:35AM +0100, Andre Przywara wrote: > On Sun, 15 May 2022 11:05:23 +0100 > Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > On Wed, May 11, 2022 at 06:21:29PM +0100, Andre Przywara wrote: > > > The "bti" selftests are built with -nostdlib, which apparently > > > automatically creates a statically linked binary, which is what we want > > > and need for BTI (to avoid interactions with the dynamic linker). > > > > > > However this is not true when building a PIE binary, which some > > > toolchains (Ubuntu) configure as the default. > > > When compiling btitest with such a toolchain, it will create a > > > dynamically linked binary, which will probably fail some tests, as the > > > dynamic linker might not support BTI: > > > =================== > > > TAP version 13 > > > 1..18 > > > not ok 1 nohint_func/call_using_br_x0 > > > not ok 2 nohint_func/call_using_br_x16 > > > not ok 3 nohint_func/call_using_blr > > > .... > > > =================== > > > > > > To make sure we create static binaries, add an explicit -static on the > > > linker command line. This forces static linking even if the toolchain > > > defaults to PIE builds, and fixes btitest runs on BTI enabled machines. > > > > > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > > > > Does this need to go in as a fix (cc stable, fixes tag)? > > I dimly remember some discussion about stable fixes not being a real thing > for the selftests? In any case: > > Fixes: 314bcbf09f14 ("kselftest: arm64: Add BTI tests") I'll add the fixes tag. I can see the occasional cc stable for kselftest patches. -- Catalin