This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Re: [patch] fix pr16923 for darwin
Tom Tromey wrote:
"Andreas" == Andreas Tobler <toa@pop.agri.ch> writes:
Andreas> this one fixes the PR16923 for darwin. The linker is a
Andreas> chatterbox and we get some unresolved.
Andreas> ok for main?
This looks basically fine...
I see we have 3 ways of doing this:
if { [string match "powerpc-*-darwin*" $target_triplet] } {
if { [istarget "*-*-darwin*"] } {
Andreas> + if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
How about we just pick one and use it everywhere?
Or maybe even add a helper proc of some kind to set this up?
Does this look better ?
Tested on main.
Andreas
2005-03-09 Andreas Tobler <a.tobler@schweiz.ch>
* testsuite/lib/libjava.exp (libjava_init): Use the same target
check for Darwin.
(libjava_arguments): Likewise.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Likewise.
(gcj_jni_test_one): Likewise.
(gcj_jni_invocation_compile_c_to_binary): Likewise.
Add flags to keep the Darwin linker quiet.
(gcj_jni_invocation_test_one): Use the same target check for Darwin.
Add -liconv for Darwin.
Index: testsuite/lib/libjava.exp
===================================================================
RCS file: /cvs/gcc/gcc/libjava/testsuite/lib/libjava.exp,v
retrieving revision 1.66
diff -u -r1.66 libjava.exp
--- testsuite/lib/libjava.exp 31 Dec 2004 12:34:15 -0000 1.66
+++ testsuite/lib/libjava.exp 9 Mar 2005 16:16:36 -0000
@@ -197,8 +197,8 @@
# Finally, add the gcc build directory so that we can find the
# shared libgcc. This, like much of dejagnu, is hideous.
set libjava_libgcc_s_path {}
-
- if { [string match "powerpc-*-darwin*" $target_triplet] } {
+
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
} else {
set so_extension "so"
Index: testsuite/libjava.jni/jni.exp
===================================================================
RCS file: /cvs/gcc/gcc/libjava/testsuite/libjava.jni/jni.exp,v
retrieving revision 1.19
diff -u -r1.19 jni.exp
--- testsuite/libjava.jni/jni.exp 3 Mar 2005 22:17:26 -0000 1.19
+++ testsuite/libjava.jni/jni.exp 9 Mar 2005 16:16:36 -0000
@@ -14,7 +14,7 @@
# so we check against powerpc-apple-darwin and set them to
# dylib, else we assume it's .so
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
set so_flag "-dynamiclib"
} else {
@@ -77,10 +77,10 @@
global INTERPRETER
# apple uses a different extension for shared/dynamic libraries
-# so we check against powerpc-apple-darwin and set them to
+# so we check against powerpc-apple-darwin and set them to
# dylib, else we assume it's .so
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
set so_extension "dylib"
} else {
set so_extension "so"
@@ -134,12 +134,12 @@
# Darwin does not yet have a libgcc_s.dylib library.
# So we add it here. If the libgcc_s is installed, the libstdc++
# would pick it up.
- if { [ regexp {powerpc-apple-darwin} $host_triplet] } {
+ if { [istarget "*-*-darwin*"] } {
lappend cxxflaglist "-lgcc_s -lstdc++"
} else {
lappend cxxflaglist "-lstdc++"
}
-
+
set cxxflags [join $cxxflaglist]
}
@@ -194,6 +194,10 @@
set filename [file tail $file]
set name [file rootname $filename]
+ # Set some darwin specific options
+ if { [istarget "*-*-darwin*"] } {
+ lappend options "additional_flags=-multiply_defined suppress"
+ }
# Find the generated header.
lappend options "additional_flags=-I. -I.."
@@ -238,7 +242,12 @@
pass "bytecompile $file"
set cfile [file rootname $file].c
- set cxxflags "-L../.libs -lgcj"
+ # Darwin needs -liconv linked, otherwise we get some unresolved.
+ if { [istarget "*-*-darwin*"] } {
+ set cxxflags "-L../.libs -lgcj -liconv"
+ } else {
+ set cxxflags "-L../.libs -lgcj"
+ }
if {! [gcj_jni_invocation_compile_c_to_binary $cfile $cxxflags]} {
# FIXME