On 07/11/2018 05:22 AM, Tamar Christina wrote:
> Hi All,
> This patch defines a configure option to allow the setting of the default
> guard size via configure flags when building the target.
> The new flag is:
> * --with-stack-clash-protection-guard-size=<num>
> The value of configured based params are set very early on and allow the
> target to validate or reject the values as it sees fit.
> To do this the values for the parameter get set by configure through CPP
> In case the back-end wants to know if a value was set or not the original
> value is also passed down as a define.
> This allows a target to check if a param was changed by the user at configure
> Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu and no
> Both targets were tested with stack clash on and off by default.
> Ok for trunk?
> 2018-07-11 Tamar Christina <tamar.christ...@arm.com>
> PR target/86486
> * configure.ac: Add stack-clash-protection-guard-size.
> * config.in (DEFAULT_STK_CLASH_GUARD_SIZE, STK_CLASH_GUARD_SIZE_DEFAULT,
> STK_CLASH_GUARD_SIZE_MAX, STK_CLASH_GUARD_SIZE_MIN): New.
> * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): Use it.
> * configure: Regenerate.
> * Makefile.in (params.list, params.options): Add include dir for CPP.
> * params-list.h: Include auto-host.h
> * params-options.h: Likewise.
Something seems wrong here.
What's the purpose of including auto-host in params-list and
params-options? It seems like you're putting a property of the target
(guard size) into the wrong place (auto-host.h).
It's also a bit unclear to me why this is necessary at all. Are we
planning to support both the 4k and 64k guards? My goal (once the guard
was configurable) was never for supporting multiple sizes on a target
but instead to allow experimentation to find the right default.