On 07/07/2011 07:56 PM, Andrew Haley wrote: > On 07/07/11 18:02, David Daney wrote: >> On 07/07/2011 09:57 AM, Matthias Klose wrote: >>> On 07/07/2011 06:51 PM, David Daney wrote: >>>> On 07/07/2011 09:27 AM, Matthias Klose wrote: >>>>> As discussed at the Google GCC gathering, disable the build of static >>>>> libraries >>>>> in libjava, which should cut the build time of libjava by 50%. The static >>>>> libjava build isn't useful out of the box, and I don't see it packaged by >>>>> Linux >>>>> distributions either. >>>>> >>>>> The AC_PROG_LIBTOOL check is needed to get access to the enable_shared >>>>> macro. >>>>> I'm unsure about the check in the switch construct. Taken from >>>>> libtool.m4, and >>>>> determining the value of enable_shared_with_static_runtimes. >>>>> >>>>> Ok for the trunk? >>>>> >>>>> 2011-07-07 Matthias Klose<d...@ubuntu.com> >>>>> >>>>> * Makefile.def (target_modules/libjava): Pass >>>>> $(libjava_disable_static). >>>>> * configure.ac: Check for libtool, pass --disable-static >>>>> in libjava_disable_static. >>>>> * Makefile.in: Regenerate. >>>>> * configure: Likewise. >>>>> >>>> >>>> My autoconf fu is not what it used to be. It is fine if static libraries >>>> are >>>> disabled by default, but it should be possible to enable them from the >>>> configure >>>> command line. It is unclear to me if this patch does that. >>> >>> no. I assume an extra option --enable-static-libjava would be needed. >> >> Not being a libjava maintainer, I cannot force you to add something like >> that as part of the patch, but I think it would be a good idea. > > I think so.
Here is the updated patch, including the --enable-static-libjava option ok for the trunk? Matthias
gcc/ 2011-07-07 Matthias Klose <d...@ubuntu.com> * doc/install.texi: Document --enable-static-libjava. <toplevel> 2011-07-07 Matthias Klose <d...@ubuntu.com> * Makefile.tpl (EXTRA_CONFIGARGS_LIBJAVA): Define. * Makefile.def (target_modules/libjava): Pass $(EXTRA_CONFIGARGS_LIBJAVA). * configure.ac: Check for libtool, pass --disable-static in EXTRA_CONFIGARGS_LIBJAVA, if not configured with --enable-static-libjava. * Makefile.in: Regenerate. * configure: Likewise. Index: gcc/doc/install.texi =================================================================== --- gcc/doc/install.texi (revision 175964) +++ gcc/doc/install.texi (working copy) @@ -1956,6 +1956,10 @@ @item --enable-browser-plugin Build the gcjwebplugin web browser plugin. +@item --enable-static-libjava +Build static libraries in libjava. The default is to only build shared +libraries if the target supports shared libraries. + @table @code @item ansi Use the single-byte @code{char} and the Win32 A functions natively, Index: Makefile.tpl =================================================================== --- Makefile.tpl (revision 175964) +++ Makefile.tpl (working copy) @@ -319,6 +319,8 @@ HOST_LIBELFLIBS = @libelflibs@ HOST_LIBELFINC = @libelfinc@ +EXTRA_CONFIGARGS_LIBJAVA = @EXTRA_CONFIGARGS_LIBJAVA@ + # ---------------------------------------------- # Programs producing files for the BUILD machine # ---------------------------------------------- Index: Makefile.def =================================================================== --- Makefile.def (revision 175964) +++ Makefile.def (working copy) @@ -132,7 +132,8 @@ target_modules = { module= winsup; }; target_modules = { module= libgloss; no_check=true; }; target_modules = { module= libffi; }; -target_modules = { module= libjava; raw_cxx=true; }; +target_modules = { module= libjava; raw_cxx=true; + extra_configure_flags="$(EXTRA_CONFIGARGS_LIBJAVA)"; }; target_modules = { module= zlib; }; target_modules = { module= boehm-gc; }; target_modules = { module= rda; }; Index: configure.ac =================================================================== --- configure.ac (revision 175964) +++ configure.ac (working copy) @@ -443,7 +443,27 @@ ;; esac +AC_ARG_ENABLE(static-libjava, +[AS_HELP_STRING([[--enable-static-libjava[=ARG]]], + [build static libjava @<:@default=no@:>@])], +ENABLE_STATIC_LIBJAVA=$enableval, +ENABLE_STATIC_LIBJAVA=no) +enable_static_libjava= +if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then + enable_static_libjava=yes +fi +AC_PROG_LIBTOOL +if test x$enable_shared = xyes && test x$enable_static_libjava != xyes ; then + case $host_cpu in + cygwin* | mingw* | pw32* | cegcc*) + ;; + *) + EXTRA_CONFIGARGS_LIBJAVA=--disable-static + esac +fi +AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA) + # Disable libmudflap on some systems. if test x$enable_libmudflap = x ; then case "${target}" in