From: Andi Kleen <ak@suse.de>
To: jbeulich@novell.com, patches@x86-64.org, linux-kernel@vger.kernel.org
Subject: [PATCH] [8/19] x86: Use -maccumulate-outgoing-args
Date: Sat, 21 Oct 2006 18:51:28 +0200 (CEST) [thread overview]
Message-ID: <20061021165128.23A8913C4D@wotan.suse.de> (raw)
In-Reply-To: <20061021 651.356252000@suse.de>
This avoids some problems with gcc 4.x and earlier generating
invalid unwind information. In 4.1 the option is default
when unwind information is enabled.
And it seems to generate smaller code too, so it's probably
a good thing on its own. With gcc 4.0:
i386:
4683198 902112 480868 6066178 5c9002 vmlinux (before)
4449895 902112 480868 5832875 5900ab vmlinux (after)
x86-64:
4939761 1449584 648216 7037561 6b6279 vmlinux (before)
4854193 1449584 648216 6951993 6a1439 vmlinux (after)
On 4.1 it shouldn't make much difference because it is
default when unwind is enabled anyways.
Suggested by Michael Matz and Jan Beulich
Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
---
arch/i386/Makefile | 4 ++++
arch/x86_64/Makefile | 4 ++++
2 files changed, 8 insertions(+)
Index: linux/arch/i386/Makefile
===================================================================
--- linux.orig/arch/i386/Makefile
+++ linux/arch/i386/Makefile
@@ -42,6 +42,10 @@ cflags-$(CONFIG_REGPARM) += -mregparm=3
# temporary until string.h is fixed
cflags-y += -ffreestanding
+# this works around some issues with generating unwind tables in older gccs
+# newer gccs do it by default
+cflags-y += -maccumulate-outgoing-args
+
# Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use
# a lot more stack due to the lack of sharing of stacklots:
CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;)
Index: linux/arch/x86_64/Makefile
===================================================================
--- linux.orig/arch/x86_64/Makefile
+++ linux/arch/x86_64/Makefile
@@ -54,6 +54,10 @@ endif
cflags-y += $(call cc-option,-funit-at-a-time)
# prevent gcc from generating any FP code by mistake
cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
+# this works around some issues with generating unwind tables in older gccs
+# newer gccs do it by default
+cflags-y += -maccumulate-outgoing-args
+
# do binutils support CFI?
cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,)
next prev parent reply other threads:[~2006-10-21 16:56 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20061021 651.356252000@suse.de>
2006-10-21 16:51 ` [PATCH] [1/19] x86_64: Update defconfig Andi Kleen
2006-10-21 16:51 ` [PATCH] [2/19] i386: " Andi Kleen
2006-10-21 16:51 ` [PATCH] [3/19] x86_64: x86_64 hot-add memory srat.c fix Andi Kleen
2006-10-21 16:51 ` [PATCH] [4/19] x86_64: typo in __assign_irq_vector when updating pos for vector and offset Andi Kleen
2006-10-21 16:51 ` [PATCH] [5/19] i386: fix .cfi_signal_frame copy-n-paste error Andi Kleen
2006-10-21 16:51 ` [PATCH] [6/19] x86_64: Fix for arch/x86_64/pci/Makefile CFLAGS Andi Kleen
2006-10-21 16:51 ` [PATCH] [7/19] x86_64: fix page align in e820 allocator Andi Kleen
2006-10-21 16:51 ` Andi Kleen [this message]
2006-10-21 17:18 ` [PATCH] [8/19] x86: Use -maccumulate-outgoing-args Dave Jones
2006-10-21 18:20 ` Andi Kleen
2006-10-21 16:51 ` [PATCH] [9/19] x86_64: Speed up dwarf2 unwinder Andi Kleen
2006-10-21 16:51 ` [PATCH] [10/19] x86_64: x86_64 add NX mask for PTE entry Andi Kleen
2006-10-21 16:51 ` [PATCH] [11/19] i386: Fix fake return address Andi Kleen
2006-10-21 18:12 ` Jeremy Fitzhardinge
2006-10-21 18:14 ` Andi Kleen
2006-10-21 18:17 ` Andreas Schwab
2006-10-21 16:51 ` [PATCH] [12/19] x86_64: Fix ENOSYS in system call tracing Andi Kleen
2006-10-21 16:51 ` [PATCH] [13/19] x86_64: Revert interrupt backlink changes Andi Kleen
2006-10-21 16:51 ` [PATCH] [14/19] i386: Disable nmi watchdog on all ThinkPads Andi Kleen
2006-10-21 17:24 ` Dave Jones
2006-10-21 18:11 ` [patches] " Andi Kleen
2006-10-21 18:14 ` Dave Jones
2006-10-21 18:22 ` Andi Kleen
2006-10-21 16:51 ` [PATCH] [16/19] x86: Revert new unwind kernel stack termination Andi Kleen
2006-10-21 16:51 ` [PATCH] [18/19] x86_64: Overlapping program headers in physical addr space fix Andi Kleen
2006-10-23 7:20 ` [patches] " Jan Beulich
2006-10-23 14:41 ` Vivek Goyal
2006-10-23 15:02 ` Ian Campbell
2006-10-23 16:08 ` Jan Beulich
2006-10-21 16:51 ` [PATCH] [19/19] x86_64: Revert timer routing behaviour back to 2.6.16 state Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061021165128.23A8913C4D@wotan.suse.de \
--to=ak@suse.de \
--cc=jbeulich@novell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@x86-64.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®