[PATCH] elf: build the IFUNC resolver stack protector tests only with ssp
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Tue Aug 11 12:18:22 GMT 2026
On 10/08/26 16:09, Matt Turner wrote:
> The three resolver translation units are compiled with
> -fstack-protector-all so that the canary code is emitted whatever the
> default is. A target whose compiler has no stack protector at all cannot
> do that, and on alpha the build stopped:
>
> cc1: error: '-fstack-protector' not supported for this target [-Werror]
I think it is worth to mention that current alpha has not ifunc support
(have-gcc-ifunc=no), and this comes from enabling ifunc support.
>
> taking the rest of the elf tests with it. Guard the tests on $(have-ssp),
> which configure already sets from the compiler's own answer. That is the
> answer for -fstack-protector rather than for -fstack-protector-all, which
> has its own configure test, but only the former reaches config.make, and a
> compiler that has one has the other.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> elf/Makefile | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git ./elf/Makefile ./elf/Makefile
> index 94c5b7e6ed..74a4f0ebfc 100644
> --- ./elf/Makefile
> +++ ./elf/Makefile
> @@ -292,7 +292,7 @@ tests-static-internal := \
> tst-tunables-enable_secure \
> # tests-static-internal
>
> -ifeq (yes,$(have-gcc-ifunc))
> +ifeq (yesyes,$(have-gcc-ifunc)$(have-ssp))
> tests-static-internal += \
> tst-ifunc-resolver-protector-static \
> tst-ifunc-resolver-protector-static-non-pie \
> @@ -777,7 +777,7 @@ test-extras += \
> tst-tlsmod18a \
> # test-extras
>
> -ifeq (yes,$(have-gcc-ifunc))
> +ifeq (yesyes,$(have-gcc-ifunc)$(have-ssp))
> # The resolver helper needs <tls.h> for the TCB-canary STACK_CHK_GUARD
> # macro, so it must be compiled with MODULE_NAME=testsuite_internal.
> extra-test-objs += \
> @@ -1318,7 +1318,6 @@ tests += \
> tst-ifunc-plt-bindnow \
> tst-ifunc-plt-dlopen \
> tst-ifunc-plt-dlopen-bindnow \
> - tst-ifunc-resolver-protector \
> tst-ifunc-tls-init \
> tst-ifunc-tls-init-gd-ld \
> tst-ifunc-tls-write \
> @@ -1387,7 +1386,6 @@ modules-names += \
> ifuncmod6 \
> tst-ifunc-plt-dep \
> tst-ifunc-plt-lib \
> - tst-ifunc-resolver-protector-mod \
> tst-ifunc-tls-init-gd-global-lib \
> tst-ifunc-tls-init-gd-lib \
> tst-ifunc-tls-init-ld-lib \
> @@ -1405,6 +1403,10 @@ endif
> ifeq (no,$(with-lld))
> modules-names += ifuncmod5
> endif
> +ifeq ($(have-ssp),yes)
> +tests += tst-ifunc-resolver-protector
> +modules-names += tst-ifunc-resolver-protector-mod
> +endif
> endif
> endif
>
More information about the Libc-alpha
mailing list