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