418cfd0
--- elfutils/backends/ChangeLog
418cfd0
+++ elfutils/backends/ChangeLog
Roland McGrath 9e6cf0d
@@ -111,6 +111,10 @@
bfd3a36
 	* ppc_attrs.c (ppc_check_object_attribute): Handle tag
bfd3a36
 	GNU_Power_ABI_Struct_Return.
bfd3a36
 
5c16b08
+2009-01-23  Roland McGrath  <roland@redhat.com>
5c16b08
+
5c16b08
+	* Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
5c16b08
+
5c16b08
 2008-10-04  Ulrich Drepper  <drepper@redhat.com>
5c16b08
 
5c16b08
 	* i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
Roland McGrath 9e6cf0d
@@ -438,6 +442,11 @@
3025beb
 	* sparc_init.c: Likewise.
3025beb
 	* x86_64_init.c: Likewise.
3025beb
 
80ba80a
+2005-11-22  Roland McGrath  <roland@redhat.com>
80ba80a
+
80ba80a
+	* Makefile.am (LD_AS_NEEDED): New variable, substituted by configure.
80ba80a
+	(libebl_%.so rule): Use it in place of -Wl,--as-needed.
80ba80a
+
80ba80a
 2005-11-19  Roland McGrath  <roland@redhat.com>
80ba80a
 
80ba80a
 	* ppc64_reloc.def: REL30 -> ADDR30.
Roland McGrath 9e6cf0d
@@ -460,6 +469,9 @@
418cfd0
 	* Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
418cfd0
 	(CLEANFILES): Add libebl_$(m).so.
418cfd0
 
418cfd0
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
418cfd0
+	(AM_CFLAGS): Use it in place of -Wextra.
418cfd0
+
418cfd0
 	* ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
418cfd0
 	* ppc64_reloc.def: Likewise.
418cfd0
 
418cfd0
--- elfutils/backends/Makefile.am
418cfd0
+++ elfutils/backends/Makefile.am
ba5f203
@@ -103,7 +103,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
ba5f203
 	$(LINK) -shared -o $(@:.map=.so) \
ba5f203
 		-Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
ba5f203
 		-Wl,--version-script,$(@:.so=.map) \
5c16b08
-		-Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
5c16b08
+		-Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
5c16b08
 	$(textrel_check)
5c16b08
 
ba5f203
 libebl_i386.so: $(cpu_i386)
418cfd0
--- elfutils/backends/Makefile.in
418cfd0
+++ elfutils/backends/Makefile.in
f790d25
@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -194,6 +195,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
418cfd0
 USE_NLS = @USE_NLS@
418cfd0
 VERSION = @VERSION@
418cfd0
+WEXTRA = @WEXTRA@
418cfd0
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -257,7 +259,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(top_srcdir)/libelf -I$(top_srcdir)/libdw
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
0f58b0c
@@ -698,7 +700,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
ba5f203
 	$(LINK) -shared -o $(@:.map=.so) \
ba5f203
 		-Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
ba5f203
 		-Wl,--version-script,$(@:.so=.map) \
5c16b08
-		-Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap)
5c16b08
+		-Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap)
5c16b08
 	$(textrel_check)
5c16b08
 
ba5f203
 libebl_i386.so: $(cpu_i386)
570047f
--- elfutils/ChangeLog
570047f
+++ elfutils/ChangeLog
Roland McGrath c025a9f
@@ -13,6 +13,10 @@
f790d25
 
f790d25
 	* configure.ac (LOCALEDIR, DATADIRNAME): Removed.
f790d25
 
8cafad5
+2009-11-22  Roland McGrath  <roland@redhat.com>
8cafad5
+
8cafad5
+	* configure.ac: Use sed and expr instead of modern bash extensions.
8cafad5
+
8cafad5
 2009-09-21  Ulrich Drepper  <drepper@redhat.com>
8cafad5
 
8cafad5
 	* configure.ac: Update for more modern autoconf.
Roland McGrath c025a9f
@@ -21,6 +25,10 @@
e4d1f5c
 
e4d1f5c
 	* configure.ac (zip_LIBS): Check for liblzma too.
e4d1f5c
 
e4d1f5c
+2009-08-17  Roland McGrath  <roland@redhat.com>
e4d1f5c
+
e4d1f5c
+	* configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works.
e4d1f5c
+
e4d1f5c
 2009-04-19  Roland McGrath  <roland@redhat.com>
e4d1f5c
 
e4d1f5c
 	* configure.ac (eu_version): Round down here, not in version.h macros.
Roland McGrath c025a9f
@@ -32,6 +40,8 @@
fbfe249
 
bfd3a36
 2009-01-23  Roland McGrath  <roland@redhat.com>
bfd3a36
 
5c16b08
+	* configure.ac: Check for __builtin_popcount.
5c16b08
+
bfd3a36
 	* configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
5c16b08
 
bfd3a36
 	* configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
Roland McGrath c025a9f
@@ -112,6 +122,10 @@
a997709
 	* configure.ac: Add dummy automake conditional to get dependencies
a997709
 	for non-generic linker right.  See src/Makefile.am.
a997709
 
80ba80a
+2005-11-22  Roland McGrath  <roland@redhat.com>
80ba80a
+
80ba80a
+	* configure.ac: Check for --as-needed linker option.
80ba80a
+
80ba80a
 2005-11-18  Roland McGrath  <roland@redhat.com>
80ba80a
 
80ba80a
 	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
Roland McGrath c025a9f
@@ -159,6 +173,17 @@
f995fa8
 	* Makefile.am (all_SUBDIRS): Add libdwfl.
f995fa8
 	* configure.ac: Write libdwfl/Makefile.
f995fa8
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
6788433
+
6788433
+	* configure.ac (WEXTRA): Check for -Wextra and set this substitution.
6788433
+
28fe4de
+	* configure.ac: Check for struct stat st_?tim members.
28fe4de
+	* src/strip.c (process_file): Use st_?time if st_?tim are not there.
6788433
+
28fe4de
+	* configure.ac: Check for futimes function.
28fe4de
+	* src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead.
28fe4de
+	(handle_ar) [! HAVE_FUTIMES]: Likewise.
6788433
+
f995fa8
 2005-05-19  Roland McGrath  <roland@redhat.com>
