PATCH: Update --with-system-zlib

Message ID CAMe9rOpDXyqznHsk_kTBqRtTFXogWNrNK40jJ5WmiA30=ZYyCg@mail.gmail.com
State New, archived
Headers

Commit Message

H.J. Lu April 1, 2015, 12:04 p.m. UTC
  On Tue, Mar 31, 2015 at 10:04 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Mar 31, 2015 at 10:01 AM, Mike Frysinger <vapier@gentoo.org> wrote:
>> On 31 Mar 2015 09:56, H.J. Lu wrote:
>>> On Tue, Mar 31, 2015 at 9:41 AM, Mike Frysinger wrote:
>>> > On 31 Mar 2015 03:10, H.J. Lu wrote:
>>> >> On Mon, Mar 30, 2015 at 11:13 PM, Mike Frysinger wrote:
>>> >> > On 26 Mar 2015 08:57, H.J. Lu wrote:
>>> >> >> --- a/bfd/configure.ac
>>> >> >> +++ b/bfd/configure.ac
>>> >> >>
>>> >> >> -# Link in zlib if we can.  This allows us to read compressed debug sections.
>>> >> >> -# This is used only by compress.c.
>>> >> >> -AM_ZLIB
>>> >> >> +# Use the system's zlib library.
>>> >> >> +zlibdir=-L../zlib
>>> >> >> +zlibinc="-I\$(srcdir)/../zlib"
>>> >> >> +AC_ARG_WITH(system-zlib,
>>> >> >> +[AS_HELP_STRING([--with-system-zlib], [use installed libz])],
>>> >> >> +zlibdir=
>>> >> >> +zlibinc=
>>> >> >> +)
>>> >> >
>>> >> > this is wrong.  the 3rd arg is whether the option was specified, not that the
>>> >> > option was disabled.  you need to check $withval is equal to "no" (or not equal
>>> >> > to "yes").
>>> >>
>>> >> That is what gcc/configure.ac has and it works for me.
>>> >
>>> > then gcc/configure.ac is also broken.  whether "it works for me" is
>>> > irrelevant -- simply read the code and you'll see it's wrong.  if you
>>> > pass --without-system-zlib the code wrongly behaves as if you passed
>>> > --with-system-zlib.
>>> >
>>> > i mention this because it is breaking my test builds.  not that that
>>> > really matters -- the code is clearly incorrect.
>>>
>>> We should fix zlib.m4 and use it in gcc/configure.ac.
>>
>> sure; i await your patches ;).  i'm not trying to point fingers here for
>> pointing's sake -- binutils & gdb were working before and now they're broken,
>> and they broke due to the zlib patches you merged.  so i think it's reasonable
>> to expect you to drive further fixes (probably across gcc) even though the bug
>> has existed in gcc for sometime.
>
> Sure.  I have put it in my queue.
>
> Sorry for the inconvenience.
>

I checked the enclosed patches to update --with-system-zlib.  They fix

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65645

in binutils-gdb tree and add --with-system-zlib to top level configure --help.
  

Comments

