summaryrefslogtreecommitdiffstats
path: root/patches/gcc-4.5.2/0015-Fix-libjava-cross-build-issue.patch
blob: 194aea460af782c6195918bd7a1019c2919ea34a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Fri, 11 Feb 2011 23:29:14 +0100
Subject: [PATCH] Fix: libjava cross build issue

Taken from upstream r163580:

Fix building ecjx in cross compile mode.

libjava/:
	PR libgcj/40868
	* configure.ac: Add GCC_FOR_ECJX variable.  Ensure
	GCJ_FOR_ECJX is always set.
	* Makefile.am [!NATIVE] (ecjx.$(OBJEXT)): New rule.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

This is a fix for:
Bug 40868 - ecjx.cc should be compiled by host gcc

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
 libjava/Makefile.am           |    2 ++
 libjava/Makefile.in           |    3 +++
 libjava/configure             |   12 ++++++++----
 libjava/configure.ac          |    5 ++++-
 libjava/gcj/Makefile.in       |    1 +
 libjava/include/Makefile.in   |    1 +
 libjava/testsuite/Makefile.in |    1 +
 7 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 55ff0d1..85f020f 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -1127,6 +1127,8 @@ ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS)
 ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
 ecjx_LDADD = 
 ecjx_DEPENDENCIES = 
+ecjx.$(OBJEXT): ecjx.cc
+	$(GCC_FOR_ECJX) -c $<
 
 endif !NATIVE
 
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index adfcdf5..f4ad73e 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -672,6 +672,7 @@ EGREP = @EGREP@
 EXCEPTIONSPEC = @EXCEPTIONSPEC@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GCC_FOR_ECJX = @GCC_FOR_ECJX@
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 GCDEPS = @GCDEPS@
 GCINCS = @GCINCS@
@@ -12887,6 +12888,8 @@ write-entries-to-file-check:
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@	| sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3)  /*\4 */|p' \
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@	>> tmp-0212; \
 @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@	mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h
+@NATIVE_FALSE@ecjx.$(OBJEXT): ecjx.cc
+@NATIVE_FALSE@	$(GCC_FOR_ECJX) -c $<
 
 src.zip:
 	-rm -f src.zip
diff --git a/libjava/configure b/libjava/configure
index 5454110..7b64bab 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -769,6 +769,7 @@ LIBLTDL
 INCLTDL
 host_exeext
 GCJH
+GCC_FOR_ECJX
 GCJ_FOR_ECJX
 X_AWT_FALSE
 X_AWT_TRUE
@@ -6693,7 +6694,8 @@ NATIVE=yes
 # Which gcj and host gcj (for ecjx) do we use?
 which_gcj=default
 host_exeext=${ac_exeext}
-GCJ_FOR_ECJX=
+GCJ_FOR_ECJX='$(GCJ)'
+GCC_FOR_ECJX='$(CXX)'
 built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
 if test -n "${with_cross_host}"; then
   # We are being configured with a cross compiler. We can't
@@ -6701,6 +6703,7 @@ if test -n "${with_cross_host}"; then
   NATIVE=no
   cross_host_exeext=
   GCJ_FOR_ECJX="${with_cross_host}-gcj"
+  GCC_FOR_ECJX="${with_cross_host}-gcc"
   case "${with_cross_host}" in
      *mingw* | *cygwin*)
          cross_host_exeext=.exe
@@ -6769,6 +6772,7 @@ export JAVAC
 
 
 
+
 # Create it, so that compile/link tests don't fail
 test -f libgcj.spec || touch libgcj.spec
 
@@ -13339,7 +13343,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13342 "configure"
+#line 13356 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13445,7 +13449,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13448 "configure"
+#line 13462 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -19424,7 +19428,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then :
   enableval=$enable_sjlj_exceptions; :
 else
   cat > conftest.$ac_ext << EOF
-#line 19427 "configure"
+#line 19441 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
diff --git a/libjava/configure.ac b/libjava/configure.ac
index 9b551db..eaedc56 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -394,7 +394,8 @@ NATIVE=yes
 # Which gcj and host gcj (for ecjx) do we use?
 which_gcj=default
 host_exeext=${ac_exeext}
-GCJ_FOR_ECJX=
+GCJ_FOR_ECJX='$(GCJ)'
+GCC_FOR_ECJX='$(CXX)'
 built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
 if test -n "${with_cross_host}"; then
   # We are being configured with a cross compiler. We can't
@@ -402,6 +403,7 @@ if test -n "${with_cross_host}"; then
   NATIVE=no
   cross_host_exeext=
   GCJ_FOR_ECJX="${with_cross_host}-gcj"
+  GCC_FOR_ECJX="${with_cross_host}-gcc"
   case "${with_cross_host}" in
      *mingw* | *cygwin*)
          cross_host_exeext=.exe
@@ -467,6 +469,7 @@ JAVAC="$GCJ -C"
 export JAVAC
 
 AC_SUBST(GCJ_FOR_ECJX)
+AC_SUBST(GCC_FOR_ECJX)
 AC_SUBST(GCJH)
 AC_SUBST(host_exeext)
 
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index dd17e55..e7e912a 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -136,6 +136,7 @@ EGREP = @EGREP@
 EXCEPTIONSPEC = @EXCEPTIONSPEC@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GCC_FOR_ECJX = @GCC_FOR_ECJX@
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 GCDEPS = @GCDEPS@
 GCINCS = @GCINCS@
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index 2e04d8d..1c6f71a 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -136,6 +136,7 @@ EGREP = @EGREP@
 EXCEPTIONSPEC = @EXCEPTIONSPEC@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GCC_FOR_ECJX = @GCC_FOR_ECJX@
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 GCDEPS = @GCDEPS@
 GCINCS = @GCINCS@
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index a582efd..f81f531 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -111,6 +111,7 @@ EGREP = @EGREP@
 EXCEPTIONSPEC = @EXCEPTIONSPEC@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
+GCC_FOR_ECJX = @GCC_FOR_ECJX@
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 GCDEPS = @GCDEPS@
 GCINCS = @GCINCS@
-- 
1.7.2.3