6788433
 
f995fa8
 	* configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
ba5f203
--- elfutils/config/eu.am
ba5f203
+++ elfutils/config/eu.am
ba5f203
@@ -25,11 +25,14 @@
ba5f203
 ## <http://www.openinventionnetwork.com>.
ba5f203
 ##
ba5f203
 
ba5f203
+WEXTRA = @WEXTRA@
ba5f203
+LD_AS_NEEDED = @LD_AS_NEEDED@
ba5f203
+
f790d25
 DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
ba5f203
 INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
ba5f203
 	    $(if $($(*F)_no_Werror),,-Werror) \
ba5f203
-	    $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
ba5f203
+	    $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
ba5f203
 	    $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
ba5f203
 	    $($(*F)_CFLAGS)
ba5f203
 
570047f
--- elfutils/config/Makefile.in
570047f
+++ elfutils/config/Makefile.in
d36848b
@@ -76,6 +76,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -105,6 +106,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
5c16b08
--- elfutils/config.h.in
5c16b08
+++ elfutils/config.h.in
5c16b08
@@ -1,5 +1,8 @@
5c16b08
 /* config.h.in.  Generated from configure.ac by autoheader.  */
5c16b08
 
5c16b08
+/* Have __builtin_popcount. */
5c16b08
+#undef HAVE_BUILTIN_POPCOUNT
5c16b08
+
5c16b08
 /* $libdir subdirectory containing libebl modules. */
5c16b08
 #undef LIBEBL_SUBDIR
5c16b08
 
0f58b0c
@@ -55,4 +58,7 @@
5c16b08
 /* Define for large files, on AIX-style hosts. */
5c16b08
 #undef _LARGE_FILES
5c16b08
 
5c16b08
+/* Stubbed out if missing compiler support. */
5c16b08
+#undef __thread
5c16b08
+
5c16b08
 #include <eu-config.h>
570047f
--- elfutils/configure
570047f
+++ elfutils/configure
0f58b0c
@@ -602,6 +602,8 @@ NEVER_TRUE
f790d25
 base_cpu
f790d25
 NATIVE_LD_FALSE
3cb5dfb
 NATIVE_LD_TRUE
28fe4de
+LD_AS_NEEDED
28fe4de
+WEXTRA
28fe4de
 LEXLIB
28fe4de
 LEX_OUTPUT_ROOT
28fe4de
 LEX
Roland McGrath c025a9f
@@ -3856,6 +3858,130 @@ if test "x$ac_cv_c99" != xyes; then :
Roland McGrath c025a9f
   as_fn_error $? "gcc with C99 support required" "$LINENO" 5
b73b6ec
 fi
b73b6ec
 
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
28fe4de
+$as_echo_n "checking for -Wextra option to $CC... " >&6; }
0f58b0c
+if test "${ac_cv_cc_wextra+set}" = set; then :
bfd3a36
+  $as_echo_n "(cached) " >&6
bfd3a36
+else
b73b6ec
+  old_CFLAGS="$CFLAGS"
b73b6ec
+CFLAGS="$CFLAGS -Wextra"
0f58b0c
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
0f58b0c
+/* end confdefs.h.  */
b73b6ec
+void foo (void) { }
bfd3a36
+_ACEOF
0f58b0c
+if ac_fn_c_try_compile "$LINENO"; then :
b4dfabf
+  ac_cv_cc_wextra=yes
b73b6ec
+else
0f58b0c
+  ac_cv_cc_wextra=no
b73b6ec
+fi
3cb5dfb
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
b73b6ec
+CFLAGS="$old_CFLAGS"
b73b6ec
+fi
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
28fe4de
+$as_echo "$ac_cv_cc_wextra" >&6; }
b73b6ec
+
0f58b0c
+if test "x$ac_cv_cc_wextra" = xyes; then :
b73b6ec
+  WEXTRA=-Wextra
6788433
+else
6788433
+  WEXTRA=-W
b73b6ec
+fi
b73b6ec
+
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
e4d1f5c
+$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
0f58b0c
+if test "${ac_cv_cc_gnu89_inline+set}" = set; then :
e4d1f5c
+  $as_echo_n "(cached) " >&6
e4d1f5c
+else
e4d1f5c
+  old_CFLAGS="$CFLAGS"
e4d1f5c
+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
0f58b0c
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
0f58b0c
+/* end confdefs.h.  */
e4d1f5c
+
e4d1f5c
+void foo (void)
e4d1f5c
+{
e4d1f5c
+  inline void bar (void) {}
e4d1f5c
+  bar ();
e4d1f5c
+}
e4d1f5c
+extern inline void baz (void) {}
e4d1f5c
+
e4d1f5c
+_ACEOF
0f58b0c
+if ac_fn_c_try_compile "$LINENO"; then :
e4d1f5c
+  ac_cv_cc_gnu89_inline=yes
e4d1f5c
+else
0f58b0c
+  ac_cv_cc_gnu89_inline=no
e4d1f5c
+fi
e4d1f5c
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
e4d1f5c
+CFLAGS="$old_CFLAGS"
e4d1f5c
+fi
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
e4d1f5c
+$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
0f58b0c
+if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
e4d1f5c
+  WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
e4d1f5c
+fi
e4d1f5c
+
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
28fe4de
+$as_echo_n "checking for --as-needed linker option... " >&6; }
0f58b0c
+if test "${ac_cv_as_needed+set}" = set; then :
28fe4de
+  $as_echo_n "(cached) " >&6
80ba80a
+else
80ba80a
+  cat > conftest.c <
80ba80a
+int main (void) { return 0; }
80ba80a
+EOF
80ba80a
+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
80ba80a
+			    -fPIC -shared -o conftest.so conftest.c
80ba80a
+			    -Wl,--as-needed 1>&5'
0f58b0c
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
80ba80a
+  (eval $ac_try) 2>&5
80ba80a
+  ac_status=$?
0f58b0c
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
0f58b0c
+  test $ac_status = 0; }; }
80ba80a
+then
80ba80a
+  ac_cv_as_needed=yes
80ba80a
+else
80ba80a
+  ac_cv_as_needed=no
80ba80a
+fi
80ba80a
+rm -f conftest*
80ba80a
+fi
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
28fe4de
+$as_echo "$ac_cv_as_needed" >&6; }
0f58b0c
+if test "x$ac_cv_as_needed" = xyes; then :
80ba80a
+  LD_AS_NEEDED=-Wl,--as-needed
80ba80a
+else
80ba80a
+  LD_AS_NEEDED=
80ba80a
+fi
80ba80a
+
80ba80a
+
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
5c16b08
+$as_echo_n "checking for __builtin_popcount... " >&6; }
0f58b0c
+if test "${ac_cv_popcount+set}" = set; then :
5c16b08
+  $as_echo_n "(cached) " >&6
5c16b08
+else
0f58b0c
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5c16b08
+/* end confdefs.h.  */
80ba80a
+
5c16b08
+int
5c16b08
+main ()
5c16b08
+{
5c16b08
+exit (__builtin_popcount (127));
5c16b08
+  ;
5c16b08
+  return 0;
5c16b08
+}
5c16b08
+_ACEOF
0f58b0c
+if ac_fn_c_try_link "$LINENO"; then :
5c16b08
+  ac_cv_popcount=yes
5c16b08
+else
0f58b0c
+  ac_cv_popcount=no
5c16b08
+fi
0f58b0c
+rm -f core conftest.err conftest.$ac_objext \
0f58b0c
+    conftest$ac_exeext conftest.$ac_ext
5c16b08
+fi
0f58b0c
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
5c16b08
+$as_echo "$ac_cv_popcount" >&6; }
0f58b0c
+if test "x$ac_cv_popcount" = xyes; then :
5c16b08
+
0f58b0c
+$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
5c16b08
+
5c16b08
+fi
5c16b08
+
0f58b0c
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
bfd3a36
 $as_echo_n "checking for __thread support... " >&6; }
