This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA] PR13946 [1/3] toplevel configure/makefile objc/boehm-gc
- From: David Ayers <d dot ayers at inode dot at>
- To: Paolo Bonzini <paolo dot bonzini at lu dot unisi dot ch>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 20 May 2006 16:06:34 +0200
- Subject: Re: [RFA] PR13946 [1/3] toplevel configure/makefile objc/boehm-gc
- References: <43D4BDDA.5030109@inode.at> <446BF26C.60407@inode.at> <446C1CFA.9080504@lu.unisi.ch>
Paolo Bonzini schrieb:
>
> An alternative possibility is this:
> - get rid of boehm-gc within the libgcj variable.
> - readd boehm-gc to every noconfigdirs="$noconfigdirs ${libgcj}" line of
> configure.in; later we can refine this to include only those systems
> where boehm-gc is not working.
> - put the AC_ARG_ENABLE after the last such line of configure.in, and
> raise an error there if noconfigdirs includes boehm-gc
> - add another "if", after the AC_ARG_ENABLE, that prevents boehm-gc from
> building if enable_objc_gc is not specified and target_configdirs does
> not include libgcj.
>
> Actually, the last step is not necessary as, in the worst case, it will
> cause an unnecessary build of boehm-gc. If people do not like this (as
> I think), I guess your patch is good enough with the libgcj_saved change
> (but I cannot approve it).
After clearing up some of my confusion about
--disable-libgcj/--enable-libgcj, I think I've got most of this
alternative now.
Instead of searching for libgcj in target_configdirs (I don't think
libgcj is ever in there, yet even if I searched for target-libjava it
wasn't clear at which point this should be done), I checked for whether
java was enabled with/without enabled_libgcj and added target-boehm-gc
to noconfigdirs accordingly. Would this be acceptable?
I'll start bootstrapping the attached patch with following configurations:
--enable-languages=c,objc
--enable-languages=c,objc --enable-objc-gc
--enable-languages=c,objc,java
--enable-languages=c,objc,java --enable-objc-gc --disable-libgcj
--enable-objc-gc --disable-libgcj
Any thoughts, further suggestions?
OK, for the trunk if bootstraps and tests pass?
Cheers,
David
2006-05-20 David Ayers <d.ayers@inode.at>
PR libobjc/13946
* Makefile.def: Add dependancies for libobjc which boehm-gc.
* Makefile.in: Regenerate.
* configure.in: Add --enable-objc-gc at toplevel and have it
enable boehm-gc for Objective-C.
Remove target-boehm-gc from libgcj.
Add target-boehm-gc to target_libraries.
Add target-boehm-gc to noconfigdirs where ${libgcj}
is specified.
* configure: Regenerate.
Index: Makefile.def
===================================================================
--- Makefile.def (Revision 113722)
+++ Makefile.def (Arbeitskopie)
@@ -445,7 +445,9 @@
dependencies = { module=all-target-libjava; on=all-target-boehm-gc; };
dependencies = { module=all-target-libjava; on=all-target-qthreads; };
dependencies = { module=all-target-libjava; on=all-target-libffi; };
+dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
+dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
// Target modules in the 'src' repository.
Index: configure.in
===================================================================
--- configure.in (Revision 113722)
+++ configure.in (Arbeitskopie)
@@ -134,7 +134,6 @@
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
- target-boehm-gc \
target-zlib \
target-qthreads \
target-libjava"
@@ -150,6 +149,7 @@
target-libssp \
target-libgcc-math \
target-libgfortran \
+ target-boehm-gc \
${libgcj} \
target-libobjc \
target-libada \
@@ -379,7 +379,7 @@
case "${target}" in
*-*-chorusos)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
powerpc-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
@@ -388,10 +388,10 @@
*-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
*-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
*-*-freebsd*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
@@ -405,13 +405,13 @@
i*86-*-*) ;;
alpha*-*-*) ;;
*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
esac
;;
*-*-kaos*)
# Remove unsupported stuff on all kaOS configurations.
- skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
+ skipdirs="target-libiberty target-boehm-gc ${libgcj} target-libstdc++-v3 target-librx"
skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
noconfigdirs="$noconfigdirs target-libgloss"
@@ -425,25 +425,25 @@
i*86-*-netbsdelf*) ;;
arm*-*-netbsdelf*) ;;
*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
esac
;;
*-*-netware*)
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
+ noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss target-boehm-gc ${libgcj} target-libmudflap"
;;
*-*-rtems*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
# The tpf target doesn't support gdb yet.
*-*-tpf*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-boehm-gc ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
;;
*-*-uclinux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda target-boehm-gc ${libgcj}"
;;
*-*-vxworks*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 target-boehm-gc ${libgcj}"
;;
alpha*-dec-osf*)
# ld works, but does not support shared libraries.
@@ -452,7 +452,7 @@
noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
;;
alpha*-*-*vms*)
- noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
alpha*-*-linux*)
# newlib is not 64 bit ready
@@ -460,16 +460,16 @@
;;
alpha*-*-*)
# newlib is not 64 bit ready
- noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
am33_2.0-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} target-newlib target-libgloss"
;;
sh-*-linux*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} target-newlib target-libgloss"
;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
noconfigdirs="$noconfigdirs target-examples"
noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
@@ -484,12 +484,12 @@
esac
;;
arc-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
arm-semi-aof )
;;
arm-*-coff | strongarm-*-coff | xscale-*-coff)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
noconfigdirs="$noconfigdirs target-libffi target-qthreads"
@@ -499,25 +499,25 @@
noconfigdirs="$noconfigdirs target-libjava target-libobjc"
;;
arm*-*-symbianelf*)
- noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} target-libiberty"
;;
arm-*-pe*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
thumb-*-coff)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
thumb-*-elf)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
thumb-*-pe)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
arm-*-riscix*)
- noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs ld target-libgloss target-boehm-gc ${libgcj}"
;;
avr-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 target-boehm-gc ${libgcj}"
;;
bfin-*-*)
noconfigdirs="$noconfigdirs target-libgloss gdb"
@@ -526,10 +526,10 @@
fi
;;
c4x-*-* | tic4x-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss target-boehm-gc ${libgcj}"
;;
c54x*-*-* | tic54x-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss target-boehm-gc ${libgcj} gcc gdb newlib"
;;
cris-*-* | crisv32-*-*)
unsupported_languages="$unsupported_languages java"
@@ -544,29 +544,29 @@
noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
*)
unsupported_languages="$unsupported_languages fortran"
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} target-newlib target-libgloss";;
esac
;;
crx-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap target-boehm-gc ${libgcj}"
;;
d10v-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss target-boehm-gc ${libgcj}"
;;
d30v-*-*)
- noconfigdirs="$noconfigdirs ${libgcj} gdb"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} gdb"
;;
fr30-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj} gdb"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} gdb"
;;
frv-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
h8300*-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
h8500-*-*)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss target-boehm-gc ${libgcj}"
;;
hppa1.1-*-osf* | hppa1.1-*-bsd* )
;;
@@ -582,15 +582,15 @@
hppa*-*-lites* | \
hppa*-*-openbsd* | \
hppa*64*-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
hppa*-*-*)
# According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
# build on HP-UX 10.20.
- noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
+ noconfigdirs="$noconfigdirs ld shellutils target-boehm-gc ${libgcj}"
;;
i960-*-*)
- noconfigdirs="$noconfigdirs ${libgcj} gdb"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} gdb"
;;
ia64*-*-elf*)
# No gdb support yet.
@@ -598,19 +598,19 @@
;;
ia64*-**-hpux*)
# No gdb or ld support yet.
- noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj} readline mmalloc libgui itcl gdb ld"
;;
i370-*-opened*)
;;
i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-linux*)
# The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
# not build java stuff by default.
case "${target}" in
*-*-*libc1*)
- noconfigdirs="$noconfigdirs ${libgcj}";;
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}";;
esac
# This section makes it possible to build newlib natively on linux.
@@ -626,7 +626,7 @@
;;
i[[3456789]]86-*-mingw32*)
target_configdirs="$target_configdirs target-mingw"
- noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs expect target-libgloss target-boehm-gc ${libgcj}"
# Can't build gdb for mingw32 if not native.
case "${host}" in
@@ -637,7 +637,7 @@
;;
*-*-cygwin*)
target_configdirs="$target_configdirs target-libtermcap target-winsup"
- noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-gperf target-libgloss target-boehm-gc ${libgcj}"
# always build newlib if winsup directory is present.
if test -d "$srcdir/winsup"; then
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
@@ -656,39 +656,39 @@
i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
;;
i[[3456789]]86-*-pe)
- noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-sco3.2v5*)
# The linker does not yet know about weak symbols in COFF,
# and is not configured to handle mixed ELF and COFF.
- noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs ld target-libgloss target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-sco*)
- noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-solaris2*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
i[[3456789]]86-*-sysv4*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-beos*)
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
i[[3456789]]86-*-rdos*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
;;
m32r-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 target-boehm-gc ${libgcj}"
;;
m68k-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
m68k-*-coff*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
mcore-*-pe*)
# The EPOC C++ environment does not support exceptions or rtti,
@@ -700,78 +700,78 @@
unsupported_languages="$unsupported_languages fortran java"
;;
mn10200-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
mn10300-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
mt-*-*)
noconfigdirs="$noconfigdirs sim"
;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-boehm-gc ${libgcj}"
;;
powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
target_configdirs="$target_configdirs target-winsup"
- noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
+ noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv target-boehm-gc ${libgcj}"
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
;;
# This is temporary until we can link against shared libraries
powerpcle-*-solaris*)
- noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
+ noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv target-boehm-gc ${libgcj}"
;;
powerpc-*-beos*)
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
powerpc-*-eabi)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
;;
rs6000-*-lynxos*)
- noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib gprof target-boehm-gc ${libgcj}"
;;
rs6000-*-aix*)
- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-boehm-gc ${libgcj}"
;;
rs6000-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-boehm-gc ${libgcj}"
;;
m68k-apollo-*)
- noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss target-boehm-gc ${libgcj}"
;;
mips*-*-irix5*)
- noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-boehm-gc ${libgcj}"
;;
mips*-*-irix6*)
# Linking libjava exceeds command-line length limits on at least
# IRIX 6.2, but not on IRIX 6.5.
# Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
# <oldham@codesourcery.com>
- noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-boehm-gc ${libgcj}"
;;
mips*-dec-bsd*)
- noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-boehm-gc ${libgcj}"
;;
mips*-*-bsd*)
- noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-libgloss target-boehm-gc ${libgcj}"
;;
mipstx39-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}" # same as generic mips
+ noconfigdirs="$noconfigdirs gprof target-boehm-gc ${libgcj}" # same as generic mips
;;
mips64*-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-boehm-gc ${libgcj}"
;;
mips*-*-linux*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
mips*-*-*)
- noconfigdirs="$noconfigdirs gprof ${libgcj}"
+ noconfigdirs="$noconfigdirs gprof target-boehm-gc ${libgcj}"
;;
romp-*-*)
- noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss target-boehm-gc ${libgcj}"
;;
sh-*-* | sh64-*-*)
case "${host}" in
@@ -780,19 +780,19 @@
i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
*) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
esac
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
sparc-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
sparc64-*-elf*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
sparclite-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
sparc-*-sunos4*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
if test x${is_cross_compiler} != xno ; then
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
else
@@ -800,42 +800,42 @@
fi
;;
sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
;;
v810-*-*)
- noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss target-boehm-gc ${libgcj}"
;;
v850-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
v850e-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
v850ea-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libgloss target-boehm-gc ${libgcj}"
;;
vax-*-vms)
- noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss target-boehm-gc ${libgcj}"
;;
vax-*-*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
xtensa-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
ip2k-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 target-boehm-gc ${libgcj}"
;;
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-lynxos*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-boehm-gc ${libgcj}"
;;
*-*-*)
- noconfigdirs="$noconfigdirs ${libgcj}"
+ noconfigdirs="$noconfigdirs target-boehm-gc ${libgcj}"
;;
esac
@@ -1323,6 +1323,34 @@
fi
done
+# Check for Boehm's garbage collector
+AC_ARG_ENABLE(objc-gc,
+[ --enable-objc-gc enable the use of Boehm's garbage collector with
+ the GNU Objective-C runtime.],
+[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
+ *,objc,*:*:yes:*target-boehm-gc*)
+ AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
+ ;;
+esac])
+
+# Make sure we only build Boehm's garbage collector if required.
+case ,${enable_languages},:${enable_libgcj}:${enable_objc_gc} in
+ *,objc,*:*:yes)
+ # Keep target-boehm-gc if requested for Objective-C.
+ ;;
+ *,java,*:no:*)
+ # Remove target-boehm-gc if libgcj has been disabled explicitly.
+ noconfigdirs="$noconfigdirs target-boehm-gc"
+ ;;
+ *,java,*:*:*)
+ # Keep target-boehm-gc by default for Java.
+ ;;
+ *)
+ # Otherwise remove target-boehm-gc.
+ noconfigdirs="$noconfigdirs target-boehm-gc"
+ ;;
+esac
+
# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
# $build_configdirs and $target_configdirs.
# If we have the source for $noconfigdirs entries, add them to $notsupp.