Top level ChangeLog:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>
Sun, 10 Dec 2000 05:32:49 +0000 (05:32 +0000)
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>
Sun, 10 Dec 2000 05:32:49 +0000 (21:32 -0800)
2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

* libjava: Imported from /cvs/java.
* libffi: Likewise.
* Boehm-gc: Likewise.

libjava/ChangeLog:

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

* Makefile.am (data_DATA): libgcj.jar replaces libgcj.zip.
(ZIP): Points at fastjar instead of zip.
(libgcj_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
(libgcj_la_LDFLAGS): Correctly point at libsupc++.
(libgcjx_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
(libgcjx_la_LDFLAGS): Correctly point at libsupc++.
($(java_source_files:.java=.class):): libgcj.jar replaces libgcj.zip.
($(x_java_source_files:.java=.class):): Likewise.
(libgcj.jar:): Replaces libgcj.zip:, builds libgcj.jar and uses
fastar's flags.
(CLEANFILES): libgcj.jar replaces libgcj.zip.
(java/lang/ClassLoader.h:): Depends on libgcj.jar.
(gnu/gcj/runtime/FirstThread.h:, java/lang/Thread.h:,
java/lang/String.h:, java/lang/reflect/Constructor.h:,
java/lang/reflect/Field.h:, java/lang/reflect/Method.h:,
gnu/gcj/runtime/VMClassLoader.h:,
java/io/ObjectInputStream$$GetField.h:,
java/io/ObjectOutputStream$$PutField.h:, header-check:): Likewise.
(Makefile.in): Rebuilt.

gcc/java/ChangeLog:

2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>

* Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
jcf-path.c: Likewise.

From-SVN: r38167

ChangeLog
gcc/java/ChangeLog
gcc/java/Make-lang.in
gcc/java/jcf-path.c
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in

index b208f24ca1c42d6f77c47fe08c46703610202729..585cfb9cf57cdee19899b8b34f6ae966e65e24d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * libjava: Imported from /cvs/java.
+       * libffi: Likewise.
+       * Boehm-gc: Likewise.
+
 2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * configure.in (target_libs): Revert 2000-12-08 patch.
index 9eb87be53a5c946f6c12965f192e3867564d9d56..c5fcd7980d8651ed1d36326f5b5ccc232e97f796 100644 (file)
@@ -1,3 +1,8 @@
+2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * Make-lang.in (java/jcf-path.o:): libgcj.jar replaces libgcj.zip.
+       jcf-path.c: Likewise.
+
 2000-12-09  Anthony Green  <green@redhat.com>
 
        * zipfile.h (ZipDirectory): Declare size, uncompressed_size,
index d7e3afa1fc02fa1b20f8f2fad59d525a14afb0b6..7de2de8ff766b1d6ab0235ce6238b931f6bc25ab 100644 (file)
@@ -271,6 +271,6 @@ java/jcf-io.o: java/jcf-io.c $(CONFIG_H) system.h $(JAVA_TREE_H)
 # jcf-path.o needs a -D.
 java/jcf-path.o: java/jcf-path.c $(CONFIG_H) system.h java/jcf.h
        $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-         -DLIBGCJ_ZIP_FILE='"$(prefix)/share/libgcj.zip"' \
+         -DLIBGCJ_ZIP_FILE='"$(prefix)/share/libgcj.jar"' \
          $(srcdir)/java/jcf-path.c $(OUTPUT_OPTION)
 
index 3e63bc5b988753392cbd4df1e3491d01d66a1177..a9e1bda70aa99dedfc77910475d5cb70d8017f04 100644 (file)
@@ -69,7 +69,7 @@ static void add_path PARAMS ((struct entry **, const char *, int));
 
 /* We support several different ways to set the class path.
 
-   built-in system directory (only libgcj.zip)
+   built-in system directory (only libgcj.jar)
    CLASSPATH environment variable
    -CLASSPATH overrides CLASSPATH
    -classpath option - overrides CLASSPATH, -CLASSPATH, and built-in
@@ -155,7 +155,7 @@ add_entry (entp, filename, is_system)
     {
       n->flags |= FLAG_ZIP;
       /* If the user uses -classpath then he'll have to include
-        libgcj.zip in the value.  We check for this in a simplistic
+        libgcj.jar in the value.  We check for this in a simplistic
         way.  Symlinks will fool this test.  This is only used for
         -MM and -MMD, so it probably isn't terribly important.  */
       if (! strcmp (filename, LIBGCJ_ZIP_FILE))
@@ -254,7 +254,7 @@ jcf_path_init ()
 
       strcpy (try + len, "share");
       strcat (try, sep);
-      strcat (try, "libgcj.zip");
+      strcat (try, "libgcj.jar");
       if (! stat (try, &stat_b))
        {
          add_entry (&sys_dirs, try, 1);
@@ -266,7 +266,7 @@ jcf_path_init ()
          strcat (try, sep);
          strcat (try, "share");
          strcat (try, sep);
-         strcat (try, "libgcj.zip");
+         strcat (try, "libgcj.jar");
          if (! stat (try, &stat_b))
            {
              add_entry (&sys_dirs, try, 1);
index f8a73921c2388416c1619968ae5a9d30e4bad673..6ce3331b7ac8222da35ad3d3d46e01b3b1017e9b 100644 (file)
@@ -1,3 +1,25 @@
+2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * Makefile.am (data_DATA): libgcj.jar replaces libgcj.zip.
+       (ZIP): Points at fastjar instead of zip.
+       (libgcj_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
+       (libgcj_la_LDFLAGS): Correctly point at libsupc++.
+       (libgcjx_la_DEPENDENCIES): libgcj.jar replaces libgcj.zip.
+       (libgcjx_la_LDFLAGS): Correctly point at libsupc++.
+       ($(java_source_files:.java=.class):): libgcj.jar replaces libgcj.zip.
+       ($(x_java_source_files:.java=.class):): Likewise.
+       (libgcj.jar:): Replaces libgcj.zip:, builds libgcj.jar and uses
+       fastar's flags.
+       (CLEANFILES): libgcj.jar replaces libgcj.zip.
+       (java/lang/ClassLoader.h:): Depends on libgcj.jar.
+       (gnu/gcj/runtime/FirstThread.h:, java/lang/Thread.h:,
+       java/lang/String.h:, java/lang/reflect/Constructor.h:,
+       java/lang/reflect/Field.h:, java/lang/reflect/Method.h:,
+       gnu/gcj/runtime/VMClassLoader.h:,
+       java/io/ObjectInputStream$$GetField.h:, 
+       java/io/ObjectOutputStream$$PutField.h:, header-check:): Likewise.
+       (Makefile.in): Rebuilt.
+       
 2000-12-08  Tom Tromey  <tromey@redhat.com>
 
        From Phil Edwards:
index 83a1cfc0dd27593b67b148d59c9a64dc3b01d308..18881188d5df1ce210c30268af3f52233a793543 100644 (file)
@@ -31,7 +31,7 @@ endif
 
 toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary)
 toolexeclib_DATA = libgcj.spec
-data_DATA = libgcj.zip
+data_DATA = libgcj.jar
 
 if NEEDS_DATA_START
 toolexeclib_LIBRARIES = libgcjdata.a
@@ -57,9 +57,9 @@ if CANADIAN
 if NULL_TARGET
 ## In this case, gcj is found outside the build tree.  However, zip is
 ## found in the build tree.
-ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
+ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT)
 else
-ZIP = zip
+ZIP = fastjar
 endif
 GCJH = gcjh
 else # CANADIAN
@@ -68,7 +68,7 @@ else # CANADIAN
 ## definition of GCJ won't work; instead we resort to this ugly
 ## definition that gives us absolute paths.
 GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
-ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
+ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT)
 endif # CANADIAN
 
 GCJCOMPILE = $(LIBTOOL) --tag=GCJ --mode=compile $(GCJ) -fassume-compiled -fclasspath=$(here) -L$(here) $(JC1FLAGS) -MD -MT $@ -MF $(@:.lo=.d) -c
@@ -108,7 +108,7 @@ INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \
 ## ################################################################
 
 ##
-## How to build libgcj.a and libgcj.zip
+## How to build libgcj.a and libgcj.jar
 ##
 
 ## Objects from C++ sources in subdirs.
@@ -129,21 +129,23 @@ libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
        $(nat_source_files)
 EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
        $(c_source_files) $(java_source_files) $(built_java_source_files)
-libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) \
+libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \
        $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
 libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \
        $(THREADOBJS) $(libffi_files) $(LIBLTDL)
-libgcj_la_LDFLAGS = -lsupc++ -rpath $(toolexeclibdir) \
+libgcj_la_LDFLAGS = -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \
+       -rpath $(toolexeclibdir) \
 ## The mysterious backslash is consumed by make.
        -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 libgcj_la_LINK = $(LIBLINK)
 
 libgcjx_la_SOURCES = $(x_nat_source_files)
 EXTRA_libgcjx_la_SOURCES = $(x_java_source_files)
-libgcjx_la_DEPENDENCIES = libgcj.zip $(x_javao_files)
+libgcjx_la_DEPENDENCIES = libgcj.jar $(x_javao_files)
 libgcjx_la_LIBADD = $(x_javao_files)
 libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-        -lsupc++ -rpath $(toolexeclibdir) \
+        -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \
+        -rpath $(toolexeclibdir) \
 ## The mysterious backslash is consumed by make.
         -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 libgcjx_la_LINK = $(LIBLINK)
@@ -162,12 +164,12 @@ install-exec-hook:
 ## a .java file with some other class which is caught.  Note that we
 ## only want to create headers for those files which do not have
 ## hand-maintained headers.
-$(java_source_files:.java=.class): libgcj.zip
+$(java_source_files:.java=.class): libgcj.jar
 
-## The .class files for X will not be included in libgcj.zip, but the
-## rule for libgcj.zip will cause all out-of-date .class files to be
+## The .class files for X will not be included in libgcj.jar, but the
+## rule for libgcj.jar will cause all out-of-date .class files to be
 ## built. We need this to generate headers for the nat-files.
-$(x_java_source_files:.java=.class): libgcj.zip
+$(x_java_source_files:.java=.class): libgcj.jar
 
 ## FIXME: this isn't really correct.
 $(built_java_source_files:.java=.class): $(built_java_source_files)
@@ -182,11 +184,11 @@ $(built_java_source_files:.java=.class): $(built_java_source_files)
 
 ## We have the zip file depend on the java sources and not the class
 ## files, because we don't know the names of all the class files.
-## FIXME: this method fails in a peculiar case: if libgcj.zip is
+## FIXME: this method fails in a peculiar case: if libgcj.jar is
 ## up-to-date, and foo.class is removed, and bar.java is touched, then
-## `make libgcj.zip' will not rebuilt foo.class.  That's because
-## libgcj.zip is not out-of-date with respect to foo.java.
-libgcj.zip: $(java_source_files) $(x_java_source_files)
+## `make libgcj.jar' will not rebuilt foo.class.  That's because
+## libgcj.jar is not out-of-date with respect to foo.java.
+libgcj.jar: $(java_source_files) $(x_java_source_files)
 ## Create a list of all Java sources, without exceeding any shell limits.
        @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$(subst $(srcdir)/,,$?),$(shell echo $(source) >> tmp-list))
 ## FIXME: this ought to depend on built_java_source_files, but right
