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

Eiichi Tsukata posted 1 patch 1 year, 6 months ago
There is a newer version of this series
tools/perf/tests/workloads/Build | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
[PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
Posted by Eiichi Tsukata 1 year, 6 months ago
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@nutanix.com>
---
 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
Re: [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
Posted by Eiichi Tsukata 1 year, 6 months ago
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@nutanix.com> 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@nutanix.com>
> ---
> 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
> 

Re: [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
Posted by Eiichi Tsukata 1 year, 5 months ago
Ping

> On Aug 6, 2024, at 15:27, Eiichi Tsukata <eiichi.tsukata@nutanix.com> wrote:
> 
> 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@nutanix.com> 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@nutanix.com>
>> ---
>> 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
>> 
> 

Re: [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
Posted by Arnaldo Carvalho de Melo 1 year, 5 months ago
On Mon, Aug 26, 2024 at 03:04:12AM +0000, Eiichi Tsukata wrote:
> Ping

Tried, didn't work, can you please check on the tmp.perf-tools-next?

⬢[acme@toolbox perf-tools-next]$ b4 am -ctsl --cc-trailers 20240806061749.143072-1-eiichi.tsukata@nutanix.com
Grabbing thread from lore.kernel.org/all/20240806061749.143072-1-eiichi.tsukata@nutanix.com/t.mbox.gz
Analyzing 3 messages in the thread
Looking for additional code-review trailers on lore.kernel.org
Checking attestation on all messages, may take a moment...
---
  ✓ [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
    + Link: https://lore.kernel.org/r/20240806061749.143072-1-eiichi.tsukata@nutanix.com
    + Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  ---
  ✓ Signed: DKIM/nutanix.com
---
Total patches: 1
---
 Link: https://lore.kernel.org/r/20240806061749.143072-1-eiichi.tsukata@nutanix.com
 Base: not specified
       git am ./20240806_eiichi_tsukata_perf_test_use_wp_u_fortify_source_for_tests_built_with_o0.mbx
⬢[acme@toolbox perf-tools-next]$        git am ./20240806_eiichi_tsukata_perf_test_use_wp_u_fortify_source_for_tests_built_with_o0.mbx
Applying: perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
error: patch failed: tools/perf/tests/workloads/Build:7
error: tools/perf/tests/workloads/Build: patch does not apply
Patch failed at 0001 perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config advice.mergeConflict false"
⬢[acme@toolbox perf-tools-next]$ git am --abort
⬢[acme@toolbox perf-tools-next]$
 
> > On Aug 6, 2024, at 15:27, Eiichi Tsukata <eiichi.tsukata@nutanix.com> wrote:
> > 
> > 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@nutanix.com> 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@nutanix.com>
> >> ---
> >> 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
> >> 
> > 
> 
Re: [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
Posted by Eiichi Tsukata 1 year, 5 months ago

> On Aug 26, 2024, at 23:42, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> 
> On Mon, Aug 26, 2024 at 03:04:12AM +0000, Eiichi Tsukata wrote:
>> Ping
> 
> Tried, didn't work, can you please check on the tmp.perf-tools-next?
> 

It failed because "perf-test-y += landlock.o” line was added recently.
I’ll rebase the patch on tmp.perf-tools-next in v2.

Thanks
Eiichi


> ⬢[acme@toolbox perf-tools-next]$ b4 am -ctsl --cc-trailers 20240806061749.143072-1-eiichi.tsukata@nutanix.com
> Grabbing thread from lore.kernel.org/all/20240806061749.143072-1-eiichi.tsukata@nutanix.com/t.mbox.gz
> Analyzing 3 messages in the thread
> Looking for additional code-review trailers on lore.kernel.org
> Checking attestation on all messages, may take a moment...
> ---
>  ✓ [PATCH] perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
>    + Link: https://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.org_r_20240806061749.143072-2D1-2Deiichi.tsukata-40nutanix.com&d=DwIDaQ&c=s883GpUCOChKOHiocYtGcg&r=dy01Dr4Ly8mhvnUdx1pZhhT1bkq4h9z5aVWu3paoZtk&m=_0OObZsmx6FjjueHZafPjJj8gKzbBsFc_De-z9V-NlDqBdP2JXkVHey4ZnvbC5et&s=Rw2ve-4V8ySCyy7B99P6fc1biLAeFkcjpcB2SjTAAc8&e= 
>    + Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>  ---
>  ✓ Signed: DKIM/nutanix.com
> ---
> Total patches: 1
> ---
> Link: https://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.org_r_20240806061749.143072-2D1-2Deiichi.tsukata-40nutanix.com&d=DwIDaQ&c=s883GpUCOChKOHiocYtGcg&r=dy01Dr4Ly8mhvnUdx1pZhhT1bkq4h9z5aVWu3paoZtk&m=_0OObZsmx6FjjueHZafPjJj8gKzbBsFc_De-z9V-NlDqBdP2JXkVHey4ZnvbC5et&s=Rw2ve-4V8ySCyy7B99P6fc1biLAeFkcjpcB2SjTAAc8&e= 
> Base: not specified
>       git am ./20240806_eiichi_tsukata_perf_test_use_wp_u_fortify_source_for_tests_built_with_o0.mbx
> ⬢[acme@toolbox perf-tools-next]$        git am ./20240806_eiichi_tsukata_perf_test_use_wp_u_fortify_source_for_tests_built_with_o0.mbx
> Applying: perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
> error: patch failed: tools/perf/tests/workloads/Build:7
> error: tools/perf/tests/workloads/Build: patch does not apply
> Patch failed at 0001 perf test: Use -Wp,-U_FORTIFY_SOURCE for tests built with -O0
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> hint: When you have resolved this problem, run "git am --continue".
> hint: If you prefer to skip this patch, run "git am --skip" instead.
> hint: To restore the original branch and stop patching, run "git am --abort".
> hint: Disable this message with "git config advice.mergeConflict false"
> ⬢[acme@toolbox perf-tools-next]$ git am --abort
> ⬢[acme@toolbox perf-tools-next]$
> 
>>> On Aug 6, 2024, at 15:27, Eiichi Tsukata <eiichi.tsukata@nutanix.com> wrote:
>>> 
>>> Hi,
>>> 
>>> FYI: Fedora uses “RPM_OPT_FLAGS”  as “EXTRA_CFLAGS” to build perf.
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__src.fedoraproject.org_rpms_kernel_blob_rawhide_f_kernel.spec-23-5F2908&d=DwIDaQ&c=s883GpUCOChKOHiocYtGcg&r=dy01Dr4Ly8mhvnUdx1pZhhT1bkq4h9z5aVWu3paoZtk&m=_0OObZsmx6FjjueHZafPjJj8gKzbBsFc_De-z9V-NlDqBdP2JXkVHey4ZnvbC5et&s=9EKEgobk4lamLGzFX9G0hfSjJmqvmU1cOeoJUGVXn_g&e= 
>>> 
>>> 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@nutanix.com> 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@nutanix.com>
>>>> ---
>>>> 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
>>>> 
>>> 
>>