0f58b0c
 if test "${ac_cv_tls+set}" = set; then :
Roland McGrath c025a9f
@@ -3892,7 +4018,13 @@ fi
0f58b0c
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
5c16b08
 $as_echo "$ac_cv_tls" >&6; }
0f58b0c
 if test "x$ac_cv_tls" != xyes; then :
Roland McGrath c025a9f
-  as_fn_error $? "__thread support required" "$LINENO" 5
0f58b0c
+  if test "$use_locks" = yes; then :
Roland McGrath c025a9f
+  as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5
5c16b08
+else
5c16b08
+
0f58b0c
+$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
5c16b08
+
5c16b08
+fi
5c16b08
 fi
5c16b08
 
0f58b0c
 # Check whether --enable-largefile was given.
Roland McGrath c025a9f
@@ -4878,7 +5010,7 @@ ac_config_files="$ac_config_files versio
8cafad5
 
8cafad5
 # 1.234<whatever> -> 1234<whatever>
8cafad5
 case "$PACKAGE_VERSION" in
8cafad5
-[0-9].*) eu_version="${PACKAGE_VERSION/./}" ;;
8cafad5
+[0-9].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
Roland McGrath c025a9f
 *)     	   as_fn_error $? "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;;
0f58b0c
 esac
0f58b0c
 case "$eu_version" in
Roland McGrath c025a9f
@@ -4907,7 +5039,7 @@ case "$eu_version" in
8cafad5
 esac
8cafad5
 
8cafad5
 # Round up to the next release API (x.y) version.
8cafad5
-eu_version=$[($eu_version + 999) / 1000]
8cafad5
+eu_version=`expr \( $eu_version + 999 \) / 1000`
8cafad5
 
8cafad5
 cat >confcache <<\_ACEOF
8cafad5
 # This file is a shell script that caches the results of configure
570047f
--- elfutils/configure.ac
570047f
+++ elfutils/configure.ac
Roland McGrath c025a9f
@@ -70,6 +70,54 @@ CFLAGS="$old_CFLAGS"])
a769ac6
 AS_IF([test "x$ac_cv_c99" != xyes],
a769ac6
       AC_MSG_ERROR([gcc with C99 support required]))
a769ac6
 
a769ac6
+AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
a769ac6
+old_CFLAGS="$CFLAGS"
a769ac6
+CFLAGS="$CFLAGS -Wextra"
a769ac6
+AC_COMPILE_IFELSE([void foo (void) { }],
b4dfabf
+		  ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
a769ac6
+CFLAGS="$old_CFLAGS"])
a769ac6
+AC_SUBST(WEXTRA)
f995fa8
+AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W])
a769ac6
+
e4d1f5c
+AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl
e4d1f5c
+old_CFLAGS="$CFLAGS"
e4d1f5c
+CFLAGS="$CFLAGS -fgnu89-inline -Werror"
e4d1f5c
+AC_COMPILE_IFELSE([
e4d1f5c
+void foo (void)
e4d1f5c
+{
e4d1f5c
+  inline void bar (void) {}
e4d1f5c
+  bar ();
e4d1f5c
+}
e4d1f5c
+extern inline void baz (void) {}
e4d1f5c
+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no)
e4d1f5c
+CFLAGS="$old_CFLAGS"])
e4d1f5c
+AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes],
e4d1f5c
+      [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"])
e4d1f5c
+
80ba80a
+AC_CACHE_CHECK([for --as-needed linker option],
80ba80a
+	       ac_cv_as_needed, [dnl
80ba80a
+cat > conftest.c <
80ba80a
+int main (void) { return 0; }
80ba80a
+EOF
80ba80a
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
80ba80a
+			    -fPIC -shared -o conftest.so conftest.c
80ba80a
+			    -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD])
80ba80a
+then
80ba80a
+  ac_cv_as_needed=yes
80ba80a
+else
80ba80a
+  ac_cv_as_needed=no
80ba80a
+fi
80ba80a
+rm -f conftest*])
80ba80a
+AS_IF([test "x$ac_cv_as_needed" = xyes],
80ba80a
+      [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
80ba80a
+AC_SUBST(LD_AS_NEEDED)
80ba80a
+
5c16b08
+AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
5c16b08
+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
5c16b08
+	       ac_cv_popcount=yes, ac_cv_popcount=no)])
5c16b08
+AS_IF([test "x$ac_cv_popcount" = xyes],
5c16b08
+      [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
80ba80a
+
bfd3a36
 AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
bfd3a36
 # Use the same flags that we use for our DSOs, so the test is representative.
bfd3a36
 # Some old compiler/linker/libc combinations fail some ways and not others.
Roland McGrath c025a9f
@@ -85,7 +133,10 @@ static __thread int a; int foo (int b) {
bfd3a36
 CFLAGS="$save_CFLAGS"
bfd3a36
 LDFLAGS="$save_LDFLAGS"])
5c16b08
 AS_IF([test "x$ac_cv_tls" != xyes],
bfd3a36
-      AC_MSG_ERROR([__thread support required]))
5c16b08
+      [AS_IF([test "$use_locks" = yes],
5c16b08
+	     [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
5c16b08
+	     [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
5c16b08
+			[Stubbed out if missing compiler support.])])])
5c16b08
 
