Re: [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0

From: Eiichi Tsukata
Date: Tue Aug 06 2024 - 02:28:19 EST


Hi,

FYI: Fedora uses “RPM_OPT_FLAGS” as “EXTRA_CFLAGS” to build perf.
https://src.fedoraproject.org/rpms/kernel/blob/rawhide/f/kernel.spec#_2908

And on Fedora40, it has “-Wp,-D_FORTIFY_SOURCE=3”.

[eiichi@t495 ~]$ rpm --showrc | grep RPM_OPT | head -n 1
RPM_OPT_FLAGS="%{optflags}"
[eiichi@t495 ~]$ rpm --eval '%{optflags}'
-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mon-omit-leaf-frame-pointer

Best,
Eiichi

> On Aug 6, 2024, at 15:17, Eiichi Tsukata <eiichi.tsukata@xxxxxxxxxxx> wrote:
>
> If EXTRA_CFLAGS has "-Wp,-D_FORTIFY_SOURCE=2", the build fails with:
>
> error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
>
> Use "-Wp,-U_FORTIFY_SOURCE" instead of "-U_FORTIFY_SOURCE" for tests
> built with -O0.
>
> Signed-off-by: Eiichi Tsukata <eiichi.tsukata@xxxxxxxxxxx>
> ---
> tools/perf/tests/workloads/Build | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/perf/tests/workloads/Build b/tools/perf/tests/workloads/Build
> index 48bf0d3b0f3d..ec36c21e375e 100644
> --- a/tools/perf/tests/workloads/Build
> +++ b/tools/perf/tests/workloads/Build
> @@ -7,7 +7,7 @@ perf-test-y += sqrtloop.o
> perf-test-y += brstack.o
> perf-test-y += datasym.o
>
> -CFLAGS_sqrtloop.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
> -CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer -U_FORTIFY_SOURCE
> -CFLAGS_brstack.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
> -CFLAGS_datasym.o = -g -O0 -fno-inline -U_FORTIFY_SOURCE
> +CFLAGS_sqrtloop.o = -g -O0 -fno-inline -Wp,-U_FORTIFY_SOURCE
> +CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer -Wp,-U_FORTIFY_SOURCE
> +CFLAGS_brstack.o = -g -O0 -fno-inline -Wp,-U_FORTIFY_SOURCE
> +CFLAGS_datasym.o = -g -O0 -fno-inline -Wp,-U_FORTIFY_SOURCE
> --
> 2.45.2
>