File gcc-4.6.0-libjava.patch of Package mingw32-cross-gcc

--- libjava/configure	2011-06-27 12:13:01.000000000 +0200
+++ libjava/configure	2011-07-05 10:26:37.050476055 +0200
@@ -20542,6 +20542,9 @@
     LIBSTDCXXSPEC=-lstdc++
     LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
     ;;
+*-*-mingw*)
+    extra_ldflags_libjava=-lws2_32
+    ;;
 *-*-cygwin)
     extra_ldflags_libjava=-liconv
     ;;
--- libjava/configure.ac	2011-06-19 20:07:52.000000000 +0200
+++ libjava/configure.ac	2011-07-05 10:26:37.056476693 +0200
@@ -932,6 +932,9 @@
     LIBSTDCXXSPEC=-lstdc++
     LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
     ;;
+*-*-mingw*)
+    extra_ldflags_libjava=-lws2_32
+    ;;
 *-*-cygwin)
     extra_ldflags_libjava=-liconv
     ;;
--- libjava/gcj/javaprims.h	2009-01-27 11:09:23.000000000 +0100
+++ libjava/gcj/javaprims.h	2011-07-05 10:26:37.099481262 +0200
@@ -26,6 +26,18 @@
 #undef FALSE
 #define FALSE FALSE
 
+// JNI calling convention.  Also defined in jni.h.
+// This is needed here because some classes have JNI friends. 
+
+#ifndef JNICALL
+ #if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) && !defined (_WIN64)
+  #define JNICALL __stdcall
+ #else
+  #define JNICALL
+ #endif
+#endif
+
+
 // To force selection of correct types that will mangle consistently
 // across platforms.
 extern "Java"
--- libjava/include/jni_md.h	2011-01-03 21:52:22.000000000 +0100
+++ libjava/include/jni_md.h	2011-07-05 10:26:37.106482004 +0200
@@ -65,6 +65,15 @@
      reused between non-nesting JNI calls.  */				\
   struct _Jv_JNI_LocalFrame *bottom_locals;
 
+/*  JNI calling convention.  Also defined in javaprims.h. */
+#ifndef JNICALL
+ #if (defined (_WIN32) || defined (__WIN32__) || defined (WIN32)) && !defined (_WIN64)
+  #define JNICALL __stdcall
+ #else
+  #define JNICALL
+ #endif
+#endif
+
 
 #else /* __GCJ_JNI_IMPL__ */
 
@@ -117,12 +126,11 @@
 
 
 /* Linkage and calling conventions. */
-#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32)
+#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32) || defined (_WIN64)
 
 #define JNIIMPORT        __declspec(dllimport)
 #define JNIEXPORT        __declspec(dllexport)
 
-#define JNICALL          __stdcall
 
 #else /* !( _WIN32 || __WIN32__ || WIN32) */
 
@@ -133,7 +141,6 @@
 #define JNIEXPORT
 #endif
 
-#define JNICALL
 
 #endif /* !( _WIN32 || __WIN32__ || WIN32) */
 
--- libjava/java/lang/Class.h	2007-07-31 18:17:21.000000000 +0200
+++ libjava/java/lang/Class.h	2011-07-05 10:26:37.080479242 +0200
@@ -251,9 +251,9 @@
 			    const _Jv_Utf8Const*,
 			    const _Jv_Utf8Const*);
 
-jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
+jobject JNICALL _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
 				  jboolean);
-jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
+jobject JNICALL _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
 				   jboolean);
 jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
 
--- libjava/java/lang/reflect/Constructor.h	2007-01-09 20:58:05.000000000 +0100
+++ libjava/java/lang/reflect/Constructor.h	2011-07-05 10:26:37.081479348 +0200
@@ -11,7 +11,7 @@
 
 
 jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
-jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+jobject JNICALL _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
 
 class java::lang::reflect::Constructor : public ::java::lang::reflect::AccessibleObject
 {
@@ -58,7 +58,7 @@
   static ::java::lang::Class class$;
 
   friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);
-  friend jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
+  friend jobject JNICALL (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
   friend class java::lang::Class;
 };
 
--- libjava/java/lang/reflect/Field.h	2007-07-13 16:07:16.000000000 +0200
+++ libjava/java/lang/reflect/Field.h	2011-07-05 10:26:37.081479348 +0200
@@ -11,7 +11,7 @@
 
 
 jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
-jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
+jobject JNICALL _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
 jobject _Jv_getFieldInternal (java::lang::reflect::Field *f, jclass c, jobject o);
 
 class java::lang::reflect::Field : public ::java::lang::reflect::AccessibleObject
@@ -90,7 +90,7 @@
   static ::java::lang::Class class$;
 
   friend jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);
-  friend jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
+  friend jobject JNICALL (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
   friend class java::lang::Class;
   friend jobject (::_Jv_getFieldInternal) (java::lang::reflect::Field *f, jclass c, jobject o);
 };
--- libjava/libgcj-noncore-dummy.def	2010-03-21 20:41:37.000000000 +0100
+++ libjava/libgcj-noncore-dummy.def	2011-07-05 10:18:45.324377773 +0200
@@ -1,5 +1,5 @@
 
-LIBRARY cyggcj-noncore-11.dll
+LIBRARY libgcj-noncore-12.dll
 
 EXPORTS
 
--- libjava/Makefile.am	2010-08-27 06:27:40.000000000 +0200
+++ libjava/Makefile.am	2011-07-05 10:19:12.476293124 +0200
@@ -524,7 +524,7 @@
 ## either always loads both at runtime.
 DLL_VERSION=`expr \`grep -v '^\#' $(srcdir)/libtool-version | sed -e 's/\(.*\):\(.*\):.*/\1 + \2/'\``
 libgcj-noncore-dummy.dll.a : $(srcdir)/libgcj-noncore-dummy.def
-	$(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll 
+	$(DLLTOOL) -d $^ -l $@ --dllname libgcj-noncore-$(DLL_VERSION).dll 
 
 ## These are the libtool definitions for the noncore library.
 libgcj_noncore_la_SOURCES =
--- libjava/Makefile.in	2011-06-27 12:13:01.000000000 +0200
+++ libjava/Makefile.in	2011-07-05 10:26:37.075478711 +0200
@@ -1066,7 +1066,7 @@
 libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
 	$(LIBLTDL) $(SYS_ZLIBS) $(LIBJAVA_LDFLAGS_NOUNDEF) \
 	-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-	$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+	$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) -Wl,--export-all-symbols
 
 libgcj_la_LIBADD = \
 	classpath/native/fdlibm/libfdlibm.la \
@@ -10545,7 +10545,7 @@
 interpret.lo:  AM_CXXFLAGS += -fwrapv
 prims.lo: AM_CXXFLAGS += -fno-omit-frame-pointer
 @BUILD_SUBLIBS_TRUE@libgcj-noncore-dummy.dll.a : $(srcdir)/libgcj-noncore-dummy.def
-@BUILD_SUBLIBS_TRUE@	$(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll 
+@BUILD_SUBLIBS_TRUE@	$(DLLTOOL) -d $^ -l $@ --dllname libgcj-noncore-$(DLL_VERSION).dll 
 
 $(db_name): gcj-dbtool$(EXEEXT)
 	@rm -f $(db_name)
--- ltmain.sh	(revision 171352)
+++ ltmain.sh	(working copy)
@@ -5438,7 +5438,7 @@
 	    case " $dlpreconveniencelibs " in
 	    *" $deplib "*) ;;
 	    *)
-	      valid_a_lib=no
+	      valid_a_lib=yes
 	      case $deplibs_check_method in
 		match_pattern*)
 		  set dummy $deplibs_check_method; shift
--- libjava/sysdep/i386/backtrace.h	2009-09-22 20:58:13.000000000 +0200
+++ libjava/sysdep/i386/backtrace.h	2011-07-05 10:26:37.058476905 +0200
@@ -17,7 +17,10 @@
 /* To allow this to link as a DLL.  */
 #define MAIN_FUNC dll_crt0__FP11per_process
 extern "C" int MAIN_FUNC () __declspec(dllimport);
-#else /* !__CYGWIN__ */
+#elif defined (_WIN32)
+#define MAIN_FUNC DllMain
+extern "C" int __stdcall MAIN_FUNC (void *, unsigned long, void *);
+#else /* !__CYGWIN__ && !_WIN32 */
 #define MAIN_FUNC main
 extern int MAIN_FUNC (int, char **);
 #endif /* ?__CYGWIN__ */
openSUSE Build Service is sponsored by