f790d25
 dnl This test must come as early as possible after the compiler configuration
f790d25
 dnl tests, because the choice of the file model can (in principle) affect
Roland McGrath c025a9f
@@ -248,7 +299,7 @@ AC_SUBST([eu_version])
8cafad5
 
8cafad5
 # 1.234<whatever> -> 1234<whatever>
8cafad5
 case "$PACKAGE_VERSION" in
8cafad5
-[[0-9]].*) eu_version="${PACKAGE_VERSION/./}" ;;
8cafad5
+[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@\.@@'` ;;
8cafad5
 *)     	   AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;;
8cafad5
 esac
8cafad5
 case "$eu_version" in
Roland McGrath c025a9f
@@ -277,6 +328,6 @@ case "$eu_version" in
8cafad5
 esac
8cafad5
 
8cafad5
 # Round up to the next release API (x.y) version.
8cafad5
-[eu_version=$[($eu_version + 999) / 1000]]
8cafad5
+eu_version=`expr \( $eu_version + 999 \) / 1000`
8cafad5
 
8cafad5
 AC_OUTPUT
570047f
--- elfutils/lib/ChangeLog
570047f
+++ elfutils/lib/ChangeLog
0f58b0c
@@ -14,6 +14,9 @@
e4d1f5c
 
bfd3a36
 2009-01-23  Roland McGrath  <roland@redhat.com>
bfd3a36
 
5c16b08
+	* eu-config.h [! HAVE_BUILTIN_POPCOUNT]
5c16b08
+	(__builtin_popcount): New inline function.
5c16b08
+
bfd3a36
 	* eu-config.h: Add multiple inclusion protection.
5c16b08
 
bfd3a36
 2009-01-17  Ulrich Drepper  <drepper@redhat.com>
0f58b0c
@@ -70,6 +73,11 @@
5fa3867
 	* Makefile.am (libeu_a_SOURCES): Add it.
5fa3867
 	* system.h: Declare crc32_file.
5fa3867
 
a769ac6
+2005-02-07  Roland McGrath  <roland@redhat.com>
a769ac6
+
a769ac6
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
a769ac6
+	(AM_CFLAGS): Use it in place of -Wextra.
a769ac6
+
5fa3867
 2005-04-30  Ulrich Drepper  <drepper@redhat.com>
a769ac6
 
5fa3867
 	* Makefile.am: Use -ffunction-sections for xmalloc.c.
5c16b08
--- elfutils/lib/eu-config.h
5c16b08
+++ elfutils/lib/eu-config.h
e4d1f5c
@@ -182,6 +182,17 @@ asm (".section predict_data, \"aw\"; .pr
5c16b08
 /* This macro is used by the tests conditionalize for standalone building.  */
5c16b08
 #define ELFUTILS_HEADER(name) <lib##name.h>
bfd3a36
 
5c16b08
+#ifndef HAVE_BUILTIN_POPCOUNT
5c16b08
+# define __builtin_popcount hakmem_popcount
5c16b08
+static inline unsigned int __attribute__ ((unused))
5c16b08
+hakmem_popcount (unsigned int x)
5c16b08
+{
5c16b08
+  /* HAKMEM 169 */
5c16b08
+  unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
5c16b08
+  return ((n + (n >> 3)) & 030707070707) % 63;
5c16b08
+}
5c16b08
+#endif	/* HAVE_BUILTIN_POPCOUNT */
5c16b08
+
bfd3a36
 
e4d1f5c
 #ifdef SHARED
e4d1f5c
 # define OLD_VERSION(name, version) \
570047f
--- elfutils/lib/Makefile.in
570047f
+++ elfutils/lib/Makefile.in
ba5f203
@@ -99,6 +99,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -128,6 +129,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -190,7 +192,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libelf
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1) -fpic
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
f995fa8
--- elfutils/libasm/ChangeLog
f995fa8
+++ elfutils/libasm/ChangeLog
Roland McGrath c025a9f
@@ -71,6 +71,11 @@
2ca6928
 	* asm_error.c: Add new error ASM_E_IOERROR.
2ca6928
 	* libasmP.h: Add ASM_E_IOERROR definition.
2ca6928
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
f995fa8
 
2ca6928
 	* Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
570047f
--- elfutils/libasm/Makefile.in
570047f
+++ elfutils/libasm/Makefile.in
ba5f203
@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -176,6 +177,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = 1
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -239,7 +241,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(top_srcdir)/libdw
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
570047f
--- elfutils/libcpu/ChangeLog
570047f
+++ elfutils/libcpu/ChangeLog
Roland McGrath 1548e59
@@ -15,6 +15,9 @@
fbfe249
 
bfd3a36
 2009-01-23  Roland McGrath  <roland@redhat.com>
bfd3a36
 
5c16b08
+	* i386_disasm.c (i386_disasm): Add abort after assert-constant for old
5c16b08
+	compilers that don't realize it's noreturn.
5c16b08
+
bfd3a36
 	* Makefile.am (i386_parse_CFLAGS): Use quotes around command
bfd3a36
 	substitution that can produce leading whitespace.
5c16b08
 
Roland McGrath 1548e59
@@ -344,6 +347,11 @@
840723d
 	* defs/i386.doc: New file.
840723d
 	* defs/x86_64: New file.
840723d
 
6788433
+2005-04-04  Roland McGrath  <roland@redhat.com>
6788433
+
6788433
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
6788433
+	(AM_CFLAGS): Use it instead of -Wextra.
6788433
+
6788433
 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
6788433
 
