[Buildroot] [PATCH 3/4] toolchain: allow for stupid toolchains
Romain Naour
romain.naour at openwide.fr
Mon Feb 2 16:18:25 UTC 2015
Hi Ezequiel,
Le 22/01/2015 19:33, Ezequiel Garcia a écrit :
> From: Guido Martínez <guido at vanguardiasur.com.ar>
>
> check_arm_abi builds a test C file to check that the toolchain is
> working correctly, with the output redirected to /dev/null.
>
> However, some toolchains (OSELAS 2013.12.2, for instance) foolishly
> append ".gdb" to the output filename for an intermediate file, causing
> an attempt to write to /dev/null.gdb, which obviously fails.
>
> Fix this by adding an option to skip this check, so it can be selected
> in the OSELAS toolchain.
>
> Signed-off-by: Guido Martínez <guido at vanguardiasur.com.ar>
> ---
> toolchain/helpers.mk | 6 +++++-
> toolchain/toolchain-external/Config.in | 4 ++++
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 3121da4..d008a4f 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -297,13 +297,17 @@ check_arm_abi = \
> if ! echo $${EXT_TOOLCHAIN_TARGET} | grep -qE 'eabi(hf)?$$' ; then \
> echo "External toolchain uses the unsuported OABI" ; \
> exit 1 ; \
> - fi ; \
> + fi
> +
> +ifneq ($(BR2_ARM_TOOLCHAIN_SKIP_CHECK),y)
> +check_arm_abi += ; \
> if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o /dev/null - ; then \
> abistr_$(BR2_ARM_EABI)='EABI'; \
> abistr_$(BR2_ARM_EABIHF)='EABIhf'; \
> echo "Incorrect ABI setting: $${abistr_y} selected, but toolchain is incompatible"; \
> exit 1 ; \
> fi
> +endif
>
I looked at this issue and tried to avoid the use of /dev/null.gdb ...
In the Cortex-M toolchain, it seems to have a wrapper around the linker like
this one [1] which append the .gdb suffix.
However, there is no error if "-Wl,-r" (Generate relocatable output) is added in
the gcc's command line but it's not really nice solution because this option
will be there for other toolchains.
Yann proposed to use $BUILD_DIR/br-foo instead of /dev/null and add a comment
why we do that.
What do you think ?
I'm Cc Yann.
[1] https://github.com/m-labs/elf2flt-lm32/blob/master/ld-elf2flt.in
Best regards,
Romain Naour
More information about the buildroot
mailing list