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
next prev 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).