This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]