From e4c34f6a4306b4cad5f91fd98b53f3dd5290779c Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Fri, 23 Mar 2001 05:18:16 +0000 Subject: [PATCH] re PR libgcj/1736 ([irix 6.5] Cannot create libgcj - Arg list too long) Fix for PR libgcj/1736. Thanks to Robert Boehne and Alexandre Oliva for libtool hacking. * Makefile.am (libgcj.la): New explicit rule. Echo the list of objects to a temporary file, then invoke libtool with the -objectlist paramater. (libgcjx.la): Likewise. * Makefile.in: Rebuilt. From-SVN: r40775 --- libjava/ChangeLog | 10 ++++++ libjava/Makefile.am | 19 +++++++++-- libjava/Makefile.in | 81 +++++++++++++++++++-------------------------- 3 files changed, 60 insertions(+), 50 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index f033324d564..0847094e7bd 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +2001-03-23 Bryce McKinlay + + Fix for PR libgcj/1736. Thanks to Robert Boehne and Alexandre Oliva + for libtool hacking. + * Makefile.am (libgcj.la): New explicit rule. Echo the list of objects + to a temporary file, then invoke libtool with the -objectlist + paramater. + (libgcjx.la): Likewise. + * Makefile.in: Rebuilt. + 2001-03-22 Joerg Brunsmann * javax/naming/Context.java (SECURITY_CREDENTIALS): Fix typo. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index e5875e59482..3b69121e8c3 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -142,12 +142,12 @@ EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \ $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) +libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \ + $(THREADOBJS) $(libffi_files) # Include THREADLIBS here to ensure that the correct version of # certain linuxthread functions get linked: -libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \ - $(THREADOBJS) $(THREADLIBS) $(libffi_files) $(LIBLTDL) libgcj_la_LDFLAGS = -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \ - -rpath $(toolexeclibdir) \ + -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \ ## The mysterious backslash is consumed by make. -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_la_LINK = $(LIBLINK) @@ -262,6 +262,19 @@ $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h $(javao_files) $(x_javao_files): %.lo: %.java $(GCJCOMPILE) -o $@ $< +## Pass the list of object files to libtool in a temporary file to +## avoid tripping platform command line length limits. +libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES) + @echo $(libgcj_la_OBJECTS) > libgcj.objectlist; + @echo $(libgcj_la_LIBADD) >> libgcj.objectlist; + $(libgcj_la_LINK) -objectlist libgcj.objectlist -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(LIBS) + +libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES) + @echo $(libgcjx_la_OBJECTS) > libgcjx.objectlist; + @echo $(libgcjx_la_LIBADD) >> libgcjx.objectlist; + $(libgcjx_la_LINK) -objectlist libgcjx.objectlist -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS) + + ## ################################################################ ## diff --git a/libjava/Makefile.in b/libjava/Makefile.in index df78804e2ce..de5f24ab09e 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -119,43 +119,29 @@ here = @here@ libgcj_basedir = @libgcj_basedir@ AUTOMAKE_OPTIONS = foreign no-installinfo -@TESTSUBDIR_TRUE@SUBDIRS = \ -@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include -@TESTSUBDIR_FALSE@SUBDIRS = \ -@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include -@USE_LIBDIR_TRUE@toolexeclibdir = \ -@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexeclibdir = \ -@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexecdir = \ -@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias) -@XLIB_AWT_TRUE@cond_x_ltlibrary = \ -@XLIB_AWT_TRUE@libgcjx.la -@XLIB_AWT_FALSE@cond_x_ltlibrary = \ +@TESTSUBDIR_TRUE@SUBDIRS = @TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include +@TESTSUBDIR_FALSE@SUBDIRS = @TESTSUBDIR_FALSE@$(DIRLTDL) gcj include +@USE_LIBDIR_TRUE@toolexeclibdir = @USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexeclibdir = @USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexecdir = @USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias) +@XLIB_AWT_TRUE@cond_x_ltlibrary = @XLIB_AWT_TRUE@libgcjx.la +@XLIB_AWT_FALSE@cond_x_ltlibrary = toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary) toolexeclib_DATA = libgcj.spec data_DATA = libgcj.jar -@NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = \ -@NEEDS_DATA_START_TRUE@libgcjdata.a -@NEEDS_DATA_START_TRUE@libgcjdata_a_SOURCES = \ -@NEEDS_DATA_START_TRUE@libgcjdata.c +@NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = @NEEDS_DATA_START_TRUE@libgcjdata.a +@NEEDS_DATA_START_TRUE@libgcjdata_a_SOURCES = @NEEDS_DATA_START_TRUE@libgcjdata.c -@NATIVE_TRUE@bin_PROGRAMS = \ -@NATIVE_TRUE@jv-convert gij +@NATIVE_TRUE@bin_PROGRAMS = @NATIVE_TRUE@jv-convert gij bin_SCRIPTS = addr2name.awk -@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \ -@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT) -@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \ -@CANADIAN_TRUE@@NULL_TARGET_FALSE@fastjar -@CANADIAN_FALSE@ZIP = \ -@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT) -@CANADIAN_TRUE@GCJH = \ -@CANADIAN_TRUE@gcjh -@CANADIAN_FALSE@GCJH = \ -@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = @CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = @CANADIAN_TRUE@@NULL_TARGET_FALSE@fastjar +@CANADIAN_FALSE@ZIP = @CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar$(EXEEXT) +@CANADIAN_TRUE@GCJH = @CANADIAN_TRUE@gcjh +@CANADIAN_FALSE@GCJH = @CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 @@ -174,10 +160,8 @@ AM_CXXFLAGS = -fno-rtti -fvtable-thunks -fasynchronous-exceptions \ -fdollars-in-identifiers \ @LIBGCJ_CXXFLAGS@ @EXCEPTIONSPEC@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE -@USING_GCC_TRUE@AM_CFLAGS = \ -@USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS) -@USING_GCC_FALSE@AM_CFLAGS = \ -@USING_GCC_FALSE@@LIBGCJ_CFLAGS@ +@USING_GCC_TRUE@AM_CFLAGS = @USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS) +@USING_GCC_FALSE@AM_CFLAGS = @USING_GCC_FALSE@@LIBGCJ_CFLAGS@ JCFLAGS = -g JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) @@ -210,13 +194,13 @@ libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \ $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) -# Include THREADLIBS here to ensure that the correct version of -# certain linuxthread functions get linked: libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \ - $(THREADOBJS) $(THREADLIBS) $(libffi_files) $(LIBLTDL) + $(THREADOBJS) $(libffi_files) +# Include THREADLIBS here to ensure that the correct version of +# certain linuxthread functions get linked: libgcj_la_LDFLAGS = -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \ - -rpath $(toolexeclibdir) \ + -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_la_LINK = $(LIBLINK) @@ -249,8 +233,7 @@ extra_headers = java/lang/Object.h java/lang/Class.h NM = nm -@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ -@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS +@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS CONVERT_DIR = gnu/gcj/convert @@ -1215,7 +1198,7 @@ libgcj-test.spec.in libgcj.spec.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ @@ -1869,12 +1852,6 @@ uninstall-toolexeclibLTLIBRARIES: $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(toolexeclibdir)/$$p; \ done -libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES) - $(libgcj_la_LINK) -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(libgcj_la_OBJECTS) $(libgcj_la_LIBADD) $(LIBS) - -libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES) - $(libgcjx_la_LINK) -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(libgcjx_la_OBJECTS) $(libgcjx_la_LIBADD) $(LIBS) - mostlyclean-binPROGRAMS: clean-binPROGRAMS: @@ -2119,7 +2096,7 @@ distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$/$$file $(distdir)/$$file; \ + cp -pr $$d/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ @@ -2369,6 +2346,16 @@ $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h $(javao_files) $(x_javao_files): %.lo: %.java $(GCJCOMPILE) -o $@ $< +libgcj.la: $(libgcj_la_OBJECTS) $(libgcj_la_DEPENDENCIES) + @echo $(libgcj_la_OBJECTS) > libgcj.objectlist; + @echo $(libgcj_la_LIBADD) >> libgcj.objectlist; + $(libgcj_la_LINK) -objectlist libgcj.objectlist -rpath $(toolexeclibdir) $(libgcj_la_LDFLAGS) $(LIBS) + +libgcjx.la: $(libgcjx_la_OBJECTS) $(libgcjx_la_DEPENDENCIES) + @echo $(libgcjx_la_OBJECTS) > libgcjx.objectlist; + @echo $(libgcjx_la_LIBADD) >> libgcjx.objectlist; + $(libgcjx_la_LINK) -objectlist libgcjx.objectlist -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS) + .class.h: $(GCJH) -classpath $(top_builddir) $(basename $<) -- 2.30.2