Use --enable-sjlj-exceptions when configuring gcc so that exception handling
authorManuel Novoa III <mjn3@codepoet.org>
Wed, 11 Feb 2004 03:32:34 +0000 (03:32 -0000)
committerManuel Novoa III <mjn3@codepoet.org>
Wed, 11 Feb 2004 03:32:34 +0000 (03:32 -0000)
  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.

Makefile
make/gcc-uclibc-3.3.mk

index 9842a510a9536e7fcdbc463d83b3f659a0501cea..fabca35bfd729ccc758ca0046e47ff5259bca98d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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
index 2a6fedb6ec7329ae558965403b7495460d03fe46..93c92318b08f4495b701fa3eb06c9449d16b5477 100644 (file)
@@ -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