@@ -202,14 +204,14 @@ libgcj.zip: $(java_source_files) $(x_java_source_files)
            || case "$$amf" in *=*) exit 1;; *k*) fail=yes ;; *) exit 1;; esac; \
        done; \
        test "$$fail" = no
-       -@rm -f tmp-list libgcj.zip
+       -@rm -f tmp-list libgcj.jar
 ## Note that we explicitly want to include directory information.
        find java gnu -type d -o -type f -name '*.class' | \
          sed -e '/\/\./d' -e '/\/xlib/d' | \
-         $(ZIP) libgcj -@ -n .class
+         $(ZIP) cfM0E@ $@
 
 MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers)
-CLEANFILES = tmp-list libgcj.zip
+CLEANFILES = tmp-list libgcj.jar
 
 clean-local:
 ## We just remove every .class file that was created.
@@ -265,20 +267,20 @@ nat_headers = $(ordinary_java_source_files:.java=.h) \
 
 x_nat_headers = $(x_java_source_files:.java=.h)
 
-java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.zip
+java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
                -friend 'void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar);' \
                $(basename $<)
 
 ## Our internal main program needs to be able to create a FirstThread.
-gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.zip
+gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -friend 'void JvRunMain (jclass, int, const char **);' \
                -friend 'void _Jv_RunMain (const char*, int, const char **);' \
                $(basename $<)
 