6788433
 	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
5c16b08
--- elfutils/libcpu/i386_disasm.c
5c16b08
+++ elfutils/libcpu/i386_disasm.c
5c16b08
@@ -791,6 +791,7 @@ i386_disasm (const uint8_t **startp, con
5c16b08
 
5c16b08
 			default:
5c16b08
 			  assert (! "INVALID not handled");
5c16b08
+			  abort ();
5c16b08
 			}
5c16b08
 		    }
5c16b08
 		  else
570047f
--- elfutils/libcpu/Makefile.in
570047f
+++ elfutils/libcpu/Makefile.in
ba5f203
@@ -116,6 +116,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
840723d
 LEX_OUTPUT_ROOT = lex.$(
0f58b0c
@@ -145,6 +146,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -208,7 +210,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libdw -I$(srcdir)/../libasm
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1) -fpic -fdollars-in-identifiers
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
f995fa8
--- elfutils/libdw/ChangeLog
f995fa8
+++ elfutils/libdw/ChangeLog
Roland McGrath 9e6cf0d
@@ -308,6 +308,10 @@
e4d1f5c
 
e4d1f5c
 	* dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
e4d1f5c
 
e4d1f5c
+2009-08-17  Roland McGrath  <roland@redhat.com>
e4d1f5c
+
e4d1f5c
+	* libdw.h: Disable extern inlines for GCC 4.2.
e4d1f5c
+
e4d1f5c
 2009-08-10  Roland McGrath  <roland@redhat.com>
e4d1f5c
 
e4d1f5c
 	* dwarf_getscopevar.c: Use dwarf_diename.
Roland McGrath 9e6cf0d
@@ -1076,6 +1080,11 @@
f995fa8
 
f995fa8
 2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
 
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
 	* dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
f995fa8
 	formref offset.
f995fa8
 
e4d1f5c
--- elfutils/libdw/libdw.h
e4d1f5c
+++ elfutils/libdw/libdw.h
Roland McGrath 1548e59
@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
e4d1f5c
 
e4d1f5c
 
e4d1f5c
 /* Inline optimizations.  */
e4d1f5c
-#ifdef __OPTIMIZE__
e4d1f5c
+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
e4d1f5c
 /* Return attribute code of given attribute.  */
e4d1f5c
 __libdw_extern_inline unsigned int
e4d1f5c
 dwarf_whatattr (Dwarf_Attribute *attr)
570047f
--- elfutils/libdw/Makefile.in
570047f
+++ elfutils/libdw/Makefile.in
Roland McGrath 1548e59
@@ -192,6 +192,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
Roland McGrath 1548e59
@@ -221,6 +222,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = 1
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
Roland McGrath 1548e59
@@ -283,7 +285,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libelf
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1) $(am__append_2)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
f995fa8
--- elfutils/libdwfl/ChangeLog
f995fa8
+++ elfutils/libdwfl/ChangeLog
Roland McGrath c025a9f
@@ -1366,6 +1366,11 @@
469b3c7
 
f995fa8
 2005-07-21  Roland McGrath  <roland@redhat.com>
f995fa8
 
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
+2005-07-21  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
 	* Makefile.am (noinst_HEADERS): Add loc2c.c.
f995fa8
 
f995fa8
 	* test2.c (main): Check sscanf result to quiet warning.
f995fa8
--- elfutils/libdwfl/Makefile.in
f995fa8
+++ elfutils/libdwfl/Makefile.in
Roland McGrath 1548e59
@@ -182,6 +182,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
Roland McGrath 1548e59
@@ -211,6 +212,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
f995fa8
 USE_NLS = @USE_NLS@
f995fa8
 VERSION = 1
f995fa8
+WEXTRA = @WEXTRA@
f995fa8
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
Roland McGrath 1548e59
@@ -274,7 +276,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libdw
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
f995fa8
--- elfutils/libebl/ChangeLog
f995fa8
+++ elfutils/libebl/ChangeLog
Roland McGrath 1548e59
@@ -628,6 +628,11 @@
f995fa8
 	* Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
f995fa8
 	tracking works right.
f995fa8
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
 2005-05-21  Ulrich Drepper  <drepper@redhat.com>
f995fa8
 
f995fa8
 	* libebl_x86_64.map: Add x86_64_core_note.
570047f
--- elfutils/libebl/Makefile.in
570047f
+++ elfutils/libebl/Makefile.in
ba5f203
@@ -143,6 +143,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -172,6 +173,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = 1
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -235,7 +237,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libasm
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1) -fpic
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
f995fa8
--- elfutils/libelf/ChangeLog
f995fa8
+++ elfutils/libelf/ChangeLog
Roland McGrath 81f44a1
@@ -671,6 +671,11 @@
5c16b08
 
5c16b08
 	* elf.h: Update from glibc.
469b3c7
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
5c16b08
 2005-05-08  Roland McGrath  <roland@redhat.com>
f995fa8
 
5c16b08
 	* elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
f995fa8
--- elfutils/libelf/common.h
f995fa8
+++ elfutils/libelf/common.h
44874cc
@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf)
f995fa8
   (Var) = (sizeof (Var) == 1						      \
f995fa8
 	   ? (unsigned char) (Var)					      \
f995fa8
 	   : (sizeof (Var) == 2						      \
f995fa8
-	      ? bswap_16 (Var)						      \
f995fa8
+	      ? (unsigned short int) bswap_16 (Var)			      \
f995fa8
 	      : (sizeof (Var) == 4					      \
f995fa8
 		 ? bswap_32 (Var)					      \
f995fa8
 		 : bswap_64 (Var))))
44874cc
@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf)
f995fa8
   (Dst) = (sizeof (Var) == 1						      \
f995fa8
 	   ? (unsigned char) (Var)					      \
f995fa8
 	   : (sizeof (Var) == 2						      \
f995fa8
-	      ? bswap_16 (Var)						      \
f995fa8
+	      ? (unsigned short int) bswap_16 (Var)			      \
f995fa8
 	      : (sizeof (Var) == 4					      \
f995fa8
 		 ? bswap_32 (Var)					      \
f995fa8
 		 : bswap_64 (Var))))
