aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-03-31 03:53:41 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-03-31 03:53:55 -0700
commit0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd (patch)
treed340d7c5a7897eef99004fa960d0086f1801ce8a
parentb38f7f340bf021f9ad017cc88beddb9b0eaae06b (diff)
downloadfsf-binutils-gdb-0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd.zip
fsf-binutils-gdb-0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd.tar.gz
fsf-binutils-gdb-0ee42ecde7aadb3e68ae5b944f7b1b6a859ebcfd.tar.bz2
Add --with-system-zlib in binutils
This patch adds --with-system-zlib and remove --with-zlib in binutils. * Makefile.am (ZLIB): New. (ZLIBINC): Likewise. (AM_CFLAGS): Add $(ZLIBINC). (readelf_LDADD): Add $(ZLIB). * configure.ac (AM_ZLIB): Removed. (zlibdir): New. AC_SUBST. (zlibinc): Likewise. Add --with-system-zlib. * readelf.c: Don't check HAVE_ZLIB_H to include <zlib.h>. (uncompress_section_contents): Don't check HAVE_ZLIB_H. * Makefile.in: Regenerated. * config.in: Likewise. * configure: Likewise.
-rw-r--r--binutils/ChangeLog14
-rw-r--r--binutils/Makefile.am10
-rw-r--r--binutils/Makefile.in13
-rw-r--r--binutils/config.in3
-rwxr-xr-xbinutils/configure98
-rw-r--r--binutils/configure.ac14
-rw-r--r--binutils/doc/Makefile.in3
-rw-r--r--binutils/readelf.c10
8 files changed, 59 insertions, 106 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index a3249ad..e0a3d51 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,17 @@
+2015-03-31 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am (ZLIB): New.
+ (ZLIBINC): Likewise.
+ (AM_CFLAGS): Add $(ZLIBINC).
+ (readelf_LDADD): Add $(ZLIB).
+ * configure.ac (AM_ZLIB): Removed.
+ (zlibdir): New. AC_SUBST.
+ (zlibinc): Likewise.
+ Add --with-system-zlib.
+ * Makefile.in: Regenerated.
+ * config.in: Likewise.
+ * configure: Likewise.
+
2015-03-19 Nick Clifton <nickc@redhat.com>
* readelf.c (get_machine_flags): Decode RL78's G13 and G14 flags.
diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index 51dd8e4..b55dbd6 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -40,9 +40,15 @@ LEXLIB = @LEXLIB@
am__skiplex =
am__skipyacc =
+# This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
+# -I../zlib, unless we were configured with --with-system-zlib, in which
+# case both are empty.
+ZLIB = @zlibdir@ -lz
+ZLIBINC = @zlibinc@
+
WARN_CFLAGS = @WARN_CFLAGS@
NO_WERROR = @NO_WERROR@
-AM_CFLAGS = $(WARN_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
LIBICONV = @LIBICONV@
# these two are almost the same program
@@ -230,7 +236,7 @@ objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
strings_SOURCES = strings.c $(BULIBS)
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
-readelf_LDADD = $(LIBINTL) $(LIBIBERTY)
+readelf_LDADD = $(LIBINTL) $(LIBIBERTY) $(ZLIB)
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index aaf4d51..d675b79 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -73,7 +73,6 @@ DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \
rcparse.h rcparse.c $(srcdir)/../depcomp $(srcdir)/../ylwrap
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
- $(top_srcdir)/../config/zlib.m4 \
$(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
@@ -432,6 +431,8 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+zlibdir = @zlibdir@
+zlibinc = @zlibinc@
AUTOMAKE_OPTIONS = dejagnu no-dist foreign
ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
SUBDIRS = doc po
@@ -441,7 +442,13 @@ tooldir = $(exec_prefix)/$(target_alias)
# maintainer mode is disabled. Avoid this.
am__skiplex =
am__skipyacc =
-AM_CFLAGS = $(WARN_CFLAGS)
+
+# This is where we get zlib from. zlibdir is -L../zlib and zlibinc is
+# -I../zlib, unless we were configured with --with-system-zlib, in which
+# case both are empty.
+ZLIB = @zlibdir@ -lz
+ZLIBINC = @zlibinc@
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
# these two are almost the same program
AR_PROG = ar
@@ -575,7 +582,7 @@ size_SOURCES = size.c $(BULIBS)
objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
strings_SOURCES = strings.c $(BULIBS)
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c $(ELFLIBS)
-readelf_LDADD = $(LIBINTL) $(LIBIBERTY)
+readelf_LDADD = $(LIBINTL) $(LIBIBERTY) $(ZLIB)
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
diff --git a/binutils/config.in b/binutils/config.in
index a0ed034..5174d3e 100644
--- a/binutils/config.in
+++ b/binutils/config.in
@@ -180,9 +180,6 @@
/* Define to 1 if you have the <windows.h> header file. */
#undef HAVE_WINDOWS_H
-/* Define to 1 if you have the <zlib.h> header file. */
-#undef HAVE_ZLIB_H
-
/* Define as const if the declaration of iconv() needs const. */
#undef ICONV_CONST
diff --git a/binutils/configure b/binutils/configure
index b960c19..ad3948c 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -618,6 +618,8 @@ BUILD_NLMCONV
NLMCONV_DEFS
LTLIBICONV
LIBICONV
+zlibinc
+zlibdir
ALLOCA
DEMANGLER_NAME
EXEEXT_FOR_BUILD
@@ -777,7 +779,7 @@ enable_werror
enable_build_warnings
enable_nls
enable_maintainer_mode
-with_zlib
+with_system_zlib
enable_rpath
with_libiconv_prefix
'
@@ -1439,7 +1441,7 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-zlib include zlib support (auto/yes/no) default=auto
+ --with-system-zlib use installed libz
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
@@ -11219,7 +11221,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11222 "configure"
+#line 11224 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11325,7 +11327,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11328 "configure"
+#line 11330 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13536,92 +13538,18 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-# Link in zlib if we can. This allows us to read compressed debug
-# sections. This is used only by readelf.c (objdump uses bfd for
-# reading compressed sections).
+# Use the system's zlib library.
+zlibdir=-L../zlib
+zlibinc="-I\$(srcdir)/../zlib"
- # See if the user specified whether he wants zlib support or not.
+# Check whether --with-system-zlib was given.
+if test "${with_system_zlib+set}" = set; then :
+ withval=$with_system_zlib; zlibdir=
+zlibinc=
-# Check whether --with-zlib was given.
-if test "${with_zlib+set}" = set; then :
- withval=$with_zlib;
-else
- with_zlib=auto
fi
- if test "$with_zlib" != "no"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing zlibVersion" >&5
-$as_echo_n "checking for library containing zlibVersion... " >&6; }
-if test "${ac_cv_search_zlibVersion+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char zlibVersion ();
-int
-main ()
-{
-return zlibVersion ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' z; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
- fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_zlibVersion=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if test "${ac_cv_search_zlibVersion+set}" = set; then :
- break
-fi
-done
-if test "${ac_cv_search_zlibVersion+set}" = set; then :
-
-else
- ac_cv_search_zlibVersion=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_zlibVersion" >&5
-$as_echo "$ac_cv_search_zlibVersion" >&6; }
-ac_res=$ac_cv_search_zlibVersion
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- for ac_header in zlib.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_zlib_h" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_ZLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-fi
-
- if test "$with_zlib" = "yes" -a "$ac_cv_header_zlib_h" != "yes"; then
- as_fn_error "zlib (libz) library was explicitly requested but not found" "$LINENO" 5
- fi
- fi
diff --git a/binutils/configure.ac b/binutils/configure.ac
index 31864ec..0677f9a 100644
--- a/binutils/configure.ac
+++ b/binutils/configure.ac
@@ -201,10 +201,16 @@ fi
AC_CHECK_DECLS([environ, fprintf, getc_unlocked, getenv,
sbrk, snprintf, stpcpy, strnlen, strstr, vsnprintf])
-# Link in zlib if we can. This allows us to read compressed debug
-# sections. This is used only by readelf.c (objdump uses bfd for
-# reading compressed sections).
-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=
+)
+AC_SUBST(zlibdir)
+AC_SUBST(zlibinc)
BFD_BINARY_FOPEN
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
index c828aae..53e40a5 100644
--- a/binutils/doc/Makefile.in
+++ b/binutils/doc/Makefile.in
@@ -56,7 +56,6 @@ subdir = doc
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
- $(top_srcdir)/../config/zlib.m4 \
$(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
@@ -280,6 +279,8 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+zlibdir = @zlibdir@
+zlibinc = @zlibinc@
AUTOMAKE_OPTIONS = cygnus
# What version of the manual you want; "all" includes everything
diff --git a/binutils/readelf.c b/binutils/readelf.c
index adf2a91..17d4fd4 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -43,9 +43,7 @@
#include "sysdep.h"
#include <assert.h>
#include <time.h>
-#ifdef HAVE_ZLIB_H
#include <zlib.h>
-#endif
#ifdef HAVE_WCHAR_H
#include <wchar.h>
#endif
@@ -11956,12 +11954,9 @@ dump_section_as_bytes (Elf_Internal_Shdr * section,
/* Uncompresses a section that was compressed using zlib, in place. */
static int
-uncompress_section_contents (unsigned char **buffer ATTRIBUTE_UNUSED,
- dwarf_size_type *size ATTRIBUTE_UNUSED)
+uncompress_section_contents (unsigned char **buffer,
+ dwarf_size_type *size)
{
-#ifndef HAVE_ZLIB_H
- return FALSE;
-#else
dwarf_size_type compressed_size = *size;
unsigned char * compressed_buffer = *buffer;
dwarf_size_type uncompressed_size;
@@ -12022,7 +12017,6 @@ uncompress_section_contents (unsigned char **buffer ATTRIBUTE_UNUSED,
/* Indicate decompression failure. */
*buffer = NULL;
return 0;
-#endif /* HAVE_ZLIB_H */
}
static int