From 25751e796e83a75e0d443f96694e539ffbf4687a Mon Sep 17 00:00:00 2001 From: Marcel Patzlaff Date: Fri, 24 Apr 2020 14:09:23 +0200 Subject: Rules.mak: Fix check_as for recent binutils versions As described in https://bugs.busybox.net/show_bug.cgi?id=12801 the check for '-Wa,--noexecstack' is not working since binutils 2.31.x. This fix adapts the approach already taken with check_ld and uses a temporary file. Further, check_gcc is also adapted to avoid future problems. Signed-off-by: Marcel Patzlaff --- Rules.mak | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Rules.mak b/Rules.mak index 6a9f5cbca..a10518c03 100644 --- a/Rules.mak +++ b/Rules.mak @@ -189,11 +189,13 @@ endif # A nifty macro to make testing gcc features easier check_gcc=$(shell \ - if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \ - then echo "$(1)"; else echo "$(2)"; fi) + tf="/tmp/cgccucl$$$$.o"; \ + if $(CC) $(1) -S -o $$tf -xc /dev/null > /dev/null 2>&1; \ + then echo "$(1)"; else echo "$(2)"; fi; rm -f $$tf ) check_as=$(shell \ - if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \ - then echo "-Wa,$(1)"; fi) + tf="/tmp/casucl$$$$.o"; \ + if $(CC) -Wa,$(1) -Wa,-Z -c -o $$tf -xassembler /dev/null > /dev/null 2>&1; \ + then echo "-Wa,$(1)"; fi; rm -f $$tf ) check_ld=$(shell \ tf="/tmp/clducl$$$$.c"; echo "int _start(){return 0;}int main(){return 0;}" >$$tf; \ if $(CC) $(LDFLAG-fuse-ld) $(CFLAG_-Wl--no-warn-mismatch) -Wl,$(1) $(CFLAG_-nostdlib) -o /dev/null $$tf > /dev/null 2>&1; \ -- cgit v1.2.3