570047f
--- elfutils/libelf/Makefile.in
570047f
+++ elfutils/libelf/Makefile.in
ba5f203
@@ -189,6 +189,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -218,6 +219,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = 1
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -279,7 +281,7 @@ zip_LIBS = @zip_LIBS@
ba5f203
 INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1) $(am__append_2)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
570047f
--- elfutils/m4/Makefile.in
570047f
+++ elfutils/m4/Makefile.in
d36848b
@@ -75,6 +75,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -104,6 +105,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
f995fa8
 USE_NLS = @USE_NLS@
f995fa8
 VERSION = @VERSION@
f995fa8
+WEXTRA = @WEXTRA@
f995fa8
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
f995fa8
--- elfutils/Makefile.in
f995fa8
+++ elfutils/Makefile.in
d36848b
@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -184,6 +185,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
5c16b08
--- elfutils/src/addr2line.c
5c16b08
+++ elfutils/src/addr2line.c
Roland McGrath 1548e59
@@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl
5c16b08
       bool parsed = false;
0f58b0c
       int i, j;
5c16b08
       char *name = NULL;
0f58b0c
-      if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
0f58b0c
+      if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
0f58b0c
 	  && string[i] == '\0')
fbfe249
 	parsed = adjust_to_section (name, &addr, dwfl);
0f58b0c
-      switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
0f58b0c
+      switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
5c16b08
 	{
0f58b0c
 	default:
0f58b0c
 	  break;
f995fa8
--- elfutils/src/ChangeLog
f995fa8
+++ elfutils/src/ChangeLog
Roland McGrath c025a9f
@@ -260,8 +260,16 @@
e4d1f5c
 	* readelf.c (attr_callback): Use print_block only when we don't use
e4d1f5c
 	print_ops.
e4d1f5c
 
e4d1f5c
+2009-08-17  Roland McGrath  <roland@redhat.com>
e4d1f5c
+
e4d1f5c
+	* ld.h: Disable extern inlines for GCC 4.2.
e4d1f5c
+
e4d1f5c
 2009-08-14  Roland McGrath  <roland@redhat.com>
e4d1f5c
 
e4d1f5c
+	* strings.c (read_block): Conditionalize posix_fadvise use
e4d1f5c
+	on [POSIX_FADV_SEQUENTIAL].
e4d1f5c
+	From Petr Salinger <Petr.Salinger@seznam.cz>.
e4d1f5c
+
e4d1f5c
 	* ar.c (do_oper_extract): Use pathconf instead of statfs.
e4d1f5c
 
e4d1f5c
 2009-08-01  Ulrich Drepper  <drepper@redhat.com>
Roland McGrath c025a9f
@@ -425,6 +433,8 @@
5c16b08
 	* readelf.c (print_debug_frame_section): Use t instead of j formats
5c16b08
 	for ptrdiff_t OFFSET.
5c16b08
 
5c16b08
+	* addr2line.c (handle_address): Use %a instead of %m for compatibility.
5c16b08
+
5c16b08
 2009-01-21  Ulrich Drepper  <drepper@redhat.com>
5c16b08
 
5c16b08
 	* elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Roland McGrath c025a9f
@@ -608,6 +618,11 @@
fa1a8eb
 	that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
fa1a8eb
 	is valid in RELRO.
fa1a8eb
 
fb2677a
+2008-03-01  Roland McGrath  <roland@redhat.com>
fb2677a
+
fb2677a
+	* readelf.c (dump_archive_index): Tweak portability hack
fb2677a
+	to match [__GNUC__ < 4] too.
fb2677a
+
fb2677a
 2008-02-29  Roland McGrath  <roland@redhat.com>
fb2677a
 
fb2677a
 	* readelf.c (print_attributes): Add a cast.
Roland McGrath c025a9f
@@ -859,6 +874,8 @@
a7b828d
 
a7b828d
 	* readelf.c (hex_dump): Fix rounding error in whitespace calculation.
a7b828d
 
2dfc22c
+	* Makefile.am (readelf_no_Werror): New variable.
2dfc22c
+
2dfc22c
 2007-10-15  Roland McGrath  <roland@redhat.com>
2dfc22c
 
2dfc22c
 	* make-debug-archive.in: New file.
Roland McGrath c025a9f
@@ -1298,6 +1315,10 @@
9a3c170
 	* elflint.c (valid_e_machine): Add EM_ALPHA.
9a3c170
 	Reported by Christian Aichinger <Greek0@gmx.net>.
9a3c170
 
9a3c170
+	* strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to
9a3c170
+	MADV_SEQUENTIAL if undefined.  	Don't call posix_madvise
9a3c170
+	if neither is defined.
9a3c170
+
9a3c170
 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
9a3c170
 
9a3c170
 	* elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
Roland McGrath c025a9f
@@ -1374,6 +1395,10 @@
a997709
 	* Makefile.am: Add hacks to create dependency files for non-generic
a997709
 	linker.
a997709
 
3c3d383
+2006-04-05  Roland McGrath  <roland@redhat.com>
3c3d383
+
3c3d383
+	* strings.c (MAP_POPULATE): Define to 0 if undefined.
3c3d383
+
3c3d383
 2006-06-12  Ulrich Drepper  <drepper@redhat.com>
3c3d383
 
3c3d383
 	* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
Roland McGrath c025a9f
@@ -1722,6 +1747,11 @@
f995fa8
 	* readelf.c (print_debug_loc_section): Fix indentation for larger
f995fa8
 	address size.
f995fa8
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
 2005-05-30  Roland McGrath  <roland@redhat.com>
f995fa8
 
f995fa8
 	* readelf.c (print_debug_line_section): Print section offset of each
f995fa8
--- elfutils/src/findtextrel.c
f995fa8
+++ elfutils/src/findtextrel.c
Roland McGrath 9e6cf0d
@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void *
f995fa8
 
f995fa8
 
f995fa8
 static void
f995fa8
-check_rel (size_t nsegments, struct segments segments[nsegments],
f995fa8
+check_rel (size_t nsegments, struct segments segments[
f995fa8
+#if __GNUC__ >= 4
f995fa8
+						      nsegments
f995fa8
+#endif
f995fa8
+	   ],
f995fa8
 	   GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw,
f995fa8
 	   const char *fname, bool more_than_one, void **knownsrcs)
f995fa8
 {
e4d1f5c
--- elfutils/src/ld.h
e4d1f5c
+++ elfutils/src/ld.h
e4d1f5c
@@ -1122,6 +1122,7 @@ extern bool dynamically_linked_p (void);
e4d1f5c
 
e4d1f5c
 /* Checked whether the symbol is undefined and referenced from a DSO.  */
e4d1f5c
 extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
e4d1f5c
+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
e4d1f5c
 #ifdef __GNUC_STDC_INLINE__
e4d1f5c
 __attribute__ ((__gnu_inline__))
e4d1f5c
 #endif
e4d1f5c
@@ -1139,5 +1140,6 @@ linked_from_dso_p (struct scninfo *scnin
e4d1f5c
 
e4d1f5c
   return sym->defined && sym->in_dso;
e4d1f5c
 }
e4d1f5c
+#endif	/* Optimizing and not GCC 4.2.  */
e4d1f5c
 
e4d1f5c
 #endif	/* ld.h */
570047f
--- elfutils/src/Makefile.am
570047f
+++ elfutils/src/Makefile.am
ba5f203
@@ -99,6 +99,9 @@ addr2line_no_Wformat = yes
2dfc22c
 # XXX While the file is not finished, don't warn about this
2dfc22c
 ldgeneric_no_Wunused = yes
2dfc22c
 
2dfc22c
+# Buggy old compilers.
2dfc22c
+readelf_no_Werror = yes
2dfc22c
+
2dfc22c
 readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
2dfc22c
 nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
2dfc22c
 size_LDADD = $(libelf) $(libeu) $(libmudflap)
570047f
--- elfutils/src/Makefile.in
570047f
+++ elfutils/src/Makefile.in
ba5f203
@@ -228,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -257,6 +258,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -321,7 +323,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi
ba5f203
 	-I$(srcdir)/../libasm
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1)
ba5f203
 @MUDFLAP_FALSE@libmudflap = 
0f58b0c
@@ -368,6 +370,9 @@ strings_no_Wformat = yes
5c16b08
 addr2line_no_Wformat = yes
2dfc22c
 # XXX While the file is not finished, don't warn about this
2dfc22c
 ldgeneric_no_Wunused = yes
2dfc22c
+
2dfc22c
+# Buggy old compilers.
2dfc22c
+readelf_no_Werror = yes
2dfc22c
 readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
2dfc22c
 nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl
2dfc22c
 size_LDADD = $(libelf) $(libeu) $(libmudflap)
fb2677a
--- elfutils/src/readelf.c
fb2677a
+++ elfutils/src/readelf.c
Roland McGrath 1548e59
@@ -4274,10 +4274,11 @@ struct listptr
Roland McGrath 1548e59
 #define listptr_offset_size(p)	((p)->dwarf64 ? 8 : 4)
Roland McGrath 1548e59
 #define listptr_address_size(p)	((p)->addr64 ? 8 : 4)
Roland McGrath 1548e59
 
Roland McGrath 1548e59
+static const char *listptr_name;
Roland McGrath 1548e59
 static int
Roland McGrath 1548e59
-compare_listptr (const void *a, const void *b, void *arg)
Roland McGrath 1548e59
+compare_listptr (const void *a, const void *b)
Roland McGrath 1548e59
 {
Roland McGrath 1548e59
-  const char *name = arg;
Roland McGrath 1548e59
+  const char *const name = listptr_name;
Roland McGrath 1548e59
   struct listptr *p1 = (void *) a;
Roland McGrath 1548e59
   struct listptr *p2 = (void *) b;
Roland McGrath 1548e59
 
Roland McGrath 1548e59
@@ -4357,8 +4358,11 @@ static void
Roland McGrath 1548e59
 sort_listptr (struct listptr_table *table, const char *name)
Roland McGrath 1548e59
 {
Roland McGrath 1548e59
   if (table->n > 0)
Roland McGrath 1548e59
-    qsort_r (table->table, table->n, sizeof table->table[0],
Roland McGrath 1548e59
-	     &compare_listptr, (void *) name);
Roland McGrath 1548e59
+    {
Roland McGrath 1548e59
+      listptr_name = name;
Roland McGrath 1548e59
+      qsort (table->table, table->n, sizeof table->table[0],
Roland McGrath 1548e59
+	     &compare_listptr);
Roland McGrath 1548e59
+    }
Roland McGrath 1548e59
 }
Roland McGrath 1548e59
 
Roland McGrath 1548e59
 static bool
Roland McGrath 1548e59
@@ -8098,7 +8102,7 @@ dump_archive_index (Elf *elf, const char
fb2677a
 	  if (unlikely (elf_rand (elf, as_off) == 0)
fb2677a
 	      || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
fb2677a
 			   == NULL))
fb2677a
-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
fb2677a
+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4
fb2677a
 	    while (1)
fb2677a
 #endif
fb2677a
 	      error (EXIT_FAILURE, 0,
3c3d383
--- elfutils/src/strings.c
3c3d383
+++ elfutils/src/strings.c
3c3d383
@@ -51,6 +51,10 @@
3c3d383
 
3c3d383
 #include <system.h>
3c3d383
 
3c3d383
+#ifndef MAP_POPULATE
3c3d383
+# define MAP_POPULATE 0
3c3d383
+#endif
3c3d383
+
3c3d383
 
3c3d383
 /* Prototypes of local functions.  */
3c3d383
 static int read_fd (int fd, const char *fname, off64_t fdlen);
9a3c170
@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off
9a3c170
 		    fd, start_off);
9a3c170
       if (mem != MAP_FAILED)
9a3c170
 	{
9a3c170
+#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL
9a3c170
+# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
9a3c170
+#endif
9a3c170
+#ifdef POSIX_MADV_SEQUENTIAL
9a3c170
 	  /* We will go through the mapping sequentially.  */
9a3c170
 	  (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL);
9a3c170
+#endif
9a3c170
 	  break;
9a3c170
 	}
9a3c170
       if (errno != EINVAL && errno != ENOMEM)
Roland McGrath 1548e59
@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o
e4d1f5c
       elfmap_off = from & ~(ps - 1);
e4d1f5c
       elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size);
e4d1f5c
 
e4d1f5c
+#ifdef POSIX_FADV_SEQUENTIAL
e4d1f5c
       if (unlikely (elfmap == MAP_FAILED))
e4d1f5c
 	/* Let the kernel know we are going to read everything in sequence.  */
e4d1f5c
 	(void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL);
e4d1f5c
+#endif
e4d1f5c
     }
e4d1f5c
 
e4d1f5c
   if (unlikely (elfmap == MAP_FAILED))
570047f
--- elfutils/src/strip.c
570047f
+++ elfutils/src/strip.c
ba5f203
@@ -53,6 +53,12 @@
b73b6ec
 #include <libebl.h>
b73b6ec
 #include <system.h>
b73b6ec
 
b73b6ec
+#ifdef HAVE_FUTIMES
b73b6ec
+# define FUTIMES(fd, fname, tvp) futimes (fd, tvp)
b73b6ec
+#else
b73b6ec
+# define FUTIMES(fd, fname, tvp) utimes (fname, tvp)
b73b6ec
+#endif
b73b6ec
+
b73b6ec
 
b73b6ec
 /* Name and version of program.  */
b73b6ec
 static void print_version (FILE *stream, struct argp_state *state);
Roland McGrath 81f44a1
@@ -311,8 +317,18 @@ process_file (const char *fname)
a769ac6
 
a769ac6
       /* If we have to preserve the timestamp, we need it in the
a769ac6
 	 format utimes() understands.  */
a769ac6
+#ifdef HAVE_STRUCT_STAT_ST_ATIM
a769ac6
       TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim);
a769ac6
+#else
a769ac6
+      tv[0].tv_sec = pre_st.st_atime;
a769ac6
+      tv[0].tv_usec = 0;
a769ac6
+#endif
a769ac6
+#ifdef HAVE_STRUCT_STAT_ST_MTIM
a769ac6
       TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim);
a769ac6
+#else
a769ac6
+      tv[1].tv_sec = pre_st.st_atime;
a769ac6
+      tv[1].tv_usec = 0;
a769ac6
+#endif
a769ac6
     }
a769ac6
 
a769ac6
   /* Open the file.  */
Roland McGrath 81f44a1
@@ -1809,7 +1825,7 @@ while computing checksum for debug infor
a769ac6
   /* If requested, preserve the timestamp.  */
a769ac6
   if (tvp != NULL)
a769ac6
     {
a769ac6
-      if (futimes (fd, tvp) != 0)
b73b6ec
+      if (FUTIMES (fd, output_fname, tvp) != 0)
a769ac6
 	{
a769ac6
 	  error (0, errno, gettext ("\
5fa3867
 cannot set access and modification date of '%s'"),
Roland McGrath 81f44a1
@@ -1866,7 +1882,7 @@ handle_ar (int fd, Elf *elf, const char 
a769ac6
 
a769ac6
   if (tvp != NULL)
a769ac6
     {
a769ac6
-      if (unlikely (futimes (fd, tvp) != 0))
b73b6ec
+      if (unlikely (FUTIMES (fd, fname, tvp) != 0))
a769ac6
 	{
a769ac6
 	  error (0, errno, gettext ("\
5fa3867
 cannot set access and modification date of '%s'"), fname);
f995fa8
--- elfutils/tests/ChangeLog
f995fa8
+++ elfutils/tests/ChangeLog
Roland McGrath c025a9f
@@ -205,6 +205,8 @@
fb2677a
 
fb2677a
 2008-01-21  Roland McGrath  <roland@redhat.com>
fb2677a
 
fb2677a
+	* line2addr.c (main): Revert last change.
fb2677a
+
fb2677a
 	* testfile45.S.bz2: Add tests for cltq, cqto.
fb2677a
 	* testfile45.expect.bz2: Adjust.
fb2677a
 
Roland McGrath c025a9f
@@ -913,6 +915,11 @@
f995fa8
 	* Makefile.am (TESTS): Add run-elflint-test.sh.
f995fa8
 	(EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
f995fa8
 
f995fa8
+2005-05-31  Roland McGrath  <roland@redhat.com>
f995fa8
+
f995fa8
+	* Makefile.am (WEXTRA): New variable, substituted by configure.
f995fa8
+	(AM_CFLAGS): Use it in place of -Wextra.
f995fa8
+
f995fa8
 2005-05-24  Ulrich Drepper  <drepper@redhat.com>
f995fa8
 
f995fa8
 	* get-files.c (main): Use correct format specifier.
fb2677a
--- elfutils/tests/line2addr.c
fb2677a
+++ elfutils/tests/line2addr.c
fb2677a
@@ -132,7 +132,7 @@ main (int argc, char *argv[])
fb2677a
     {
fb2677a
       struct args a = { .arg = argv[cnt] };
fb2677a
 
fb2677a
-      switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
fb2677a
+      switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
fb2677a
 	{
fb2677a
 	default:
fb2677a
 	case 0:
570047f
--- elfutils/tests/Makefile.in
570047f
+++ elfutils/tests/Makefile.in
f790d25
@@ -372,6 +372,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
80ba80a
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
80ba80a
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
80ba80a
 LDFLAGS = @LDFLAGS@
80ba80a
+LD_AS_NEEDED = @LD_AS_NEEDED@
80ba80a
 LEX = @LEX@
80ba80a
 LEXLIB = @LEXLIB@
80ba80a
 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
0f58b0c
@@ -401,6 +402,7 @@ SHELL = @SHELL@
3cb5dfb
 STRIP = @STRIP@
b73b6ec
 USE_NLS = @USE_NLS@
b73b6ec
 VERSION = @VERSION@
b73b6ec
+WEXTRA = @WEXTRA@
b73b6ec
 XGETTEXT = @XGETTEXT@
3cb5dfb
 XGETTEXT_015 = @XGETTEXT_015@
f790d25
 XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
0f58b0c
@@ -462,7 +464,7 @@ zip_LIBS = @zip_LIBS@
ba5f203
 INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2)
ba5f203
 AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
ba5f203
 	$($(*F)_no_Werror),,-Werror) $(if \
ba5f203
-	$($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
ba5f203
+	$($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
ba5f203
 	$($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \
ba5f203
 	$(am__append_1)
ba5f203
 @MUDFLAP_FALSE@libmudflap =