Mike Frysinger April 1, 2015, 4:54 p.m. UTC | #1
On 01 Apr 2015 05:04, H.J. Lu wrote:
> --- a/config/zlib.m4
> +++ b/config/zlib.m4
> @@ -9,8 +9,10 @@ AC_DEFUN([AM_ZLIB],
>    zlibinc="-I\$(srcdir)/../zlib"
>    AC_ARG_WITH(system-zlib,
>    [AS_HELP_STRING([--with-system-zlib], [use installed libz])],
> -  zlibdir=
> -  zlibinc=
> +  if test x$with_system_zlib = xyes ; then
> +    zlibdir=
> +    zlibinc=
> +  fi
>    )

this is inside the 3rd arg, so normally you check $withval.  this code will 
still work as the generated shell does:
if test "${with_system_zlib+set}" = set; then :
  withval=$with_system_zlib; [3rd arg content]
fi

>  bfd/ChangeLog      | 4 ++++
>  bfd/configure      | 6 ++++--
>  binutils/ChangeLog | 4 ++++
>  binutils/configure | 6 ++++--
>  gas/ChangeLog      | 4 ++++
>  gas/configure      | 6 ++++--
>  gdb/ChangeLog      | 4 ++++
>  gdb/configure      | 6 ++++--

you need to regenerate the sim tree too
-mike
  
Bernhard Reutner-Fischer April 1, 2015, 5:05 p.m. UTC | #2
On April 1, 2015 6:54:31 PM GMT+02:00, Mike Frysinger <vapier@gentoo.org> wrote:
>On 01 Apr 2015 05:04, H.J. Lu wrote:
>> --- a/config/zlib.m4
>> +++ b/config/zlib.m4
>> @@ -9,8 +9,10 @@ AC_DEFUN([AM_ZLIB],
>>    zlibinc="-I\$(srcdir)/../zlib"
>>    AC_ARG_WITH(system-zlib,
>>    [AS_HELP_STRING([--with-system-zlib], [use installed libz])],
>> -  zlibdir=
>> -  zlibinc=
>> +  if test x$with_system_zlib = xyes ; then
>> +    zlibdir=
>> +    zlibinc=
>> +  fi
>>    )
>
>this is inside the 3rd arg, so normally you check $withval.  this code
>will 
>still work as the generated shell does:
>if test "${with_system_zlib+set}" = set; then :

Why doesn't this expand to test -n "${with_system_zlib+set}"
nowadays, BTW? Would be faster to parse and supposedly sums up quite a bit, fwiw.

Cheers,

>  withval=$with_system_zlib; [3rd arg content]
>fi
>
>>  bfd/ChangeLog      | 4 ++++
>>  bfd/configure      | 6 ++++--
>>  binutils/ChangeLog | 4 ++++
>>  binutils/configure | 6 ++++--
>>  gas/ChangeLog      | 4 ++++
>>  gas/configure      | 6 ++++--
>>  gdb/ChangeLog      | 4 ++++
>>  gdb/configure      | 6 ++++--
>
>you need to regenerate the sim tree too
>-mike
  
H.J. Lu April 1, 2015, 5:16 p.m. UTC | #3
On Wed, Apr 1, 2015 at 9:54 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> On 01 Apr 2015 05:04, H.J. Lu wrote:
>> --- a/config/zlib.m4
>> +++ b/config/zlib.m4
>> @@ -9,8 +9,10 @@ AC_DEFUN([AM_ZLIB],
>>    zlibinc="-I\$(srcdir)/../zlib"
>>    AC_ARG_WITH(system-zlib,
>>    [AS_HELP_STRING([--with-system-zlib], [use installed libz])],
>> -  zlibdir=
>> -  zlibinc=
>> +  if test x$with_system_zlib = xyes ; then
>> +    zlibdir=
>> +    zlibinc=
>> +  fi
>>    )
>
> this is inside the 3rd arg, so normally you check $withval.  this code will
> still work as the generated shell does:
> if test "${with_system_zlib+set}" = set; then :
>   withval=$with_system_zlib; [3rd arg content]
> fi
>
>>  bfd/ChangeLog      | 4 ++++
>>  bfd/configure      | 6 ++++--
>>  binutils/ChangeLog | 4 ++++
>>  binutils/configure | 6 ++++--
>>  gas/ChangeLog      | 4 ++++
>>  gas/configure      | 6 ++++--
>>  gdb/ChangeLog      | 4 ++++
>>  gdb/configure      | 6 ++++--
>
> you need to regenerate the sim tree too
> -mike

I pushed it onto maser.
  
Mike Frysinger April 1, 2015, 5:17 p.m. UTC | #4
On 01 Apr 2015 19:05, Bernhard Reutner-Fischer wrote:
> On April 1, 2015 6:54:31 PM GMT+02:00, Mike Frysinger wrote:
> >On 01 Apr 2015 05:04, H.J. Lu wrote:
> >> --- a/config/zlib.m4
> >> +++ b/config/zlib.m4
> >> @@ -9,8 +9,10 @@ AC_DEFUN([AM_ZLIB],
> >>    zlibinc="-I\$(srcdir)/../zlib"
> >>    AC_ARG_WITH(system-zlib,
> >>    [AS_HELP_STRING([--with-system-zlib], [use installed libz])],
> >> -  zlibdir=
> >> -  zlibinc=
> >> +  if test x$with_system_zlib = xyes ; then
> >> +    zlibdir=
> >> +    zlibinc=
> >> +  fi
> >>    )
> >
> >this is inside the 3rd arg, so normally you check $withval.  this code
> >will 
> >still work as the generated shell does:
> >if test "${with_system_zlib+set}" = set; then :
> 
> Why doesn't this expand to test -n "${with_system_zlib+set}"
> nowadays, BTW? Would be faster to parse and supposedly sums up quite a bit, fwiw.

question for the autoconf list ?

although note that this is autoconf-2.64 as that is what the tree has locked 
itself to currently.
-mike
  

Patch

From cf39cfc52ebd683d55fc396a77355f34b5094c04 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 1 Apr 2015 04:57:28 -0700
Subject: [PATCH 3/3] Add --with-system-zlib to top level configure

The top level configure supports --with-system-zlib.  This patch makes
configure --help to display --with-system-zlib.

	* configure.ac: Add --with-system-zlib.
	* configure: Regenerated.
---
 ChangeLog    | 5 +++++
 configure    | 8 ++++++++
 configure.ac | 2 ++
 3 files changed, 15 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 37450f4..457a6bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@ 
+2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* configure.ac: Add --with-system-zlib.
+	* configure: Regenerated.
+
 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* src-release.sh: Don't configure with  --with-target-subdir=.
diff --git a/configure b/configure
index b719d38..97250fa 100755
--- a/configure
+++ b/configure
@@ -747,6 +747,7 @@  ospace_frag'
 ac_user_opts='
 enable_option_checking
 with_build_libsubdir
+with_system_zlib
 enable_as_accelerator_for
 enable_offload_targets
 enable_gold
@@ -1518,6 +1519,7 @@  Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-build-libsubdir=DIR  Directory where to find libraries for build system
+  --with-system-zlib      use installed libz
   --with-mpc=PATH         specify prefix directory for installed MPC package.
                           Equivalent to --with-mpc-include=PATH/include plus
                           --with-mpc-lib=PATH/lib
@@ -2854,6 +2856,12 @@  if test x$with_gnu_as = xno ; then
 fi
 
 use_included_zlib=
+
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+  withval=$with_system_zlib;
+fi
+
 # Make sure we don't let ZLIB be added if we didn't want it.
 if test x$with_system_zlib = xyes ; then
   use_included_zlib=no
diff --git a/configure.ac b/configure.ac
index a4e4c7d..ef5f5b1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -245,6 +245,8 @@  if test x$with_gnu_as = xno ; then
 fi
 
 use_included_zlib=
+AC_ARG_WITH(system-zlib,
+[AS_HELP_STRING([--with-system-zlib], [use installed libz])])
 # Make sure we don't let ZLIB be added if we didn't want it.
 if test x$with_system_zlib = xyes ; then
   use_included_zlib=no
-- 
2.1.0