From a4e3a2894bcbe34281119706992616f8fe3b1b15 Mon Sep 17 00:00:00 2001 From: malc Date: Thu, 2 Apr 2009 01:16:39 +0000 Subject: [PATCH] Temporary workaround for ppc on ppc 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. (cherry picked from commit d19076faca944c31bb051b95d285e75ec67902f7) Signed-off-by: Mark McLoughlin --- Makefile.target | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile.target b/Makefile.target index e2e23bf2be..7e18719420 100644 --- 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) -- 2.11.4.GIT