-java/lang/Thread.h: java/lang/Thread.class libgcj.zip
+java/lang/Thread.h: java/lang/Thread.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -prepend 'class _Jv_JNIEnv;' \
                -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \
@@ -289,7 +291,7 @@ java/lang/Thread.h: java/lang/Thread.class libgcj.zip
                -friend 'class gnu::gcj::jni::NativeThread;' \
                $(basename $<)
 
-java/lang/String.h: java/lang/String.class libgcj.zip
+java/lang/String.h: java/lang/String.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jchar* _Jv_GetStringChars (jstring str);' \
            -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
@@ -299,37 +301,37 @@ java/lang/String.h: java/lang/String.class libgcj.zip
            -friend 'jstring _Jv_AllocString (jsize);' \
            $(basename $<)
 
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.zip
+java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
            -friend 'class java::lang::Class;' \
            -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
            $(basename $<)
 
-java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.zip
+java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -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 libgcj.zip
+java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
            -friend 'class java::lang::Class;' \
            -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
            $(basename $<)
 
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.zip
+gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'class java::lang::ClassLoader;' \
            $(basename $<)
 
-java/io/ObjectInputStream$$GetField.h: libgcj.zip
+java/io/ObjectInputStream$$GetField.h: libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
        'java/io/ObjectInputStream$$GetField'
 
