Commit 18cefb81 authored by Manuel Novoa III 's avatar Manuel Novoa III
Browse files

Use --enable-sjlj-exceptions when configuring gcc so that exception handling

  works for dynamicly linked executables.  Only tested so far on i386 with
  gcc 3.3.2.  But combined with the latest ldso updates, I can now get a
  dynamicly linked java helloworld app to run.
Add a config toggle for building gcj and libgcj.  The build runs fine
  through gcc-final but currently requires hand interventions to build
  gcc-target.  Again, only tested so far on i386.
parent 02096861
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -94,6 +94,11 @@ SOFT_FLOAT:=false
TARGET_OPTIMIZATION=-Os
TARGET_DEBUGGING= #-g

# Currently the unwind stuff seems to work for staticly linked apps but
# not dynamic.  So use setjmp/longjmp exceptions by default.
GCC_USE_SJLJ_EXCEPTIONS:=--enable-sjlj-exceptions
#GCC_USE_SJLJ_EXCEPTIONS:=

# Any additional gcc options you may want to include....
EXTRA_GCC_CONFIG_OPTIONS:=

@@ -108,6 +113,11 @@ MULTILIB:=--enable-multilib
# Build/install c++ compiler and libstdc++?
INSTALL_LIBSTDCPP:=true

# Build/install java compiler and libgcj? (requires c++)
# WARNING!!! DOES NOT BUILD FOR TARGET WITHOUT INTERVENTION!!!  mjn3
#INSTALL_LIBGCJ:=true
INSTALL_LIBGCJ:=false

# For SMP machines some stuff can be run in parallel
#JLEVEL=-j3

@@ -209,6 +219,10 @@ TARGET_SOFT_FLOAT:=
ARCH_FPU_SUFFIX:=
endif

ifeq ($(INSTALL_LIBGCJ),true)
INSTALL_LIBSTDCPP:=true
endif

# WARNING -- uClibc currently disables large file support on cris.
ifeq ("$(strip $(ARCH))","cris")
BUILD_WITH_LARGEFILE:=false
+6 −0
Original line number Diff line number Diff line
@@ -39,11 +39,15 @@ GCC_CAT:=bzcat
#
#############################################################

ifeq ($(INSTALL_LIBGCJ),true)
TARGET_LANGUAGES:=c,c++,java
else
ifeq ($(INSTALL_LIBSTDCPP),true)
TARGET_LANGUAGES:=c,c++
else
TARGET_LANGUAGES:=c
endif
endif

#############################################################
#
@@ -138,6 +142,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched $(STAGING_DIR)/$(REAL_GNU_TAR
		$(DISABLE_NLS) \
		$(MULTILIB) \
		$(SOFT_FLOAT_CONFIG_OPTION) \
		$(GCC_USE_SJLJ_EXCEPTIONS) \
		$(EXTRA_GCC_CONFIG_OPTIONS));
	touch $(GCC_BUILD_DIR2)/.configured

@@ -205,6 +210,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR2)/.installed
		$(DISABLE_NLS) \
		$(MULTILIB) \
		$(SOFT_FLOAT_CONFIG_OPTION) \
		$(GCC_USE_SJLJ_EXCEPTIONS) \
		$(EXTRA_GCC_CONFIG_OPTIONS));
	touch $(GCC_BUILD_DIR3)/.configured