public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Matthias Klose <doko@ubuntu.com>
To: java-patches@gcc.gnu.org
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [patch] Disable static build for libjava
Date: Thu, 07 Jul 2011 20:27:00 -0000	[thread overview]
Message-ID: <4E16158D.3060206@ubuntu.com> (raw)
In-Reply-To: <4E15F34D.7050800@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 1741 bytes --]

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


[-- Attachment #2: j.diff --]
[-- Type: text/x-diff, Size: 2935 bytes --]

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

  parent reply	other threads:[~2011-07-07 20:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-07 16:30 Matthias Klose
2011-07-07 16:58 ` David Daney
2011-07-07 16:58   ` Matthias Klose
2011-07-07 17:05     ` David Daney
     [not found]       ` <4E15F34D.7050800@redhat.com>
2011-07-07 20:27         ` Matthias Klose [this message]
2011-07-07 20:27           ` Jakub Jelinek
2011-07-07 20:44             ` Ralf Wildenhues
2011-07-09 16:48               ` Matthias Klose
2011-07-16  7:05                 ` Ralf Wildenhues

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E16158D.3060206@ubuntu.com \
    --to=doko@ubuntu.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=java-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).