summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-7-25b30/icedtea-crosscompile-fix.patch
diff options
context:
space:
mode:
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.patch358
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 @@
1diff --git openjdk/corba/make/common/shared/Platform.gmk openjdk/corba/make/common/shared/Platform.gmk
2index fb575fa..e0426ad 100644
3--- openjdk/corba/make/common/shared/Platform.gmk
4+++ openjdk/corba/make/common/shared/Platform.gmk
5@@ -152,9 +152,13 @@ ifeq ($(SYSTEM_UNAME), Linux)
6 OS_NAME = linux
7 OS_VERSION := $(shell uname -r)
8 # Arch and OS name/version
9- mach := $(shell uname -m)
10- ifneq (,$(wildcard /usr/bin/dpkg-architecture))
11- mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
12+ ifdef CROSS_COMPILE_ARCH
13+ mach := $(CROSS_COMPILE_ARCH)
14+ else
15+ mach := $(shell uname -m)
16+ ifneq (,$(wildcard /usr/bin/dpkg-architecture))
17+ mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
18+ endif
19 endif
20 archExpr = case "$(mach)" in \
21 i[3-9]86) \
22diff --git openjdk/hotspot/make/linux/makefiles/build_vm_def.sh openjdk/hotspot/make/linux/makefiles/build_vm_def.sh
23index ea81ff6..68b0d71 100644
24--- openjdk/hotspot/make/linux/makefiles/build_vm_def.sh
25+++ openjdk/hotspot/make/linux/makefiles/build_vm_def.sh
26@@ -1,10 +1,12 @@
27 #!/bin/sh
28
29 # If we're cross compiling use that path for nm
30-if [ "$CROSS_COMPILE_ARCH" != "" ]; then
31-NM=$ALT_COMPILER_PATH/nm
32-else
33-NM=nm
34+if [ "$NM" == "" ]; then
35+ if [ "$CROSS_COMPILE_ARCH" != "" ]; then
36+ NM=$ALT_COMPILER_PATH/nm
37+ else
38+ NM=nm
39+ fi
40 fi
41
42 $NM --defined-only $* \
43diff --git openjdk/hotspot/make/linux/makefiles/gcc.make openjdk/hotspot/make/linux/makefiles/gcc.make
44index 6fe5191..765fc6d 100644
45--- openjdk/hotspot/make/linux/makefiles/gcc.make
46+++ openjdk/hotspot/make/linux/makefiles/gcc.make
47@@ -164,7 +164,7 @@ CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS)
48 CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@))
49
50 # The flags to use for an Optimized g++ build
51-OPT_CFLAGS += -O3
52+OPT_CFLAGS += $(OE_CFLAGS)
53
54 # Hotspot uses very unstrict aliasing turn this optimization off
55 OPT_CFLAGS += -fno-strict-aliasing
56@@ -208,15 +208,7 @@ LFLAGS += -Wl,-relax
57 endif
58
59 # Enable linker optimization
60-LFLAGS += -Xlinker -O1
61-
62-# If this is a --hash-style=gnu system, use --hash-style=both
63-# The gnu .hash section won't work on some Linux systems like SuSE 10.
64-_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | grep -- '--hash-style=gnu')
65-ifneq ($(_HAS_HASH_STYLE_GNU),)
66- LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
67-endif
68-LFLAGS += $(LDFLAGS_HASH_STYLE)
69+LFLAGS += $(OE_LDFLAGS)
70
71 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file.
72 MAPFLAG = -Xlinker --version-script=FILENAME
73diff --git openjdk/hotspot/make/linux/makefiles/launcher.make openjdk/hotspot/make/linux/makefiles/launcher.make
74index 0c102ea..f4dfbf6 100644
75--- openjdk/hotspot/make/linux/makefiles/launcher.make
76+++ openjdk/hotspot/make/linux/makefiles/launcher.make
77@@ -50,8 +50,8 @@ ifeq ($(LINK_INTO),AOUT)
78 LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS)
79 else
80 LAUNCHER.o = launcher.o
81- LFLAGS_LAUNCHER += -L `pwd`
82- LIBS_LAUNCHER += -l$(JVM) $(LIBS)
83+ LFLAGS_LAUNCHER += -L `pwd` $(OE_LAUNCHER_LDFLAGS) $(OE_LDFLAGS)
84+ LIBS_LAUNCHER += -l$(JVM) $(LIBS) -lstdc++
85 endif
86
87 LINK_LAUNCHER = $(LINK.CC)
88diff --git openjdk/hotspot/make/linux/makefiles/vm.make openjdk/hotspot/make/linux/makefiles/vm.make
89index b0ffd9a..4e8c47c 100644
90--- openjdk/hotspot/make/linux/makefiles/vm.make
91+++ openjdk/hotspot/make/linux/makefiles/vm.make
92@@ -292,6 +292,7 @@ ifeq ($(SHARK_BUILD), true)
93 LIBS_VM += $(LLVM_LIBS)
94 endif
95
96+LFLAGS_VM += $(OE_LDFLAGS)
97 LINK_VM = $(LINK_LIB.CC)
98
99 # rule for building precompiled header
100diff --git openjdk/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk
101index 69e1177..dc7f8e6 100644
102--- openjdk/jdk/make/common/Defs-linux.gmk
103+++ openjdk/jdk/make/common/Defs-linux.gmk
104@@ -165,35 +165,13 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
105 endif
106 endif
107
108-#
109-# Default optimization
110-#
111-
112-ifndef OPTIMIZATION_LEVEL
113- ifeq ($(PRODUCT), java)
114- OPTIMIZATION_LEVEL = HIGHER
115- else
116- OPTIMIZATION_LEVEL = LOWER
117- endif
118-endif
119-ifndef FASTDEBUG_OPTIMIZATION_LEVEL
120- FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
121-endif
122-
123-CC_OPT/NONE =
124-CC_OPT/LOWER = -O2
125-CC_OPT/HIGHER = -O3
126-CC_OPT/HIGHEST = -O3
127-
128-CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
129-
130 # For all platforms, do not omit the frame pointer register usage.
131 # We need this frame pointer to make it easy to walk the stacks.
132 # This should be the default on X86, but ia64 and amd64 may not have this
133 # as the default.
134 CFLAGS_REQUIRED_alpha += -mieee -D_LITTLE_ENDIAN
135 CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
136-CFLAGS_REQUIRED_arm += -D_LITTLE_ENDIAN
137+CFLAGS_REQUIRED_arm += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
138 CFLAGS_REQUIRED_hppa +=
139 CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
140 CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
141@@ -283,7 +261,7 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
142 endif
143 endif
144
145-CFLAGS_OPT = $(CC_OPT)
146+CFLAGS_OPT = $(OE_CFLAGS)
147 CFLAGS_DBG = $(DEBUG_FLAG)
148 CFLAGS_COMMON += $(CFLAGS_REQUIRED)
149
150@@ -359,7 +337,7 @@ LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
151 #
152 # -L paths for finding and -ljava
153 #
154-LDFLAGS_OPT = -Xlinker -O1
155+LDFLAGS_OPT = $(OE_LDFLAGS)
156 LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
157 LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
158
159diff --git openjdk/jdk/make/common/shared/Platform.gmk openjdk/jdk/make/common/shared/Platform.gmk
160index c23e96e..484afca 100644
161--- openjdk/jdk/make/common/shared/Platform.gmk
162+++ openjdk/jdk/make/common/shared/Platform.gmk
163@@ -159,9 +159,9 @@ ifeq ($(SYSTEM_UNAME), Linux)
164 mach := $(CROSS_COMPILE_ARCH)
165 else
166 mach := $(shell uname -m)
167- endif
168- ifneq (,$(wildcard /usr/bin/dpkg-architecture))
169- mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
170+ ifneq (,$(wildcard /usr/bin/dpkg-architecture))
171+ mach := $(shell (dpkg-architecture -qDEB_BUILD_ARCH_CPU 2>/dev/null || echo $(mach)) | sed 's/powerpc$$/ppc/;s/hppa/parisc/')
172+ endif
173 endif
174 archExpr = case "$(mach)" in \
175 i[3-9]86) \
176diff --git openjdk/jdk/make/java/nio/Makefile openjdk/jdk/make/java/nio/Makefile
177index cd336a2..1e5f8e5 100644
178--- openjdk/jdk/make/java/nio/Makefile
179+++ openjdk/jdk/make/java/nio/Makefile
180@@ -934,8 +934,12 @@ else
181 $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE)
182 $(prep-target)
183 NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@
184+ifdef CROSS_COMPILE_ARCH
185+ $(QEMU) $(GENSOR_EXE) >> $@
186+else
187 $(GENSOR_EXE) >> $@
188 endif
189+endif
190 #
191 # Generated sun.nio.cs SingleByte classes
192 #
193@@ -969,8 +973,12 @@ else
194 $(SFS_GEN)/UnixConstants.java: $(GENUC_EXE)
195 $(prep-target)
196 NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENUC_COPYRIGHT_YEARS)" > $@
197+ifdef CROSS_COMPILE_ARCH
198+ $(QEMU) $(GENUC_EXE) >> $@
199+else
200 $(GENUC_EXE) >> $@
201 endif
202+endif
203
204 GENSC_SRC = $(PLATFORM_SRC)/native/sun/nio/fs/genSolarisConstants.c
205
206@@ -991,7 +999,11 @@ else
207 $(SFS_GEN)/SolarisConstants.java: $(GENSC_EXE)
208 $(prep-target)
209 NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh "$(GENSC_COPYRIGHT_YEARS)" > $@
210+ifdef CROSS_COMPILE_ARCH
211+ $(QEMU) $(GENSC_EXE) >> $@
212+else
213 $(GENSC_EXE) >> $@
214 endif
215+endif
216
217 .PHONY: sources
218diff --git openjdk/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk
219index b6e0d99..edc530e 100644
220--- openjdk/jdk/make/sun/awt/mawt.gmk
221+++ openjdk/jdk/make/sun/awt/mawt.gmk
222@@ -151,22 +151,6 @@ else
223 #endif
224
225 LIBXTST = -lXtst
226-ifeq ($(PLATFORM), linux)
227- ifeq ($(ARCH_DATA_MODEL), 64)
228- # XXX what about the rest of them?
229- LIBXT = -lXt
230- else
231- # Allows for builds on Debian GNU Linux, X11 is in a different place
232- LIBXT = $(firstword $(wildcard $(OPENWIN_LIB)/libXt.a) \
233- $(wildcard /usr/lib/libXt.a))
234- LIBSM = $(firstword $(wildcard $(OPENWIN_LIB)/libSM.a) \
235- $(wildcard /usr/lib/libSM.a))
236- LIBICE = $(firstword $(wildcard $(OPENWIN_LIB)/libICE.a) \
237- $(wildcard /usr/lib/libICE.a))
238- LIBXTST = $(firstword $(wildcard $(OPENWIN_LIB)/libXtst.a) \
239- $(wildcard /usr/lib/libXtst.a))
240- endif
241-endif
242
243 # Use -lXmu for EditRes support
244 LIBXMU_DBG = -lXmu
245@@ -181,7 +165,7 @@ ifneq (,$(findstring $(PLATFORM), linux macosx))
246 OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
247 # XXX what is this define below? Isn't it motif-related?
248 OTHER_CFLAGS += -DXMSTRINGDEFINES=1
249-OTHER_LDLIBS = $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi
250+OTHER_LDLIBS = $(LIBXMU) $(LIBXTST) -lXext -lXt -lSM -lICE -lXi -lX11
251 endif
252
253 endif
254@@ -230,12 +214,6 @@ else
255 CPPFLAGS += -I$(PLATFORM_SRC)/native/common/deps/fontconfig2
256 endif
257
258-ifndef HEADLESS
259-CPPFLAGS += -I$(OPENWIN_HOME)/include
260-LDFLAGS += -L$(OPENWIN_LIB)
261-
262-endif # !HEADLESS
263-
264 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
265 -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
266 -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
267@@ -269,12 +247,6 @@ LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
268 endif # !HEADLESS
269 endif # PLATFORM
270
271-ifeq ($(PLATFORM), linux)
272- # Checking for the X11/extensions headers at the additional location
273- CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
274- $(wildcard /usr/include/X11/extensions))
275-endif
276-
277 ifeq ($(PLATFORM), macosx))
278 CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
279 -I$(OPENWIN_HOME)/include
280diff --git openjdk/jdk/make/sun/xawt/Makefile openjdk/jdk/make/sun/xawt/Makefile
281index 53d31f3..183c063 100644
282--- openjdk/jdk/make/sun/xawt/Makefile
283+++ openjdk/jdk/make/sun/xawt/Makefile
284@@ -198,20 +198,6 @@ else
285 CPPFLAGS += -I$(PLATFORM_SRC)/native/common/deps/glib2
286 endif
287
288-ifeq ($(PLATFORM), linux)
289- ifndef CROSS_COMPILE_ARCH
290- # Allows for builds on Debian GNU Linux, X11 is in a different place
291- # This should really be handled at a higher-level so we don't have to
292- # work-around this when cross-compiling
293- CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
294- -I/usr/include/X11/extensions \
295- -I$(OPENWIN_HOME)/include
296- else
297- CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
298- -I$(OPENWIN_HOME)/include
299- endif
300-endif
301-
302 # We have some odd logic here because some Solaris 10 updates
303 # have a render.h file that suggests gradients are supported, but
304 # the Xrender.h doesn't have the corresponding type definitions.
305@@ -292,16 +278,10 @@ ifeq ($(ARCH_DATA_MODEL), 32)
306 SIZERS = $(SIZER).32
307 SIZERS_C = $(SIZER_32_C)
308 SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
309-ifdef CROSS_COMPILE_ARCH
310-CFLAGS_32 = -m32
311-endif
312 else # !32
313 SIZERS = $(SIZER).64
314 SIZERS_C = $(SIZER_64_C)
315 SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
316-ifdef CROSS_COMPILE_ARCH
317-CFLAGS_64 = -m64
318-endif
319 endif # 32
320 endif # !macosx
321 endif # solaris
322@@ -337,11 +317,7 @@ WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
323 WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
324 XLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
325
326-ifndef CROSS_COMPILE_ARCH
327 SIZERS_CC = $(CC)
328-else
329-SIZERS_CC = $(HOST_CC)
330-endif
331
332 $(SIZERS): $(SIZERS_C)
333 $(prep-target)
334@@ -358,6 +334,16 @@ $(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
335 $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
336
337 $(SIZES): $(SIZERS)
338+ifdef CROSS_COMPILE_ARCH
339+ @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
340+ $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
341+ $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
342+ $(CHMOD) +w $@;\
343+ else \
344+ $(ECHO) GENERATING $@; \
345+ $(QEMU) $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
346+ fi
347+else
348 @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
349 $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
350 $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
351@@ -366,6 +352,7 @@ $(SIZES): $(SIZERS)
352 $(ECHO) GENERATING $@; \
353 $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
354 fi
355+endif
356 @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
357 $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
358 $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \