2009-06-24 16:43:44 +00:00
|
|
|
From 739f7adcf6eeb8486e60fabc7816fff75fac63f9 Mon Sep 17 00:00:00 2001
|
2009-06-17 12:02:48 +00:00
|
|
|
From: malc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
|
|
|
|
Date: Thu, 2 Apr 2009 01:16:39 +0000
|
2009-06-24 16:43:44 +00:00
|
|
|
Subject: [PATCH 18/18] Temporary workaround for ppc on ppc
|
2009-06-17 12:02:48 +00:00
|
|
|
|
|
|
|
target-ppc/translate.c puts values of type opcode_t into .opcodes
|
|
|
|
section, using GCC extension to do so, and hoping that this will make
|
|
|
|
them appear contiguously and in the source order in the resulting
|
|
|
|
executable. This assumption is not safe and is known to be violated
|
|
|
|
with certain versions of GCC, certain flags passed to it and on
|
|
|
|
certain platforms (gcc 4.3.0, -O and PPC/PPC64 for instance)
|
|
|
|
|
|
|
|
The workaround consists of adding -fno-unit-at-a-time to the list of
|
|
|
|
GCC command line options while building PPC translate.o on a PPC.
|
|
|
|
|
2009-06-24 16:43:44 +00:00
|
|
|
(cherry picked from commit d19076faca944c31bb051b95d285e75ec67902f7)
|
|
|
|
|
|
|
|
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
|
2009-06-17 12:02:48 +00:00
|
|
|
---
|
|
|
|
Makefile.target | 4 ++++
|
|
|
|
1 files changed, 4 insertions(+), 0 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/Makefile.target b/Makefile.target
|
2009-06-24 16:43:44 +00:00
|
|
|
index e2e23bf..7e18719 100644
|
2009-06-17 12:02:48 +00:00
|
|
|
--- a/Makefile.target
|
|
|
|
+++ b/Makefile.target
|
|
|
|
@@ -91,6 +91,10 @@ ifeq ($(ARCH),i386)
|
|
|
|
HELPER_CFLAGS+=-fomit-frame-pointer
|
|
|
|
endif
|
|
|
|
|
|
|
|
+ifeq ($(subst ppc64,ppc,$(ARCH))$(TARGET_BASE_ARCH),ppcppc)
|
|
|
|
+translate.o: CFLAGS := $(CFLAGS) $(call cc-option, $(CFLAGS), -fno-unit-at-a-time,)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
ifeq ($(ARCH),sparc)
|
|
|
|
CFLAGS+=-ffixed-g2 -ffixed-g3
|
|
|
|
ifneq ($(CONFIG_SOLARIS),yes)
|
|
|
|
--
|
2009-06-24 16:43:44 +00:00
|
|
|
1.6.2.2
|
2009-06-17 12:02:48 +00:00
|
|
|
|