This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Disable static build for libjava


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<doko@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  <doko@ubuntu.com>

	* doc/install.texi: Document --enable-static-libjava.

 
<toplevel>

2011-07-07  Matthias Klose  <doko@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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]