2021-05-15 12:42:41

by Michal Kubecek

[permalink] [raw]
Subject: [PATCH] kbuild: dummy-tools: adjust to stricter stackprotector check

Commit 3fb0fdb3bbe7 ("x86/stackprotector/32: Make the canary into a regular
percpu variable") modified the stackprotector check on 32-bit x86 to check
if gcc supports using %fs as canary. Adjust dummy-tools gcc script to pass
this new test by returning "%fs" rather than "%gs" if it detects
-mstack-protector-guard-reg=fs on command line.

Fixes: 3fb0fdb3bbe7 ("x86/stackprotector/32: Make the canary into a regular percpu variable")
Signed-off-by: Michal Kubecek <[email protected]>
---
scripts/dummy-tools/gcc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/dummy-tools/gcc b/scripts/dummy-tools/gcc
index f6d543725f1e..b2483149bbe5 100755
--- a/scripts/dummy-tools/gcc
+++ b/scripts/dummy-tools/gcc
@@ -76,7 +76,11 @@ fi
if arg_contain -S "$@"; then
# For scripts/gcc-x86-*-has-stack-protector.sh
if arg_contain -fstack-protector "$@"; then
- echo "%gs"
+ if arg_contain -mstack-protector-guard-reg=fs "$@"; then
+ echo "%fs"
+ else
+ echo "%gs"
+ fi
exit 0
fi

--
2.31.1



2021-05-17 03:42:04

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: dummy-tools: adjust to stricter stackprotector check

On Sat, May 15, 2021 at 7:58 PM Michal Kubecek <[email protected]> wrote:
>
> Commit 3fb0fdb3bbe7 ("x86/stackprotector/32: Make the canary into a regular
> percpu variable") modified the stackprotector check on 32-bit x86 to check
> if gcc supports using %fs as canary. Adjust dummy-tools gcc script to pass
> this new test by returning "%fs" rather than "%gs" if it detects
> -mstack-protector-guard-reg=fs on command line.
>
> Fixes: 3fb0fdb3bbe7 ("x86/stackprotector/32: Make the canary into a regular percpu variable")
> Signed-off-by: Michal Kubecek <[email protected]>


Applied to linux-kbuild/fixes.
Thanks.

> ---
> scripts/dummy-tools/gcc | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/dummy-tools/gcc b/scripts/dummy-tools/gcc
> index f6d543725f1e..b2483149bbe5 100755
> --- a/scripts/dummy-tools/gcc
> +++ b/scripts/dummy-tools/gcc
> @@ -76,7 +76,11 @@ fi
> if arg_contain -S "$@"; then
> # For scripts/gcc-x86-*-has-stack-protector.sh
> if arg_contain -fstack-protector "$@"; then
> - echo "%gs"
> + if arg_contain -mstack-protector-guard-reg=fs "$@"; then
> + echo "%fs"
> + else
> + echo "%gs"
> + fi
> exit 0
> fi
>
> --
> 2.31.1
>


--
Best Regards
Masahiro Yamada