-java/io/ObjectOutputStream$$PutField.h: libgcj.zip
+java/io/ObjectOutputStream$$PutField.h: libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
        'java/io/ObjectOutputStream$$PutField'
 
@@ -370,7 +372,7 @@ maintainer-check: libgcj.la
 
 ## This rule can be used to see if the headers are more or less
 ## correct.
-header-check: libgcj.zip $(nat_headers)
+header-check: libgcj.jar $(nat_headers)
        rm -f htest.cc; \
        for h in $(nat_headers); do \
          echo "#include \"$$h\"" >> htest.cc; \
index 396d34de4c273f498d69f62693f215b1df678d1d..6bc235e9e2fe597a2a740effb3ddbb6dd6e1dc29 100644 (file)
@@ -136,7 +136,7 @@ AUTOMAKE_OPTIONS = foreign no-installinfo
 
 toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary)
 toolexeclib_DATA = libgcj.spec
-data_DATA = libgcj.zip
+data_DATA = libgcj.jar
 
 @NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = \
 @NEEDS_DATA_START_TRUE@libgcjdata.a
@@ -148,11 +148,11 @@ data_DATA = libgcj.zip
 
 bin_SCRIPTS = addr2name.awk
 @CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \
-@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
+@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT)
 @CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \
-@CANADIAN_TRUE@@NULL_TARGET_FALSE@zip
+@CANADIAN_TRUE@@NULL_TARGET_FALSE@fastjar
 @CANADIAN_FALSE@ZIP = \
-@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
+@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT)
 @CANADIAN_TRUE@GCJH = \
 @CANADIAN_TRUE@gcjh
 @CANADIAN_FALSE@GCJH = \
@@ -203,29 +203,31 @@ libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
 EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
        $(c_source_files) $(java_source_files) $(built_java_source_files)
 
-libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) \
+libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \
        $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
 
 libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \
        $(THREADOBJS) $(libffi_files) $(LIBLTDL)
 
-libgcj_la_LDFLAGS = -lsupc++ -rpath $(toolexeclibdir) \
+libgcj_la_LDFLAGS = -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \
+       -rpath $(toolexeclibdir) \
        -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 
 libgcj_la_LINK = $(LIBLINK)
 
 libgcjx_la_SOURCES = $(x_nat_source_files)
 EXTRA_libgcjx_la_SOURCES = $(x_java_source_files)
-libgcjx_la_DEPENDENCIES = libgcj.zip $(x_javao_files)
+libgcjx_la_DEPENDENCIES = libgcj.jar $(x_javao_files)
 libgcjx_la_LIBADD = $(x_javao_files)
 libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \
-        -lsupc++ -rpath $(toolexeclibdir) \
+        -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \
+        -rpath $(toolexeclibdir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version`
 
 libgcjx_la_LINK = $(LIBLINK)
 
 MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) $(x_javao_files) $(x_nat_files) $(x_nat_headers)
-CLEANFILES = tmp-list libgcj.zip
+CLEANFILES = tmp-list libgcj.jar
 
 SUFFIXES = .class .java .h
 
@@ -2296,9 +2298,9 @@ install-exec-hook:
          $(LN_S) libgcjx.la gnu-awt-xlib.la; \
        fi
 
-$(java_source_files:.java=.class): libgcj.zip
+$(java_source_files:.java=.class): libgcj.jar
 
-$(x_java_source_files:.java=.class): libgcj.zip
+$(x_java_source_files:.java=.class): libgcj.jar
 
 $(built_java_source_files:.java=.class): $(built_java_source_files)
        @javac="$(JAVAC)"; \
@@ -2308,7 +2310,7 @@ $(built_java_source_files:.java=.class): $(built_java_source_files)
          -d $(here) $$f; \
        done
 
-libgcj.zip: $(java_source_files) $(x_java_source_files)
+libgcj.jar: $(java_source_files) $(x_java_source_files)
        @: $(shell echo Creating list of files to compile...) $(shell rm -f tmp-list || :) $(shell touch tmp-list) $(foreach source,$(subst $(srcdir)/,,$?),$(shell echo $(source) >> tmp-list))
        $(MAKE) $(built_java_source_files:.java=.class)
        @set fnord $(MAKEFLAGS); amf=$$2; fail=no; \
@@ -2319,10 +2321,10 @@ libgcj.zip: $(java_source_files) $(x_java_source_files)
            || case "$$amf" in *=*) exit 1;; *k*) fail=yes ;; *) exit 1;; esac; \
        done; \
        test "$$fail" = no
-       -@rm -f tmp-list libgcj.zip
+       -@rm -f tmp-list libgcj.jar
        find java gnu -type d -o -type f -name '*.class' | \
          sed -e '/\/\./d' -e '/\/xlib/d' | \
-         $(ZIP) libgcj -@ -n .class
+         $(ZIP) cfM0E@ $@
 
 clean-local:
        find . -name '*.class' -print | xargs rm -f
@@ -2354,19 +2356,19 @@ $(javao_files) $(x_javao_files): %.lo: %.java
 .class.h:
        $(GCJH) -classpath $(top_builddir) $(basename $<)
 
-java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.zip
+java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
                -friend 'void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar);' \
                $(basename $<)
 
-gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.zip
+gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -friend 'void JvRunMain (jclass, int, const char **);' \
                -friend 'void _Jv_RunMain (const char*, int, const char **);' \
                $(basename $<)
 
-java/lang/Thread.h: java/lang/Thread.class libgcj.zip
+java/lang/Thread.h: java/lang/Thread.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
                -prepend 'class _Jv_JNIEnv;' \
                -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \
@@ -2377,7 +2379,7 @@ java/lang/Thread.h: java/lang/Thread.class libgcj.zip
                -friend 'class gnu::gcj::jni::NativeThread;' \
                $(basename $<)
 
-java/lang/String.h: java/lang/String.class libgcj.zip
+java/lang/String.h: java/lang/String.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jchar* _Jv_GetStringChars (jstring str);' \
            -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
@@ -2387,37 +2389,37 @@ java/lang/String.h: java/lang/String.class libgcj.zip
            -friend 'jstring _Jv_AllocString (jsize);' \
            $(basename $<)
 
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.zip
+java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
            -friend 'class java::lang::Class;' \
            -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
            $(basename $<)
 
-java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.zip
+java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -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 libgcj.zip
+java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
            -friend 'class java::lang::Class;' \
            -friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
            $(basename $<)
 
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.zip
+gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
            -friend 'class java::lang::ClassLoader;' \
            $(basename $<)
 
-java/io/ObjectInputStream$$GetField.h: libgcj.zip
+java/io/ObjectInputStream$$GetField.h: libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
        'java/io/ObjectInputStream$$GetField'
 
-java/io/ObjectOutputStream$$PutField.h: libgcj.zip
+java/io/ObjectOutputStream$$PutField.h: libgcj.jar
        $(GCJH) -classpath $(top_builddir) \
        'java/io/ObjectOutputStream$$PutField'
 
@@ -2437,7 +2439,7 @@ maintainer-check: libgcj.la
          | grep -v 'Jv' \
          | grep -v 'terminate__Fv' | grep -v 'unexpected__Fv'
 
-header-check: libgcj.zip $(nat_headers)
+header-check: libgcj.jar $(nat_headers)
        rm -f htest.cc; \
        for h in $(nat_headers); do \
          echo "#include \"$$h\"" >> htest.cc; \