This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gcjx] Patch: FYI: -nostdheaders argument
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 17 Apr 2005 12:31:19 -0600
- Subject: [gcjx] Patch: FYI: -nostdheaders argument
- Reply-to: tromey at redhat dot com
I'm checking this in on the gcjx branch.
This adds a '-nostdheaders' to gcjx and changes the libjava build to
use it. This is just a special tweak to avoid generating Object.h and
Class.h; it lets us generate the CNI headers at the same time we
generate the .class files.
Tom
Index: gcjx/ChangeLog
from Tom Tromey <tromey@redhat.com>
* main.cc (argument_parser::help_options): Document
-nostdheaders.
(argument_parser::parse_args): Handle -nostdheaders.
* header/cni.cc (cni_code_generator): Initialize new field.
(generate): Handle new field.
* header/cni.hh (cni_code_generator::std_headers_ok): New field.
(cni_code_generator::set_avoid_headers): New method.
Index: libjava/ChangeLog
from Tom Tromey <tromey@redhat.com>
* Makefile.in, configure: Rebuilt.
* include/jvm.h (_JV_NOT_OWNER): New define.
(_JV_INTERRUPTED): Likewise.
* Makefile.am (JAVAC): Redefine.
(GCJH): Removed.
(ZIP): Removed.
(.class.h): Removed.
($(ordinary_nat_headers) $(xlib_nat_headers)): Removed.
(java/lang/ClassLoader.h): Removed.
(java/lang/Thread.h): Likewise.
(java/lang/String.h): Likewise.
(java/lang/reflect/Constructor.h): Likewise.
(java/lang/reflect/Field.h): Likewise.
(java/lang/reflect/Method.h): Likewise.
(java/lang/reflect/Proxy.h): Likewise.
(java/lang/reflect/Proxy$$ProxyData.h): Likewise.
(java/lang/reflect/Proxy$$ProxyType.h): Likewise.
(gnu/gcj/runtime/VMClassLoader.h): Likewise.
(java/io/ObjectInputStream$$GetField.h): Likewise.
(java/io/ObjectOutputStream$$PutField.h): Likewise.
(java/nio/DirectByteBufferImpl$$ReadWrite.h): Likewise.
(java/nio/channels/Pipe$$SinkChannel.h): Likewise.
(java/nio/channels/Pipe$$SourceChannel.h): Likewise.
(gnu/java/net/PlainSocketImpl$$SocketInputStream.h): Likewise.
(gnu/java/net/PlainSocketImpl$$SocketOutputStream.h): Likewise.
(gnu/java/nio/PipeImpl$$SinkChannelImpl.h): Likewise.
(gnu/java/nio/PipeImpl$$SourceChannelImpl.h): Likewise.
(java/lang/ConcreteProcess$$ProcessManager.h): Likewise.
(GCC_UNWIND_INCLUDE): Removed.
(target_noncanonical): Removed.
(HEADER_ARGS): New variable.
(.java.class): Don't print command.
* configure.ac (GCJX): New subst.
Index: gcjx/main.cc
===================================================================
RCS file: /cvs/gcc/gcc/gcjx/Attic/main.cc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 main.cc
--- gcjx/main.cc 4 Apr 2005 04:27:45 -0000 1.1.2.6
+++ gcjx/main.cc 17 Apr 2005 18:25:23 -0000
@@ -268,6 +268,7 @@
print ("-prepend TEXT", "print text before class declaration", 3);
print ("-append CLASS", "print text after class declaration", 3);
print ("-friend CLASS", "print text in class as friend declaration", 3);
+ print ("-nostdheaders", "don't emit headers for Object or Class", 3);
os << std::endl;
@@ -435,7 +436,7 @@
}
else if (arg == "-deprecation")
handle_warning ("-Wdeprecated");
- else if (arg[1] == 'f')
+ else if (arg[1] == 'f' && arg != "-friend")
handle_feature (arg);
else if (arg == "-verbose")
comp->verbose = true;
@@ -536,6 +537,11 @@
action_class,
get_arg_for (it, "-prepend"));
}
+ else if (arg == "-nostdheaders")
+ {
+ need_cni_generator ("-nostdheaders");
+ cni_generator->set_avoid_headers ();
+ }
else
die_unrecognized ("option", arg);
}
Index: gcjx/header/cni.cc
===================================================================
RCS file: /cvs/gcc/gcc/gcjx/header/Attic/cni.cc,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 cni.cc
--- gcjx/header/cni.cc 4 Apr 2005 04:26:47 -0000 1.1.2.3
+++ gcjx/header/cni.cc 17 Apr 2005 18:25:27 -0000
@@ -26,7 +26,8 @@
cni_code_generator::cni_code_generator (compiler *c, directory_cache &dirs)
: code_generator (dirs),
- comp (c)
+ comp (c),
+ std_headers_ok (true)
{
}
@@ -425,14 +426,18 @@
void
cni_code_generator::generate (model_class *klass)
{
+ std::string cname = klass->get_fully_qualified_name ();
+
+ if (! std_headers_ok && (cname == "java.lang.Object"
+ || cname == "java.lang.Class"))
+ return;
+
std::string filename = directories.add (klass, ".h");
std::ofstream out (filename.c_str ());
if (global->get_compiler ()->verbose ())
std::cout << " [writing " << filename << "]" << std::endl;
- std::string cname = klass->get_fully_qualified_name ();
-
action_map_type::const_iterator it = action_map.find (cname);
bool found = it != action_map.end ();
const action_item_list &actions (found ? (*it).second : empty_list);
Index: gcjx/header/cni.hh
===================================================================
RCS file: /cvs/gcc/gcc/gcjx/header/Attic/cni.hh,v
retrieving revision 1.1.2.4
diff -u -r1.1.2.4 cni.hh
--- gcjx/header/cni.hh 4 Apr 2005 04:26:47 -0000 1.1.2.4
+++ gcjx/header/cni.hh 17 Apr 2005 18:25:27 -0000
@@ -54,6 +54,9 @@
// An empty list that we use as needed.
action_item_list empty_list;
+ // True if we should emit headers for Object and Class.
+ bool std_headers_ok;
+
std::string cxxname (model_type *, bool = true);
void update_modifiers (std::ostream &, modifier_t, modifier_t &);
void add (model_type *, std::set<model_class *> &,
@@ -91,6 +94,11 @@
{
return true;
}
+
+ void set_avoid_headers ()
+ {
+ std_headers_ok = false;
+ }
};
#endif // GCJX_HEADER_CNI_HH
Index: libjava/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.435
diff -u -r1.435 Makefile.am
--- libjava/Makefile.am 11 Jan 2005 20:19:48 -0000 1.435
+++ libjava/Makefile.am 17 Apr 2005 18:25:31 -0000
@@ -87,9 +87,6 @@
## ################################################################
-# autoconf2.13's target_alias
-target_noncanonical = @target_noncanonical@
-
##
## What gets installed, and where.
##
@@ -135,9 +132,6 @@
## Compilers and compilation flags.
##
-GCJH = @GCJH@
-ZIP = @ZIP@
-
## The compiler with whatever flags we want for both -c and -C
## compiles.
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
@@ -145,9 +139,9 @@
GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-JAVAC = $(GCJ_WITH_FLAGS) -C
-
-GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
+## We define this so that we also get the correct CNI headers at the
+## same time.
+JAVAC = $(GCJX) -o bytecode -o cni -nostdheaders $(HEADER_ARGS)
WARNINGS = -Wextra -Wall
## Some systems don't allow `$' in identifiers by default, so we force
@@ -196,6 +190,64 @@
$(GCINCS) $(THREADINCS) $(INCLTDL) \
$(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
+HEADER_ARGS = \
+-cniclass java.lang.ClassLoader \
+-prepend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
+-prepend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
+-friend 'jclass (::_Jv_FindClass) (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
+-friend 'void ::_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
+-cniclass java.lang.Thread \
+-prepend 'class _Jv_JNIEnv;' \
+-prepend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \
+-prepend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
+-prepend 'void _Jv_ThreadRun (java::lang::Thread* thread);' \
+-prepend 'jint _Jv_AttachCurrentThread(java::lang::Thread* thread);' \
+-prepend 'java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
+-prepend 'java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
+-prepend 'jint _Jv_DetachCurrentThread ();' \
+-friend '_Jv_JNIEnv * ::_Jv_GetCurrentJNIEnv ();' \
+-friend 'void ::_Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
+-friend 'void ::_Jv_ThreadRun (java::lang::Thread* thread);' \
+-friend 'jint (::_Jv_AttachCurrentThread) (java::lang::Thread* thread);' \
+-friend 'java::lang::Thread* ::_Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
+-friend 'java::lang::Thread* ::_Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
+-friend 'jint (::_Jv_DetachCurrentThread) ();' \
+-cniclass java.lang.String \
+-prepend 'jchar* _Jv_GetStringChars (jstring str);' \
+-prepend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
+-prepend 'jstring* _Jv_StringGetSlot (jstring);' \
+-prepend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \
+-prepend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \
+-prepend 'jstring _Jv_AllocString (jsize);' \
+-friend 'jchar* ::_Jv_GetStringChars (jstring str);' \
+-friend 'jstring* ::_Jv_StringFindSlot (jchar*, jint, jint);' \
+-friend 'jstring* ::_Jv_StringGetSlot (jstring);' \
+-friend 'jstring (::_Jv_NewStringUtf8Const) (_Jv_Utf8Const* str);' \
+-friend 'jstring (::_Jv_NewStringLatin1) (const char*, jsize);' \
+-friend 'jstring (::_Jv_AllocString) (jsize);' \
+-cniclass java.lang.reflect.Constructor \
+-prepend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
+-prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
+-friend 'jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);' \
+-friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
+-friend 'class java::lang::Class;' \
+-cniclass java.lang.reflect.Field \
+-prepend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
+-prepend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
+-friend 'jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);' \
+-friend 'jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
+-friend 'class java::lang::Class;' \
+-cniclass java.lang.reflect.Method \
+-prepend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
+-prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
+-friend 'jmethodID (::_Jv_FromReflectedMethod) (java::lang::reflect::Method *);' \
+-friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
+-friend 'class java::lang::Class;' \
+-friend 'class java::io::ObjectInputStream;' \
+-cniclass gnu.gcj.runtime.VMClassLoader \
+-friend 'class ::java::lang::ClassLoader;'
+
+
## ################################################################
##
@@ -622,6 +674,8 @@
# Compile each classfile individually.
.java.class:
+## Trust us, you don't want to see this command run.
+ @echo "Compiling $< to .class"
$(JAVAC) $(JCFLAGS) -classpath '' -bootclasspath $(here)'$(CLASSPATH_SEPARATOR)'$(srcdir) -d $(here) $<
libgcj-@gcc_version@.jar: $(all_java_class_files) $(all_property_files)
@@ -698,9 +752,6 @@
## How to build header files.
##
-.class.h:
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) $(basename $<)
-
## Header files used when compiling some of the nat* files.
ordinary_nat_headers = $(ordinary_java_source_files:.java=.h) \
$(built_java_source_files:.java=.h)
@@ -723,139 +774,6 @@
xlib_nat_headers = $(xlib_java_source_files:.java=.h)
-$(ordinary_nat_headers) $(xlib_nat_headers): %.h: %.class
-
-java/lang/ClassLoader.h: java/lang/ClassLoader.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
- -prepend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
- -friend 'jclass (::_Jv_FindClass) (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
- -friend 'void ::_Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
- $(basename $<)
-
-java/lang/Thread.h: java/lang/Thread.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'class _Jv_JNIEnv;' \
- -prepend '#define _JV_NOT_OWNER 1' \
- -prepend '#define _JV_INTERRUPTED 2' \
- -prepend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \
- -prepend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
- -prepend 'void _Jv_ThreadRun (java::lang::Thread* thread);' \
- -prepend 'jint _Jv_AttachCurrentThread(java::lang::Thread* thread);' \
- -prepend 'java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
- -prepend 'java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
- -prepend 'jint _Jv_DetachCurrentThread ();' \
- -friend '_Jv_JNIEnv * ::_Jv_GetCurrentJNIEnv ();' \
- -friend 'void ::_Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
- -friend 'void ::_Jv_ThreadRun (java::lang::Thread* thread);' \
- -friend 'jint (::_Jv_AttachCurrentThread) (java::lang::Thread* thread);' \
- -friend 'java::lang::Thread* ::_Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
- -friend 'java::lang::Thread* ::_Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
- -friend 'jint (::_Jv_DetachCurrentThread) ();' \
- $(basename $<)
-
-java/lang/String.h: java/lang/String.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'jchar* _Jv_GetStringChars (jstring str);' \
- -prepend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
- -prepend 'jstring* _Jv_StringGetSlot (jstring);' \
- -prepend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \
- -prepend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \
- -prepend 'jstring _Jv_AllocString (jsize);' \
- -friend 'jchar* ::_Jv_GetStringChars (jstring str);' \
- -friend 'jstring* ::_Jv_StringFindSlot (jchar*, jint, jint);' \
- -friend 'jstring* ::_Jv_StringGetSlot (jstring);' \
- -friend 'jstring (::_Jv_NewStringUtf8Const) (_Jv_Utf8Const* str);' \
- -friend 'jstring (::_Jv_NewStringLatin1) (const char*, jsize);' \
- -friend 'jstring (::_Jv_AllocString) (jsize);' \
- $(basename $<)
-
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
- -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- -friend 'jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *);' \
- -friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- -friend 'class java::lang::Class;' \
- $(basename $<)
-
-java/lang/reflect/Field.h: java/lang/reflect/Field.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
- -prepend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
- -friend 'jfieldID (::_Jv_FromReflectedField) (java::lang::reflect::Field *);' \
- -friend 'jobject (::_Jv_JNI_ToReflectedField) (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
- -friend 'class java::lang::Class;' \
- $(basename $<)
-
-java/lang/reflect/Method.h: java/lang/reflect/Method.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -prepend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
- -prepend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- -friend 'jmethodID (::_Jv_FromReflectedMethod) (java::lang::reflect::Method *);' \
- -friend 'jobject (::_Jv_JNI_ToReflectedMethod) (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
- -friend 'class java::lang::Class;' \
- -friend 'class java::io::ObjectInputStream;' \
- $(basename $<)
-
-java/lang/reflect/Proxy.h: java/lang/reflect/Proxy.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- $(basename $<)
-
-java/lang/reflect/Proxy$$ProxyData.h: java/lang/reflect/Proxy.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/lang/reflect/Proxy$$ProxyData'
-
-java/lang/reflect/Proxy$$ProxyType.h: java/lang/reflect/Proxy.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/lang/reflect/Proxy$$ProxyType'
-
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- -friend 'class ::java::lang::ClassLoader;' \
- $(basename $<)
-
-java/io/ObjectInputStream$$GetField.h: java/io/ObjectInputStream.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/io/ObjectInputStream$$GetField'
-
-java/io/ObjectOutputStream$$PutField.h: java/io/ObjectOutputStream.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/io/ObjectOutputStream$$PutField'
-
-java/nio/DirectByteBufferImpl$$ReadWrite.h: java/nio/DirectByteBufferImpl.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/nio/DirectByteBufferImpl$$ReadWrite'
-
-java/nio/channels/Pipe$$SinkChannel.h: java/nio/channels/Pipe.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/nio/channels/Pipe$$SinkChannel'
-
-java/nio/channels/Pipe$$SourceChannel.h: java/nio/channels/Pipe.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/nio/channels/Pipe$$SourceChannel'
-
-gnu/java/net/PlainSocketImpl$$SocketInputStream.h: gnu/java/net/PlainSocketImpl.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'gnu/java/net/PlainSocketImpl$$SocketInputStream'
-
-gnu/java/net/PlainSocketImpl$$SocketOutputStream.h: gnu/java/net/PlainSocketImpl.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'gnu/java/net/PlainSocketImpl$$SocketOutputStream'
-
-gnu/java/nio/PipeImpl$$SinkChannelImpl.h: gnu/java/nio/PipeImpl.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'gnu/java/nio/PipeImpl$$SinkChannelImpl'
-
-gnu/java/nio/PipeImpl$$SourceChannelImpl.h: gnu/java/nio/PipeImpl.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'gnu/java/nio/PipeImpl$$SourceChannelImpl'
-
-## Only used by PosixProcess.java
-java/lang/ConcreteProcess$$ProcessManager.h: java/lang/ConcreteProcess.class
- $(GCJH) -classpath '' -bootclasspath $(top_builddir) \
- 'java/lang/ConcreteProcess$$ProcessManager'
-
## Headers we maintain by hand and which we want to install.
extra_headers = java/lang/Object.h java/lang/Class.h
Index: libjava/configure.ac
===================================================================
RCS file: /cvs/gcc/gcc/libjava/configure.ac,v
retrieving revision 1.16
diff -u -r1.16 configure.ac
--- libjava/configure.ac 3 Dec 2004 11:15:22 -0000 1.16
+++ libjava/configure.ac 17 Apr 2005 18:25:40 -0000
@@ -1074,6 +1074,7 @@
built)
GCJ="$built_gcc_dir/gcj -B`${PWDCMD-pwd}`/ -B$built_gcc_dir/"
GCJH='$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh'
+ GCJX='$(MULTIBUILDTOP)../$(COMPPATH)/gcjx/gcjx'
ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
;;
cross)
@@ -1086,6 +1087,7 @@
fi
ZIP=jar
GCJH='$(target_noncanonical)-gcjh'
+ GCJX='$(target_noncanonical)-gcjx'
;;
path)
GCJ="gcj -B`${PWDCMD-pwd}`/"
@@ -1093,11 +1095,13 @@
## found in the build tree.
ZIP='$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
GCJH=gcjh
+ GCJX=gcjx
;;
esac
AC_SUBST(GCJH)
AC_SUBST(ZIP)
+AC_SUBST(GCJX)
# Create it, so that compile/link tests don't fail
test -f libgcj.spec || touch libgcj.spec
Index: libjava/include/jvm.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/include/jvm.h,v
retrieving revision 1.73
diff -u -r1.73 jvm.h
--- libjava/include/jvm.h 10 Jan 2005 19:39:25 -0000 1.73
+++ libjava/include/jvm.h 17 Apr 2005 18:25:42 -0000
@@ -33,6 +33,9 @@
/* Macro for possible unused arguments. */
#define MAYBE_UNUSED __attribute__((__unused__))
+#define _JV_NOT_OWNER 1
+#define _JV_INTERRUPTED 2
+
/* Structure of the virtual table. */
struct _Jv_VTable
{