This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Link libffi as convenience library
- To: java-patches at gcc dot gnu dot org
- Subject: Link libffi as convenience library
- From: Bryce McKinlay <bryce at albatross dot co dot nz>
- Date: Thu, 12 Apr 2001 21:23:00 +1200
We were bringing in ffitest.lo from libffi. This resulted in amusing
behaviour when the "--main" flag to gcj was omitted, because there was
a main() in libgcj itself. This patch builds a libffi convenience
library which only contains the proper code, fixing the problem.
regards
[ bryce ]
2001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
* Makefile.am: Make a libtool convenience library.
* Makefile.am (libffi_files): Removed.
(libgcj.la): Link libffi as a convenience library instead of
refering to its object files directly.
Index: libffi/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libffi/Makefile.am,v
retrieving revision 1.8.4.4
diff -u -r1.8.4.4 Makefile.am
--- Makefile.am 2001/03/27 00:58:22 1.8.4.4
+++ Makefile.am 2001/04/12 08:28:14
@@ -80,6 +80,7 @@
endif
toolexeclib_LTLIBRARIES = libffi.la
+noinst_LTLIBRARIES = libfficonvenience.la
noinst_PROGRAMS = ffitest
@@ -104,33 +105,43 @@
src/raw_api.c src/java_raw_api.c
if MIPS_GCC
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
endif
if MIPS_SGI
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
endif
if X86
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
endif
if X86_WIN32
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
endif
if SPARC
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
endif
if ALPHA
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
endif
if IA64
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
endif
if M68K
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
endif
if POWERPC
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
endif
if ARM
libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
endif
AM_CFLAGS = -fexceptions
Index: libjava/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.129.2.6
diff -u -r1.129.2.6 Makefile.am
--- Makefile.am 2001/04/04 23:35:57 1.129.2.6
+++ Makefile.am 2001/04/12 08:28:14
@@ -131,9 +131,6 @@
$(built_java_source_files:.java=.lo)
x_javao_files = $(x_java_source_files:.java=.lo)
-## Extract the libffi object file names.
-libffi_files = `find ../libffi/ \-name '*.lo'`
-
libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
resolve.cc defineclass.cc interpret.cc name-finder.cc \
$(nat_source_files)
@@ -143,11 +140,10 @@
$(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL)
libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \
- $(THREADOBJS) $(libffi_files)
+ $(THREADOBJS)
# 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) $(THREADLIBS) $(LIBLTDL) \
+libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \
## The mysterious backslash is consumed by make.
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LINK = $(LIBLINK)
@@ -157,7 +153,6 @@
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@ \
- -L$(here)/../libstdc++-v3/libsupc++ -lsupc++ \
-rpath $(toolexeclibdir) \
## The mysterious backslash is consumed by make.
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
@@ -267,13 +262,16 @@
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)
+ $(libgcj_la_LINK) -objectlist libgcj.objectlist \
+ ../libstdc++-v3/libsupc++/libsupc++convenience.la \
+ ../libffi/libfficonvenience.la \
+ -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)
-
+ $(libgcjx_la_LINK) -objectlist libgcjx.objectlist \
+ -rpath $(toolexeclibdir) $(libgcjx_la_LDFLAGS) $(LIBS)
## ################################################################