From mboxrd@z Thu Jan 1 00:00:00 1970 From: Romain Naour Date: Mon, 02 Feb 2015 17:18:25 +0100 Subject: [Buildroot] [PATCH 3/4] toolchain: allow for stupid toolchains In-Reply-To: <1421951608-31233-4-git-send-email-ezequiel@vanguardiasur.com.ar> References: <1421951608-31233-1-git-send-email-ezequiel@vanguardiasur.com.ar> <1421951608-31233-4-git-send-email-ezequiel@vanguardiasur.com.ar> Message-ID: <54CFA351.2050408@openwide.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hi Ezequiel, Le 22/01/2015 19:33, Ezequiel Garcia a ?crit : > From: Guido Mart?nez > > 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 > --- > 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