toolchain: allow for stupid toolchains
authorGuido Martínez <guido@vanguardiasur.com.ar>
Fri, 26 Jun 2015 17:33:20 +0000 (14:33 -0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 28 Jun 2015 12:32:40 +0000 (14:32 +0200)
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 2014.12.0, 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 changing the output to a temporary file, which is
later removed along with any other "suffixed" files.

Suggested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Guido Martínez <guido@vanguardiasur.com.ar>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/helpers.mk

index 30eb065e19b00e95a496848eb11e268e8924d4c1..0dc1864bb72a4b76cd0541e6478d174b2723e801 100644 (file)
@@ -308,12 +308,14 @@ check_arm_abi = \
                echo "External toolchain uses the unsuported OABI" ; \
                exit 1 ; \
        fi ; \
-       if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o /dev/null - ; then \
+       if ! echo 'int main(void) {}' | $${__CROSS_CC} -x c -o $(BUILD_DIR)/.br-toolchain-test.tmp - ; then \
+               rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*; \
                abistr_$(BR2_ARM_EABI)='EABI'; \
                abistr_$(BR2_ARM_EABIHF)='EABIhf'; \
                echo "Incorrect ABI setting: $${abistr_y} selected, but toolchain is incompatible"; \
                exit 1 ; \
-       fi
+       fi ; \
+       rm -f $(BUILD_DIR)/.br-toolchain-test.tmp*
 
 #
 # Check that the external toolchain supports C++