Patch elf2flt to link libz last

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-02-03 22:08:53 -08:00
parent d91277e377
commit fed6287bfa

View File

@ -0,0 +1,294 @@
From 9848b4f5b207d762a75d6cf0ccbb59c6486a1616 Mon Sep 17 00:00:00 2001
From: Alexey Neyman <stilor@att.net>
Date: Fri, 3 Feb 2017 22:01:48 -0800
Subject: [PATCH] Check for libz first
If building statically, linking libz before libbfd results in unresolved symbols
(compress/compressBound in libbfd.a).
Signed-off-by: Alexey Neyman <stilor@att.net>
---
configure | 108 +++++++++++++++++++++++++++++++++--------------------------
configure.ac | 10 +++---
2 files changed, 65 insertions(+), 53 deletions(-)
diff --git a/configure b/configure
index d8d14be..df612cb 100755
--- a/configure
+++ b/configure
@@ -675,6 +675,7 @@ infodir
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -758,6 +759,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
@@ -1010,6 +1012,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1147,7 +1158,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1300,6 +1311,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -3779,14 +3791,14 @@ if test "$ac_binutils_build_dir" != "NONE"; then
test "$ac_binutils_include_dir" = "NONE" && ac_binutils_include_dir="$ac_binutils_build_dir/include"
fi
-if test "$ac_libiberty" = "NONE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objalloc_create in -liberty" >&5
-$as_echo_n "checking for objalloc_create in -liberty... " >&6; }
-if ${ac_cv_lib_iberty_objalloc_create+:} false; then :
+if test "$ac_zlib_prefix" = "NONE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5
+$as_echo_n "checking for deflate in -lz... " >&6; }
+if ${ac_cv_lib_z_deflate+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-liberty $LIBS"
+LIBS="-lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -3796,47 +3808,46 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char objalloc_create ();
+char deflate ();
int
main ()
{
-return objalloc_create ();
+return deflate ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_iberty_objalloc_create=yes
+ ac_cv_lib_z_deflate=yes
else
- ac_cv_lib_iberty_objalloc_create=no
+ ac_cv_lib_z_deflate=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iberty_objalloc_create" >&5
-$as_echo "$ac_cv_lib_iberty_objalloc_create" >&6; }
-if test "x$ac_cv_lib_iberty_objalloc_create" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5
+$as_echo "$ac_cv_lib_z_deflate" >&6; }
+if test "x$ac_cv_lib_z_deflate" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBIBERTY 1
+#define HAVE_LIBZ 1
_ACEOF
- LIBS="-liberty $LIBS"
+ LIBS="-lz $LIBS"
fi
- ac_libiberty=auto
else
- LIBS="$ac_libiberty $LIBS"
+ LIBS="-L$ac_zlib_prefix/lib -lz $LIBS"
fi
-if test "$ac_libbfd" = "NONE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_openr in -lbfd" >&5
-$as_echo_n "checking for bfd_openr in -lbfd... " >&6; }
-if ${ac_cv_lib_bfd_bfd_openr+:} false; then :
+if test "$ac_libiberty" = "NONE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objalloc_create in -liberty" >&5
+$as_echo_n "checking for objalloc_create in -liberty... " >&6; }
+if ${ac_cv_lib_iberty_objalloc_create+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbfd $LIBS"
+LIBS="-liberty $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -3846,47 +3857,47 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char bfd_openr ();
+char objalloc_create ();
int
main ()
{
-return bfd_openr ();
+return objalloc_create ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_bfd_bfd_openr=yes
+ ac_cv_lib_iberty_objalloc_create=yes
else
- ac_cv_lib_bfd_bfd_openr=no
+ ac_cv_lib_iberty_objalloc_create=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bfd_bfd_openr" >&5
-$as_echo "$ac_cv_lib_bfd_bfd_openr" >&6; }
-if test "x$ac_cv_lib_bfd_bfd_openr" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iberty_objalloc_create" >&5
+$as_echo "$ac_cv_lib_iberty_objalloc_create" >&6; }
+if test "x$ac_cv_lib_iberty_objalloc_create" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBBFD 1
+#define HAVE_LIBIBERTY 1
_ACEOF
- LIBS="-lbfd $LIBS"
+ LIBS="-liberty $LIBS"
fi
- ac_libbfd=auto
+ ac_libiberty=auto
else
- LIBS="$ac_libbfd $LIBS"
+ LIBS="$ac_libiberty $LIBS"
fi
-if test "$ac_zlib_prefix" = "NONE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5
-$as_echo_n "checking for deflate in -lz... " >&6; }
-if ${ac_cv_lib_z_deflate+:} false; then :
+if test "$ac_libbfd" = "NONE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_openr in -lbfd" >&5
+$as_echo_n "checking for bfd_openr in -lbfd... " >&6; }
+if ${ac_cv_lib_bfd_bfd_openr+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz $LIBS"
+LIBS="-lbfd $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -3896,37 +3907,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char deflate ();
+char bfd_openr ();
int
main ()
{
-return deflate ();
+return bfd_openr ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_z_deflate=yes
+ ac_cv_lib_bfd_bfd_openr=yes
else
- ac_cv_lib_z_deflate=no
+ ac_cv_lib_bfd_bfd_openr=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5
-$as_echo "$ac_cv_lib_z_deflate" >&6; }
-if test "x$ac_cv_lib_z_deflate" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bfd_bfd_openr" >&5
+$as_echo "$ac_cv_lib_bfd_bfd_openr" >&6; }
+if test "x$ac_cv_lib_bfd_bfd_openr" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBZ 1
+#define HAVE_LIBBFD 1
_ACEOF
- LIBS="-lz $LIBS"
+ LIBS="-lbfd $LIBS"
fi
+ ac_libbfd=auto
else
- LIBS="-L$ac_zlib_prefix/lib -lz $LIBS"
+ LIBS="$ac_libbfd $LIBS"
fi
bfd_include_dir=
diff --git a/configure.ac b/configure.ac
index dcf0f92..7dcc082 100644
--- a/configure.ac
+++ b/configure.ac
@@ -114,6 +114,11 @@ if test "$ac_binutils_build_dir" != "NONE"; then
fi
dnl Checks for libraries.
+if test "$ac_zlib_prefix" = "NONE"; then
+ AC_CHECK_LIB(z, deflate)
+else
+ LIBS="-L$ac_zlib_prefix/lib -lz $LIBS"
+fi
if test "$ac_libiberty" = "NONE"; then
AC_CHECK_LIB(iberty, objalloc_create)
ac_libiberty=auto
@@ -126,11 +131,6 @@ if test "$ac_libbfd" = "NONE"; then
else
LIBS="$ac_libbfd $LIBS"
fi
-if test "$ac_zlib_prefix" = "NONE"; then
- AC_CHECK_LIB(z, deflate)
-else
- LIBS="-L$ac_zlib_prefix/lib -lz $LIBS"
-fi
bfd_include_dir=
if test "$ac_bfd_include_dir" != "NONE"; then
--
2.9.3