diff options
Diffstat (limited to 'recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch')
-rw-r--r-- | recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch | 358 |
1 files changed, 358 insertions, 0 deletions
diff --git a/recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch b/recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch new file mode 100644 index 0000000..39436a5 --- /dev/null +++ b/recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch @@ -0,0 +1,358 @@ +diff --git openjdk/corba/make/common/shared/Platform.gmk openjdk/corba/make/common/shared/Platform.gmk +index fb575fa..e0426ad 100644 +--- openjdk/corba/make/common/shared/Platform.gmk ++++ openjdk/corba/make/common/shared/Platform.gmk +@@ -152,9 +152,13 @@ ifeq ($(SYSTEM_UNAME), Linux) + OS_NAME = linux + OS_VERSION := $(shell uname -r) + # Arch and OS name/version +- mach := $(shell uname -m) +- ifneq (,$(wildcard /usr/bin/dpkg-architecture)) +- mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/') ++ ifdef CROSS_COMPILE_ARCH ++ mach := $(CROSS_COMPILE_ARCH) ++ else ++ mach := $(shell uname -m) ++ ifneq (,$(wildcard /usr/bin/dpkg-architecture)) ++ mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/') ++ endif + endif + archExpr = case "$(mach)" in \ + i[3-9]86) \ +diff --git openjdk/hotspot/make/linux/makefiles/build_vm_def.sh openjdk/hotspot/make/linux/makefiles/build_vm_def.sh +index ea81ff6..68b0d71 100644 +--- openjdk/hotspot/make/linux/makefiles/build_vm_def.sh ++++ openjdk/hotspot/make/linux/makefiles/build_vm_def.sh +@@ -1,10 +1,12 @@ + #!/bin/sh + + # If we're cross compiling use that path for nm +-if [ "$CROSS_COMPILE_ARCH" != "" ]; then +-NM=$ALT_COMPILER_PATH/nm +-else +-NM=nm ++if [ "$NM" == "" ]; then ++ if [ "$CROSS_COMPILE_ARCH" != "" ]; then ++ NM=$ALT_COMPILER_PATH/nm ++ else ++ NM=nm ++ fi + fi + + $NM --defined-only $* \ +diff --git openjdk/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make +index 6fe5191..765fc6d 100644 +--- openjdk/hotspot/make/linux/makefiles/gcc.make ++++ openjdk/hotspot/make/linux/makefiles/gcc.make +@@ -164,7 +164,7 @@ CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS) + CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) + + # The flags to use for an Optimized g++ build +-OPT_CFLAGS += -O3 ++OPT_CFLAGS += $(OE_CFLAGS) + + # Hotspot uses very unstrict aliasing turn this optimization off + OPT_CFLAGS += -fno-strict-aliasing +@@ -208,15 +208,7 @@ LFLAGS += -Wl,-relax + endif + + # Enable linker optimization +-LFLAGS += -Xlinker -O1 +- +-# If this is a --hash-style=gnu system, use --hash-style=both +-# The gnu .hash section won't work on some Linux systems like SuSE 10. +-_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | grep -- '--hash-style=gnu') +-ifneq ($(_HAS_HASH_STYLE_GNU),) +- LDFLAGS_HASH_STYLE = -Wl,--hash-style=both +-endif +-LFLAGS += $(LDFLAGS_HASH_STYLE) ++LFLAGS += $(OE_LDFLAGS) + + # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. + MAPFLAG = -Xlinker --version-script=FILENAME +diff --git openjdk/hotspot/make/linux/makefiles/launcher.make openjdk/hotspot/make/linux/makefiles/launcher.make +index 0c102ea..f4dfbf6 100644 +--- openjdk/hotspot/make/linux/makefiles/launcher.make ++++ openjdk/hotspot/make/linux/makefiles/launcher.make +@@ -50,8 +50,8 @@ ifeq ($(LINK_INTO),AOUT) + LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) + else + LAUNCHER.o = launcher.o +- LFLAGS_LAUNCHER += -L `pwd` +- LIBS_LAUNCHER += -l$(JVM) $(LIBS) ++ LFLAGS_LAUNCHER += -L `pwd` $(OE_LAUNCHER_LDFLAGS) $(OE_LDFLAGS) ++ LIBS_LAUNCHER += -l$(JVM) $(LIBS) -lstdc++ + endif + + LINK_LAUNCHER = $(LINK.CC) +diff --git openjdk/hotspot/make/linux/makefiles/vm.make openjdk/hotspot/make/linux/makefiles/vm.make +index b0ffd9a..4e8c47c 100644 +--- openjdk/hotspot/make/linux/makefiles/vm.make ++++ openjdk/hotspot/make/linux/makefiles/vm.make +@@ -292,6 +292,7 @@ ifeq ($(SHARK_BUILD), true) + LIBS_VM += $(LLVM_LIBS) + endif + ++LFLAGS_VM += $(OE_LDFLAGS) + LINK_VM = $(LINK_LIB.CC) + + # rule for building precompiled header +diff --git openjdk/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk +index 69e1177..dc7f8e6 100644 +--- openjdk/jdk/make/common/Defs-linux.gmk ++++ openjdk/jdk/make/common/Defs-linux.gmk +@@ -165,35 +165,13 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + endif + endif + +-# +-# Default optimization +-# +- +-ifndef OPTIMIZATION_LEVEL +- ifeq ($(PRODUCT), java) +- OPTIMIZATION_LEVEL = HIGHER +- else +- OPTIMIZATION_LEVEL = LOWER +- endif +-endif +-ifndef FASTDEBUG_OPTIMIZATION_LEVEL +- FASTDEBUG_OPTIMIZATION_LEVEL = LOWER +-endif +- +-CC_OPT/NONE = +-CC_OPT/LOWER = -O2 +-CC_OPT/HIGHER = -O3 +-CC_OPT/HIGHEST = -O3 +- +-CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL)) +- + # For all platforms, do not omit the frame pointer register usage. + # We need this frame pointer to make it easy to walk the stacks. + # This should be the default on X86, but ia64 and amd64 may not have this + # as the default. + CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN +-CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN ++CFLAGS_REQUIRED_arm += -fno-omit-frame-pointer -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_hppa += + CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN + CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN +@@ -283,7 +261,7 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + endif + endif + +-CFLAGS_OPT = $(CC_OPT) ++CFLAGS_OPT = $(OE_CFLAGS) + CFLAGS_DBG = $(DEBUG_FLAG) + CFLAGS_COMMON += $(CFLAGS_REQUIRED) + +@@ -359,7 +337,7 @@ LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) + # + # -L paths for finding and -ljava + # +-LDFLAGS_OPT = -Xlinker -O1 ++LDFLAGS_OPT = $(OE_LDFLAGS) + LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH) + LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX) + +diff --git openjdk/jdk/make/common/shared/Platform.gmk openjdk/jdk/make/common/shared/Platform.gmk +index c23e96e..484afca 100644 +--- openjdk/jdk/make/common/shared/Platform.gmk ++++ openjdk/jdk/make/common/shared/Platform.gmk +@@ -159,9 +159,9 @@ ifeq ($(SYSTEM_UNAME), Linux) + mach := $(CROSS_COMPILE_ARCH) + else + mach := $(shell uname -m) +- endif +- ifneq (,$(wildcard /usr/bin/dpkg-architecture)) +- mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/') ++ ifneq (,$(wildcard /usr/bin/dpkg-architecture)) ++ mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/') ++ endif + endif + archExpr = case "$(mach)" in \ + i[3-9]86) \ +diff --git openjdk/jdk/make/java/nio/Makefile openjdk/jdk/make/java/nio/Makefile +index cd336a2..1e5f8e5 100644 +--- openjdk/jdk/make/java/nio/Makefile ++++ openjdk/jdk/make/java/nio/Makefile +@@ -934,8 +934,12 @@ else + $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE) + $(prep-target) + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@ ++ifdef CROSS_COMPILE_ARCH ++ $(QEMU) $(GENSOR_EXE) >> $@ ++else + $(GENSOR_EXE) >> $@ + endif ++endif + # + # Generated sun.nio.cs SingleByte classes + # +@@ -969,8 +973,12 @@ else + $(SFS_GEN)/UnixConstants.java: $(GENUC_EXE) + $(prep-target) + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENUC_COPYRIGHT_YEARS)" > $@ ++ifdef CROSS_COMPILE_ARCH ++ $(QEMU) $(GENUC_EXE) >> $@ ++else + $(GENUC_EXE) >> $@ + endif ++endif + + GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c + +@@ -991,7 +999,11 @@ else + $(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE) + $(prep-target) + NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENSC_COPYRIGHT_YEARS)" > $@ ++ifdef CROSS_COMPILE_ARCH ++ $(QEMU) $(GENSC_EXE) >> $@ ++else + $(GENSC_EXE) >> $@ + endif ++endif + + .PHONY: sources +diff --git openjdk/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk +index b6e0d99..edc530e 100644 +--- openjdk/jdk/make/sun/awt/mawt.gmk ++++ openjdk/jdk/make/sun/awt/mawt.gmk +@@ -151,22 +151,6 @@ else + #endif + + LIBXTST = -lXtst +-ifeq ($(PLATFORM), linux) +- ifeq ($(ARCH_DATA_MODEL), 64) +- # XXX what about the rest of them? +- LIBXT = -lXt +- else +- # Allows for builds on Debian GNU Linux, X11 is in a different place +- LIBXT = $(firstword $(wildcard $(OPENWIN_LIB)/libXt.a) \ +- $(wildcard /usr/lib/libXt.a)) +- LIBSM = $(firstword $(wildcard $(OPENWIN_LIB)/libSM.a) \ +- $(wildcard /usr/lib/libSM.a)) +- LIBICE = $(firstword $(wildcard $(OPENWIN_LIB)/libICE.a) \ +- $(wildcard /usr/lib/libICE.a)) +- LIBXTST = $(firstword $(wildcard $(OPENWIN_LIB)/libXtst.a) \ +- $(wildcard /usr/lib/libXtst.a)) +- endif +-endif + + # Use -lXmu for EditRes support + LIBXMU_DBG = -lXmu +@@ -181,7 +165,7 @@ ifneq (,$(findstring $(PLATFORM), linux macosx)) + OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH + # XXX what is this define below? Isn't it motif-related? + OTHER_CFLAGS += -DXMSTRINGDEFINES=1 +-OTHER_LDLIBS = $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi ++OTHER_LDLIBS = $(LIBXMU) $(LIBXTST) -lXext -lXt -lSM -lICE -lXi -lX11 + endif + + endif +@@ -230,12 +214,6 @@ else + CPPFLAGS += -I$(PLATFORM_SRC)/native/common/deps/fontconfig2 + endif + +-ifndef HEADLESS +-CPPFLAGS += -I$(OPENWIN_HOME)/include +-LDFLAGS += -L$(OPENWIN_LIB) +- +-endif # !HEADLESS +- + CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \ + -I$(SHARE_SRC)/native/$(PKGDIR)/../font \ + -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \ +@@ -269,12 +247,6 @@ LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB) + endif # !HEADLESS + endif # PLATFORM + +-ifeq ($(PLATFORM), linux) +- # Checking for the X11/extensions headers at the additional location +- CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \ +- $(wildcard /usr/include/X11/extensions)) +-endif +- + ifeq ($(PLATFORM), macosx)) + CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \ + -I$(OPENWIN_HOME)/include +diff --git openjdk/jdk/make/sun/xawt/Makefile openjdk/jdk/make/sun/xawt/Makefile +index 53d31f3..183c063 100644 +--- openjdk/jdk/make/sun/xawt/Makefile ++++ openjdk/jdk/make/sun/xawt/Makefile +@@ -198,20 +198,6 @@ else + CPPFLAGS += -I$(PLATFORM_SRC)/native/common/deps/glib2 + endif + +-ifeq ($(PLATFORM), linux) +- ifndef CROSS_COMPILE_ARCH +- # Allows for builds on Debian GNU Linux, X11 is in a different place +- # This should really be handled at a higher-level so we don't have to +- # work-around this when cross-compiling +- CPPFLAGS += -I/usr/X11R6/include/X11/extensions \ +- -I/usr/include/X11/extensions \ +- -I$(OPENWIN_HOME)/include +- else +- CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \ +- -I$(OPENWIN_HOME)/include +- endif +-endif +- + # We have some odd logic here because some Solaris 10 updates + # have a render.h file that suggests gradients are supported, but + # the Xrender.h doesn't have the corresponding type definitions. +@@ -292,16 +278,10 @@ ifeq ($(ARCH_DATA_MODEL), 32) + SIZERS = $(SIZER).32 + SIZERS_C = $(SIZER_32_C) + SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 +-ifdef CROSS_COMPILE_ARCH +-CFLAGS_32 = -m32 +-endif + else # !32 + SIZERS = $(SIZER).64 + SIZERS_C = $(SIZER_64_C) + SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64 +-ifdef CROSS_COMPILE_ARCH +-CFLAGS_64 = -m64 +-endif + endif # 32 + endif # !macosx + endif # solaris +@@ -337,11 +317,7 @@ WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator + WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class + XLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt + +-ifndef CROSS_COMPILE_ARCH + SIZERS_CC = $(CC) +-else +-SIZERS_CC = $(HOST_CC) +-endif + + $(SIZERS): $(SIZERS_C) + $(prep-target) +@@ -358,6 +334,16 @@ $(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES) + $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@))) + + $(SIZES): $(SIZERS) ++ifdef CROSS_COMPILE_ARCH ++ @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \ ++ $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \ ++ $(CP) $(PREDEFINED_SIZES_TMPL) $@; \ ++ $(CHMOD) +w $@;\ ++ else \ ++ $(ECHO) GENERATING $@; \ ++ $(QEMU) $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \ ++ fi ++else + @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \ + $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \ + $(CP) $(PREDEFINED_SIZES_TMPL) $@; \ +@@ -366,6 +352,7 @@ $(SIZES): $(SIZERS) + $(ECHO) GENERATING $@; \ + $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \ + fi ++endif + @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \ + $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \ + $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \ |