diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 23:18:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-17 23:18:11 -0400 |
commit | b46522394dde7341a5253658096f354b65cbd90d (patch) | |
tree | c8631b9d3c07b4fd60f27e1c89863e89247d0eb7 | |
parent | b42895d6fe66995ab101c15d9a59c78474dbf382 (diff) |
Revert "[PATCH] x86: Drop cc-options call for all options supported in gcc 3.2+"
This reverts commit c8fdd247255a3a027cd9f66dcf93e6847d1d2f85.
It turns out the kernel was correct, and the gcc complaint was a gcc
bug. The preferred stack boundary is expressed not in bytes, but in the
the log2() of the preferred boundary, so "-mpreferred-stack-boundary=2"
is in fact exactly what we want, but a gcc that is compiled for x86-64
will consider it an error (because the 64-bit calling sequence says that
the stack should be 16-byte aligned) even if we are then using "-m32" to
generate 32-bit code.
Noted-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: Jan Hubicka <jh@suse.cz>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | arch/i386/Makefile | 2 |
2 files changed, 2 insertions, 2 deletions
@@ -491,7 +491,7 @@ endif | |||
491 | include $(srctree)/arch/$(ARCH)/Makefile | 491 | include $(srctree)/arch/$(ARCH)/Makefile |
492 | 492 | ||
493 | ifdef CONFIG_FRAME_POINTER | 493 | ifdef CONFIG_FRAME_POINTER |
494 | CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls | 494 | CFLAGS += -fno-omit-frame-pointer $(call cc-option,-fno-optimize-sibling-calls,) |
495 | else | 495 | else |
496 | CFLAGS += -fomit-frame-pointer | 496 | CFLAGS += -fomit-frame-pointer |
497 | endif | 497 | endif |
diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 6dc5e5d90fec..bd28f9f9b4b7 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile | |||
@@ -34,7 +34,7 @@ CHECKFLAGS += -D__i386__ | |||
34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return | 34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return |
35 | 35 | ||
36 | # prevent gcc from keeping the stack 16 byte aligned | 36 | # prevent gcc from keeping the stack 16 byte aligned |
37 | CFLAGS += -mpreferred-stack-boundary=4 | 37 | CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2) |
38 | 38 | ||
39 | # CPU-specific tuning. Anything which can be shared with UML should go here. | 39 | # CPU-specific tuning. Anything which can be shared with UML should go here. |
40 | include $(srctree)/arch/i386/Makefile.cpu | 40 | include $(srctree)/arch/i386/Makefile.cpu |