From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/5 v2] toolchain: check the SSP option is known
Date: Wed, 13 Mar 2019 00:25:12 +0100 [thread overview]
Message-ID: <7ac2b57b-4f33-b661-e80f-6d4d30ebe469@mind.be> (raw)
In-Reply-To: <6137_1552392583_5C87A187_6137_470_1_3090e77d-fd75-49ec-8643-3a89ee5ea133@OPEXCLILM6F.corporate.adroot.infra.ftgroup>
On 12/03/2019 13:09, yann.morin at orange.com wrote:
> From: "Yann E. MORIN" <yann.morin@orange.com>
>
> Some toolchain vendors may have backported those options to older gcc
> versions, and we have no way to know, so we have to check that the
> user's selection is acceptable.
>
> Extend the macro that currently checks for SSP in the toolchain, with
> a new test that the actual SSP option is recognised and accepted.
>
> Note that the SSP option is either totaly empty, or an already-quoted
> string, so we can safely and easily assign it to a shell variable to
> test and use it.
>
> Note that we do not introduce BR2_TOOLCHAIN_HAS_SSP_STRONG, because:
>
> - our internal toolchain infra only supports gcc >= 4.9, so it has
> SSP strong;
>
> - of the external pre-built toolchains, only the codesourcery-arm
> one has a gcc-4.8 which lacks SSP strong, all the others have a
> gcc >= 4.9;
>
> - we'd still have to do the actual check for custom external
> toolchains anyway.
>
> So, we're not adding BR2_TOOLCHAIN_HAS_SSP_STRONG just for a single
> case.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin@orange.com>
> Cc: Matt Weber <matthew.weber@rockwellcollins.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>
>
> ---
> Changes v1 -> v2:
> - expand the commit log to explain why we're not adding
> BR2_TOOLCHAIN_HAS_SSP_STRONG (Arnout)
> ---
> toolchain/helpers.mk | 8 ++++++++
> toolchain/toolchain-external/pkg-toolchain-external.mk | 2 +-
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index e5520c00c3..ba097e83cf 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -415,6 +415,7 @@ check_unusable_toolchain = \
> # Check if the toolchain has SSP (stack smashing protector) support
> #
> # $1: cross-gcc path
> +# $2: gcc ssp option
> #
> check_toolchain_ssp = \
> __CROSS_CC=$(strip $1) ; \
> @@ -427,6 +428,13 @@ check_toolchain_ssp = \
> echo "SSP support not available in this toolchain, please disable BR2_TOOLCHAIN_EXTERNAL_HAS_SSP" ; \
> exit 1 ; \
> fi ; \
> + __SSP_OPTION=$(2); \
Is there any reason to pass this as an argument rather than using
$(BR2_SSP_OPTION) directly?
The same goes for $(TOOLCHAIN_EXTERNAL_CC), but that ship has sailed.
Regards,
Arnout
> + if [ -n "$${__SSP_OPTION}" ] ; then \
> + if ! echo 'void main(){}' | $${__CROSS_CC} -Werror $${__SSP_OPTION} -x c - -o $(BUILD_DIR)/.br-toolchain-test.tmp >/dev/null 2>&1 ; then \
> + echo "SSP option $${__SSP_OPTION} not available in this toolchain, please select another SSP level" ; \
> + exit 1 ; \
> + fi; \
> + fi; \
> rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
>
> #
> diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
> index db3570d96f..00cbd7b17a 100644
> --- a/toolchain/toolchain-external/pkg-toolchain-external.mk
> +++ b/toolchain/toolchain-external/pkg-toolchain-external.mk
> @@ -549,7 +549,7 @@ define $(2)_CONFIGURE_CMDS
> else \
> $$(call check_glibc,$$$${SYSROOT_DIR}) ; \
> fi
> - $$(Q)$$(call check_toolchain_ssp,$$(TOOLCHAIN_EXTERNAL_CC))
> + $$(Q)$$(call check_toolchain_ssp,$$(TOOLCHAIN_EXTERNAL_CC),$(BR2_SSP_OPTION))
> endef
>
> $(2)_TOOLCHAIN_WRAPPER_ARGS += $$(TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS)
>
next prev parent reply other threads:[~2019-03-12 23:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1552392456.git.yann.morin@orange.com>
2019-03-12 12:09 ` [Buildroot] [PATCH 1/5 v2] toolchain: prepare to pass more additional CFLAGS via the wrapper yann.morin at orange.com
2019-03-12 23:13 ` Arnout Vandecappelle
2019-03-12 12:09 ` [Buildroot] [PATCH 2/5 v2] toolchain: set the ssp gcc option in kconfig yann.morin at orange.com
2019-03-12 13:33 ` Matthew Weber
2019-03-12 23:14 ` Arnout Vandecappelle
2019-03-12 12:09 ` [Buildroot] [PATCH 3/5 v2] toolchain: check the SSP option is known yann.morin at orange.com
2019-03-12 23:25 ` Arnout Vandecappelle [this message]
2019-03-13 7:27 ` yann.morin at orange.com
2019-03-26 19:26 ` Thomas Petazzoni
2019-03-27 6:35 ` yann.morin at orange.com
2019-08-03 21:13 ` Arnout Vandecappelle
2019-03-12 12:09 ` [Buildroot] [PATCH 4/5 v2] toolchain: -fstack-protector-strong can be back-ported yann.morin at orange.com
2019-08-03 21:16 ` Arnout Vandecappelle
2019-08-05 6:03 ` yann.morin at orange.com
2019-03-12 12:09 ` [Buildroot] [PATCH 5/5 v2] toolchain: allow PIC/PIE without RELRO yann.morin at orange.com
2019-03-12 13:50 ` Matthew Weber
2019-03-12 14:25 ` yann.morin at orange.com
2019-08-03 21:20 ` Arnout Vandecappelle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7ac2b57b-4f33-b661-e80f-6d4d30ebe469@mind.be \
--to=arnout@mind.be \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox