From 5355744955d7ce1681bfd6fdc613abe0f28659ed Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Tue, 24 Feb 2009 10:04:58 +0100 Subject: [PATCH] improve GJC support, honour GCJ_FOR_ECJX from env --- Makefile | 6 ++- package/Makefile.in | 9 ++++ toolchain/dependencies/dependencies.sh | 17 +++++--- .../4.3.3/410-prefer-GCJ_FOR_ECJX-from-env.patch | 51 ++++++++++++++++++++++ toolchain/gcc/Config.in | 9 +++- 5 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 toolchain/gcc/4.3.3/410-prefer-GCJ_FOR_ECJX-from-env.patch diff --git a/Makefile b/Makefile index 721b6c5..b392e46 100644 --- a/Makefile +++ b/Makefile @@ -92,6 +92,9 @@ endif ifndef HOSTCXX HOSTCXX:=g++ endif +ifndef HOSTGCJ +HOSTGCJ:=gcj +endif ifndef HOSTFC HOSTFC:=gfortran endif @@ -111,6 +114,7 @@ HOSTAR:=$(shell $(CONFIG_SHELL) -c "which $(HOSTAR)" || type -p $(HOSTAR) || ech HOSTAS:=$(shell $(CONFIG_SHELL) -c "which $(HOSTAS)" || type -p $(HOSTAS) || echo as) HOSTCC:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCC)" || type -p $(HOSTCC) || echo gcc) HOSTCXX:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCXX)" || type -p $(HOSTCXX) || echo g++) +HOSTGCJ:=$(shell $(CONFIG_SHELL) -c "which $(HOSTGCJ)" || type -p $(HOSTGCJ) || echo gcj) HOSTFC:=$(shell $(CONFIG_SHELL) -c "which $(HOSTFC)" || type -p $(HOSTFC) || echo || which g77 || type -p g77 || echo gfortran) HOSTCPP:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCPP)" || type -p $(HOSTCPP) || echo cpp) HOSTLD:=$(shell $(CONFIG_SHELL) -c "which $(HOSTLD)" || type -p $(HOSTLD) || echo ld) @@ -125,7 +129,7 @@ endif ifndef FCFLAGS_FOR_BUILD FCFLAGS_FOR_BUILD:=-g -O2 endif -export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTFC HOSTLD +export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTGCJ HOSTFC HOSTLD ifeq ($(BR2_HAVE_DOT_CONFIG),y) diff --git a/package/Makefile.in b/package/Makefile.in index b205639..7c5c141 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -132,6 +132,7 @@ TARGET_CFLAGS+=-fno-pic -mno-abicalls endif TARGET_CXXFLAGS=$(TARGET_CFLAGS) +TARGET_GCJFLAGS=$(TARGET_CFLAGS) TARGET_FFLAGS=$(TARGET_CFLAGS) TARGET_FCFLAGS=$(TARGET_CFLAGS) TARGET_F77FLAGS=$(TARGET_CFLAGS) @@ -180,6 +181,7 @@ TARGET_AS=$(TARGET_CROSS)as TARGET_CC=$(TARGET_CROSS)gcc TARGET_CPP=$(TARGET_CROSS)cpp TARGET_CXX=$(TARGET_CROSS)g++ +TARGET_GCJ=$(TARGET_CROSS)gcj ifeq ($(BR2_GCC_VERSION_3_4_6),y) TARGET_FC=$(TARGET_CROSS)g77 else @@ -252,6 +254,7 @@ TARGET_CONFIGURE_OPTS=\ GCC="$(TARGET_CC)$(if $(TARGET_CC_FLAGS), $(TARGET_CC_FLAGS))" \ CPP="$(TARGET_CPP)$(if $(TARGET_CC_FLAGS), $(TARGET_CC_FLAGS))" \ CXX="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX)$(if $(TARGET_CXXFLAGS), $(TARGET_CXXFLAGS)))" \ + GCJ="$(if $(BR2_GCC_CROSS_GCJ),$(TARGET_GCJ)$(if $(TARGET_GCJFLAGS), $(TARGET_GCJFLAGS)))" \ FC="$(TARGET_FC)$(if $(TARGET_FC_FLAGS), $(TARGET_FC_FLAGS))" \ RANLIB="$(TARGET_RANLIB)" \ STRIP="$(TARGET_STRIP)" \ @@ -261,6 +264,7 @@ TARGET_CONFIGURE_OPTS=\ CC_FOR_BUILD="$(HOSTCC)" \ GCC_FOR_BUILD="$(HOSTCC)" \ CXX_FOR_BUILD="$(HOSTCXX)" \ + GCJ_FOR_BUILD="$(HOSTGCJ)" \ FC_FOR_BUILD="$(HOSTFC)" \ LD_FOR_BUILD="$(HOSTLD)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ @@ -273,6 +277,7 @@ TARGET_CONFIGURE_OPTS=\ LD_FOR_TARGET="$(TARGET_LD)" \ NM_FOR_TARGET="$(TARGET_NM)" \ CXX_FOR_TARGET="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX))" \ + GCJ_FOR_TARGET="$(if $(BR2_GCC_CROSS_GCJ),$(TARGET_GCJ))" \ DEFAULT_ASSEMBLER="$(TARGET_AS)" \ DEFAULT_LINKER="$(TARGET_LD)" \ LIBTOOL="$(TOOL_BUILD_DIR)/bin/$(LIBTOOL_BINARY)" \ @@ -288,6 +293,7 @@ TARGET_CONFIGURE_ENV:=\ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ CXXFLAGS="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXXFLAGS))" \ + GCJFLAGS="$(if $(BR2_GCC_CROSS_GCJ),$(TARGET_GCJFLAGS))" \ FFLAGS="$(TARGET_FFLAGS)" \ FCFLAGS="$(TARGET_FCFLAGS)" \ F77FLAGS="$(TARGET_F77FLAGS)" \ @@ -301,6 +307,7 @@ HOST_CONFIGURE_OPTS=\ CC="$(HOSTCC)$(if $(HOST_CFLAGS), $(HOST_CFLAGS))" \ GCC="$(HOSTCC)$(if $(HOST_CFLAGS), $(HOST_CFLAGS))" \ CXX="$(HOSTCXX)$(if $(HOST_CXXFLAGS), $(HOST_CXXFLAGS))" \ + GCJ="$(HOSTGCJ)$(if $(HOST_GCJFLAGS), $(HOST_GCJFLAGS))" \ CPP="$(HOSTCPP)$(if $(HOST_CFLAGS), $(HOST_CFLAGS))" \ AR_FOR_BUILD="$(HOSTAR)" \ AS_FOR_BUILD="$(HOSTAS)" \ @@ -308,6 +315,7 @@ HOST_CONFIGURE_OPTS=\ GCC_FOR_BUILD="$(HOSTCC)" \ CPP_FOR_BUILD="$(HOSTCPP)" \ CXX_FOR_BUILD="$(HOSTCXX)" \ + GCJ_FOR_BUILD="$(HOSTGCJ)" \ LD_FOR_BUILD="$(HOSTLD)" \ FC_FOR_BUILD="$(HOSTFC)" \ CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ @@ -321,6 +329,7 @@ HOST_CONFIGURE_OPTS=\ LD_FOR_TARGET="$(TARGET_LD)" \ NM_FOR_TARGET="$(TARGET_NM)" \ CXX_FOR_TARGET="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX))" \ + GCJ_FOR_TARGET="$(if $(BR2_GCC_CROSS_GCJ),$(TARGET_GCJ))" \ RANLIB_FOR_TARGET="$(TARGET_RANLIB)" \ STRIP_FOR_TARGET="$(TARGET_STRIP)" \ OBJCOPY_FOR_TARGET="$(TARGET_OBJCOPY)" \ diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh index b944a50..7496d98 100755 --- a/toolchain/dependencies/dependencies.sh +++ b/toolchain/dependencies/dependencies.sh @@ -26,6 +26,14 @@ if test -n "$CC" ; then fi; echo "CC clean: Ok" +if test -n "$CPP" ; then + echo "CPP clean: FALSE" + /bin/echo -e "\n\nYou must run 'unset CPP' so buildroot can run with"; + /bin/echo -e "a clean environment on your build machine\n"; + exit 1; +fi; +echo "CPP clean: Ok" + if test -n "$CXX" ; then echo "CXX clean: FALSE" /bin/echo -e "\n\nYou must run 'unset CXX' so buildroot can run with"; @@ -34,14 +42,13 @@ if test -n "$CXX" ; then fi; echo "CXX clean: Ok" - -if test -n "$CPP" ; then - echo "CPP clean: FALSE" - /bin/echo -e "\n\nYou must run 'unset CPP' so buildroot can run with"; +if test -n "$GCJ" ; then + echo "GCJ clean: FALSE" + /bin/echo -e "\n\nYou must run 'unset GCJ' so buildroot can run with"; /bin/echo -e "a clean environment on your build machine\n"; exit 1; fi; -echo "CPP clean: Ok" +echo "GCJ clean: Ok" if test -n "$CFLAGS" ; then diff --git a/toolchain/gcc/4.3.3/410-prefer-GCJ_FOR_ECJX-from-env.patch b/toolchain/gcc/4.3.3/410-prefer-GCJ_FOR_ECJX-from-env.patch new file mode 100644 index 0000000..8cac5e9 --- /dev/null +++ b/toolchain/gcc/4.3.3/410-prefer-GCJ_FOR_ECJX-from-env.patch @@ -0,0 +1,51 @@ +If you want to use e.g. gcj-4.4-local for building ecj for your host +and do not have a $cross_host-gcj then bootstrap previously failed. + +libjava/ChangeLog +2009-02-20 Bernhard Reutner-Fischer <> + + * configure.ac (GCJ_FOR_ECJX): Allow override from environment. + * configure: Regenerate. + +diff -rdup gcc-4.3.3.orig/libjava/configure gcc-4.3.3/libjava/configure +--- gcc-4.3.3.orig/libjava/configure 2009-01-24 11:32:29.000000000 +0100 ++++ gcc-4.3.3/libjava/configure 2009-02-20 16:19:18.000000000 +0100 +@@ -5273,14 +5273,15 @@ NATIVE=yes + # Which gcj and host gcj (for ecjx) do we use? + which_gcj=default + host_exeext=${ac_exeext} +-GCJ_FOR_ECJX= ++GCJ_FOR_ECJX=${GCJ_FOR_ECJX} + built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" + if test -n "${with_cross_host}"; then + # We are being configured with a cross compiler. We can't + # use ac_exeext, because that is for the target platform. + NATIVE=no + cross_host_exeext= +- GCJ_FOR_ECJX="${with_cross_host}-gcj" ++ test "x${GCJ_FOR_ECJX}" = "x" && ++ GCJ_FOR_ECJX="${with_cross_host}-gcj" + case "${with_cross_host}" in + *mingw* | *cygwin*) + cross_host_exeext=.exe +diff -rdup gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac +--- gcc-4.3.3.orig/libjava/configure.ac 2008-07-02 23:23:43.000000000 +0200 ++++ gcc-4.3.3/libjava/configure.ac 2009-02-20 16:19:25.000000000 +0100 +@@ -313,14 +313,15 @@ NATIVE=yes + # Which gcj and host gcj (for ecjx) do we use? + which_gcj=default + host_exeext=${ac_exeext} +-GCJ_FOR_ECJX= ++GCJ_FOR_ECJX=${GCJ_FOR_ECJX} + built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`" + if test -n "${with_cross_host}"; then + # We are being configured with a cross compiler. We can't + # use ac_exeext, because that is for the target platform. + NATIVE=no + cross_host_exeext= +- GCJ_FOR_ECJX="${with_cross_host}-gcj" ++ test "x${GCJ_FOR_ECJX}" = "x" && ++ GCJ_FOR_ECJX="${with_cross_host}-gcj" + case "${with_cross_host}" in + *mingw* | *cygwin*) + cross_host_exeext=.exe diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 78e76ae..2a03c69 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -190,6 +190,12 @@ config BR2_GCC_CROSS_CXX help Build a C++ cross-compiler +config BR2_GCC_CROSS_GCJ + bool "Java cross-compiler support" + default n + help + Build a java cross-compiler + config BR2_GCC_CROSS_FORTRAN bool "Fortran cross-compiler support" default n @@ -209,9 +215,10 @@ config BR2_INSTALL_LIBSTDCPP Build/install c++ compiler and libstdc++? config BR2_INSTALL_LIBGCJ - bool "Build/install java compiler and libgcj?" + bool "Build/install Java compiler and runtime?" default n depends on !BR2_avr32 && BR2_INSTALL_LIBSTDCPP + select BR2_GCC_CROSS_GCJ help Build/install java compiler and libgcj? -- 2.11.4.GIT