diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2004-02-11 03:32:34 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2004-02-11 03:32:34 +0000 |
commit | 18cefb81d1b7374131a9c8cc4cdf63188914994e (patch) | |
tree | e3760dfae2b083f2d185a3f4eda41853cc136ab0 | |
parent | 0209686130ce8721ddc03f481a39940dbbbb82cb (diff) | |
download | buildroot-novena-18cefb81d1b7374131a9c8cc4cdf63188914994e.tar.gz buildroot-novena-18cefb81d1b7374131a9c8cc4cdf63188914994e.zip |
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.
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | make/gcc-uclibc-3.3.mk | 6 |
2 files changed, 20 insertions, 0 deletions
@@ -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 diff --git a/make/gcc-uclibc-3.3.mk b/make/gcc-uclibc-3.3.mk index 2a6fedb6e..93c92318b 100644 --- a/make/gcc-uclibc-3.3.mk +++ b/make/gcc-uclibc-3.3.mk @@ -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 |