[U-Boot] [RFC] x86: Do no use reparm as it break libgcc linkage
Graeme Russ
graeme.russ at gmail.com
Wed Nov 9 11:32:59 CET 2011
Hi Gabe,
Can you please try this patch - If it solves your libgcc problem, I will
add it to the misc cleanup patch
Thanks,
Graeme
---
arch/x86/config.mk | 3 ---
arch/x86/cpu/interrupts.c | 2 +-
arch/x86/cpu/start.S | 5 ++---
3 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/arch/x86/config.mk b/arch/x86/config.mk
index fe9083f..ec5f707 100644
--- a/arch/x86/config.mk
+++ b/arch/x86/config.mk
@@ -23,10 +23,7 @@
CONFIG_STANDALONE_LOAD_ADDR ?= 0x40000
-PLATFORM_CPPFLAGS += -fno-strict-aliasing
PLATFORM_CPPFLAGS += -Wstrict-prototypes
-PLATFORM_CPPFLAGS += -mregparm=3
-PLATFORM_CPPFLAGS += -fomit-frame-pointer
PF_CPPFLAGS_X86 := $(call cc-option, -ffreestanding) \
$(call cc-option, -fno-toplevel-reorder, \
$(call cc-option, -fno-unit-at-a-time)) \
diff --git a/arch/x86/cpu/interrupts.c b/arch/x86/cpu/interrupts.c
index e0958eb..a15d70a 100644
--- a/arch/x86/cpu/interrupts.c
+++ b/arch/x86/cpu/interrupts.c
@@ -249,7 +249,7 @@ int disable_interrupts(void)
}
/* IRQ Low-Level Service Routine */
-void irq_llsr(struct irq_regs *regs)
+void __attribute__ ((regparm(1))) irq_llsr(struct irq_regs *regs)
{
/*
* For detailed description of each exception, refer to:
diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
index f87633b..119ca2d 100644
--- a/arch/x86/cpu/start.S
+++ b/arch/x86/cpu/start.S
@@ -84,9 +84,8 @@ car_init_ret:
*/
movl $CONFIG_SYS_INIT_SP_ADDR, %esp
- /* Set parameter to board_init_f() to boot flags */
- xorl %eax, %eax
- movw %bx, %ax
+ /* Set parameter to board_init_f() - Unused dummy value */
+ pushl $0
/* Enter, U-boot! */
call board_init_f
--
1.7.5.2.317.g391b14
More information about the U-Boot
mailing list