## Compilers and compilation flags.
##
-if BASH_JAR
-bin_SCRIPTS += scripts/jar
-endif
-
## The compiler with whatever flags we want for both -c and -C
## compiles.
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
link.cc defineclass.cc interpret.cc verify.cc \
$(nat_source_files)
+## We need to compile at least the interpreter this way.
+interpret.lo: AM_CXXFLAGS += -fwrapv
+
if USING_BOEHMGC
libgcj_la_SOURCES += boehm.cc
endif
## The mysterious backslash in the grep pattern is consumed by make.
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
- -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
libgcj_la_LIBADD = \
classpath/native/fdlibm/libfdlibm.la \
java/lang/Object.lo \
$(all_packages_source_files:.list=.lo) \
$(bc_objects) \
$(propertyo_files) \
- $(LIBMAGIC) $(LIBFFI) $(ZLIBS) $(GCLIBS)
+ $(LIBFFI) $(ZLIBS) $(GCLIBS)
libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
java/lang/Object.lo \
java/lang/Class.lo \
libgcj_tools_la_SOURCES = classpath/tools/tools.zip
libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes -fsource-filename=$(here)/classpath/tools/all-classes.lst
libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
- -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+ -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
libgcj_tools_la_LINK = $(LIBLINK)
##
## This lets us have one soname in BC objects and another in C++ ABI objects.
libgcj_bc_la_SOURCES = libgcj_bc.c
-libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0
+libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
libgcj_bc_la_LIBADD = libgcj.la
libgcj_bc_la_DEPENDENCIES = libgcj.la
libgcj_bc_la_LINK = $(LIBLINK)
java/lang/reflect/Field.h java/lang/reflect/Method.h \
java/lang/reflect/Proxy.h gnu/gcj/runtime/ExtensionClassLoader.h
-generic_header_files = $(ordinary_header_files) $(xlib_nat_headers)
-
-MYGCJH = gjavah
-
-$(generic_header_files): gcjh.stamp
-
-gcjh.stamp: classpath/lib/compile-classes
-if JAVA_MAINTAINER_MODE
- $(MYGCJH) --cni --all $(srcdir)/classpath/lib \
- --cmdfile=$(srcdir)/headers.txt -d $(srcdir) --force
-endif
- echo > gcjh.stamp
-
inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
java/io/ObjectInputStream$$GetField.h \
java/nio/DirectByteBufferImpl$$ReadWrite.h \
gnu/java/nio/PipeImpl$$SinkChannelImpl.h \
gnu/java/nio/PipeImpl$$SourceChannelImpl.h
+generic_header_files = $(ordinary_header_files) $(inner_nat_headers) \
+ $(xlib_nat_headers)
+
+MYGCJH = gjavah
+
+$(generic_header_files): gcjh.stamp
+
+gcjh.stamp: classpath/lib/compile-classes
+if JAVA_MAINTAINER_MODE
+ $(MYGCJH) --cni --all $(srcdir)/classpath/lib \
+ --cmdfile=$(srcdir)/headers.txt -d $(srcdir) --force
+endif
+ echo > gcjh.stamp
+
nat_headers = $(ordinary_header_files) $(inner_nat_headers)
nat_headers_install = $(ordinary_header_files)
## libtool's .la file, this prevents libtool resetting the lib again
## later.
@echo Installing dummy lib libgcj_bc.so.1.0.0; \
- rm $(toolexeclibdir)/libgcj_bc.so; \
- mv $(toolexeclibdir)/libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
$(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
- -o $(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
- rm $(toolexeclibdir)/libgcj_bc.so.1; \
- $(LN_S) libgcj_bc.so.1.0.0 $(toolexeclibdir)/libgcj_bc.so.1; \
- rm $(toolexeclibdir)/libgcj_bc.la;
+ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+ $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
endif
if BUILD_ECJ1
if NATIVE
- mv $(DESTDIR)$(libexecsubdir)/ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext)
+ mv $(DESTDIR)$(libexecsubdir)/`echo ecjx | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext)
else !NATIVE
## Undo the prepending of the target prefix
- mv $(DESTDIR)$(libexecsubdir)/$(target_noncanonical)-ecjx$(EXEEXT) $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext)
+ mv $(DESTDIR)$(libexecsubdir)/$(target_noncanonical)-`echo ecjx | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext)
endif !NATIVE
endif BUILD_ECJ1
ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
else !ENABLE_SHARED
## Use ecj.jar at compile time.
-ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
+ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
endif !ENABLE_SHARED
ecjx_LDADD = -L$(here)/.libs libgcj.la
ecjx_DEPENDENCIES = libgcj.la libgcj.spec
+if USE_LIBGCJ_BC
+ecjx_DEPENDENCIES += libgcj_bc.la
+endif
else !NATIVE
gnu/java/net/natPlainDatagramSocketImpl.cc \
gnu/java/net/natPlainSocketImpl.cc \
gnu/java/net/protocol/core/natCoreInputStream.cc \
-gnu/java/nio/natPipeImpl.cc \
-gnu/java/nio/natSelectorImpl.cc \
+gnu/java/nio/natVMPipe.cc \
+gnu/java/nio/natVMSelector.cc \
gnu/java/nio/natNIOServerSocket.cc \
gnu/java/nio/natVMChannel.cc \
gnu/java/nio/channels/natFileChannelImpl.cc \
java/io/natFile.cc \
-java/io/natObjectInputStream.cc \
+java/io/natVMObjectInputStream.cc \
java/io/natVMObjectStreamClass.cc \
java/lang/management/natVMManagementFactory.cc \
java/lang/natCharacter.cc \
java/lang/natClass.cc \
java/lang/natClassLoader.cc \
java/lang/natConcreteProcess.cc \
-java/lang/natDouble.cc \
-java/lang/natFloat.cc \
+java/lang/natVMDouble.cc \
+java/lang/natVMFloat.cc \
java/lang/natMath.cc \
java/lang/natObject.cc \
java/lang/natRuntime.cc \
java/net/natVMNetworkInterface.cc \
java/net/natVMURLConnection.cc \
java/nio/channels/natVMChannels.cc \
-java/nio/natDirectByteBufferImpl.cc \
+java/nio/natVMDirectByteBufferImpl.cc \
java/security/natVMAccessController.cc \
java/security/natVMAccessControlState.cc \
java/text/natCollator.cc \