This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 3.x development tree".
The branch, master has been updated via 4cebc4830eb7fae2879268a2f1e0993cc68a4da9 (commit) via 6c81914a60e97bb22889205e2acda81ebb31ebe6 (commit) via 64d634dab2f5efb93a747e240ee5707540b08df3 (commit) via 14b2445361999f40793d26a9debc60387711b299 (commit) via d1d527f80f38e8b9d41648cb2892a58c2b8b4839 (commit) via 4c8eb556529481747eafcf18e5d9672a08909a79 (commit) via 7a5a8b321bd51bd66e58228bc335d96458b423cf (commit) via f6cc5bb18def8fa0c61e87841bde0a1e0391f40f (commit) via d695fb13bc7721d2c5b2d0ee77e41fd543ce1122 (commit) via 2337efff35fd334c2c883ec049796b7280246d99 (commit) via c5bfdc18a1571c4587eebf23000921284a8054b9 (commit) via 427948e0737717a8d8534bf6d6559ef043c371da (commit) via fe534752fe8090a5a67ed8873a6a40eb91278881 (commit) via 53f699e7a20afdd6a38f7c65c9691eff01edfd82 (commit) via fc278a1565ad3086d75e36737f2e4da69d3dc80a (commit) via a8129c6abf30e2af58256060217d565bc641e734 (commit) via 485a0bc1fe6c72b94bf70c7538bddfd2c991e905 (commit) via 35f1ed0ebea64028e0c6dde6bbc3198d3b3302cd (commit) via e5caab08f3ffe754ba238230d2e457f6fe4cf59c (commit) via 09a5cb9185d664a117fa384cabf661c219f1b4d1 (commit) via 4ed9b9f2c1c70b82258b0908d75ad8eaaad81832 (commit) via b93a59c43504520f89abf3e1ca0b1273133fcb79 (commit) via 9db11b9784b5c075d7da446b319658f700fbcd94 (commit) via e6aa4d74a5825ae5f10764eb71e4f4eda679cf40 (commit) via 5761af9f3c14065ca4e94f1d3199923d840a6984 (commit) from 2ca20eaf5bb4c2b045684f594866d95b83a2b2a8 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 4cebc4830eb7fae2879268a2f1e0993cc68a4da9 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 22 20:12:56 2015 -0500
xz: Update to version 5.2.0
commit 6c81914a60e97bb22889205e2acda81ebb31ebe6 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 22 20:10:53 2015 -0500
gpgme: Update to version 1.5.3
commit 64d634dab2f5efb93a747e240ee5707540b08df3 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 22 20:10:23 2015 -0500
flex: Update to version 2.5.39
commit 14b2445361999f40793d26a9debc60387711b299 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 4 07:45:24 2015 -0500
slang: Update to version 2.3.0
commit d1d527f80f38e8b9d41648cb2892a58c2b8b4839 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 4 07:44:42 2015 -0500
shadow-utils: Update to 4.2.1
Unfortunately we are lacking gnome-doc-utils to generate the man pages.
commit 4c8eb556529481747eafcf18e5d9672a08909a79 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Feb 4 07:43:57 2015 -0500
sqlite: Update to version 3.8.8.2
commit 7a5a8b321bd51bd66e58228bc335d96458b423cf Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 3 14:54:51 2015 -0500
readline: Update to version 6.3
commit f6cc5bb18def8fa0c61e87841bde0a1e0391f40f Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 3 14:53:57 2015 -0500
psmisc: Update to version 22.21
commit d695fb13bc7721d2c5b2d0ee77e41fd543ce1122 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 3 14:50:44 2015 -0500
openldap: Update to version 2.4.40
commit 2337efff35fd334c2c883ec049796b7280246d99 Author: Michael Tremer michael.tremer@ipfire.org Date: Tue Feb 3 14:49:45 2015 -0500
popt: Update to version 1.16
commit c5bfdc18a1571c4587eebf23000921284a8054b9 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 17:41:06 2015 -0500
libdb: Update to version 5.3.28
commit 427948e0737717a8d8534bf6d6559ef043c371da Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 17:39:21 2015 -0500
elfutils: Update to version 0.161
commit fe534752fe8090a5a67ed8873a6a40eb91278881 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 17:38:39 2015 -0500
libgpg-error: Update to version 1.17
commit 53f699e7a20afdd6a38f7c65c9691eff01edfd82 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 16:03:06 2015 -0500
libgcrypt: Update to version 1.6.2
commit fc278a1565ad3086d75e36737f2e4da69d3dc80a Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 16:02:30 2015 -0500
libssh2: Update to version 1.4.3
commit a8129c6abf30e2af58256060217d565bc641e734 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 16:01:34 2015 -0500
libevent: Update to version 2.0.22
commit 485a0bc1fe6c72b94bf70c7538bddfd2c991e905 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 16:00:52 2015 -0500
libedit: Update to version 3.1 (20141030)
commit 35f1ed0ebea64028e0c6dde6bbc3198d3b3302cd Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:58:39 2015 -0500
libcroco: Update to version 0.6.8
commit e5caab08f3ffe754ba238230d2e457f6fe4cf59c Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:57:36 2015 -0500
libcap-ng: Update to version 0.7.4
commit 09a5cb9185d664a117fa384cabf661c219f1b4d1 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:56:31 2015 -0500
libarchive: Update to version 3.1.2
commit 4ed9b9f2c1c70b82258b0908d75ad8eaaad81832 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:55:14 2015 -0500
gdbm: Update to version 1.11
commit b93a59c43504520f89abf3e1ca0b1273133fcb79 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:54:13 2015 -0500
findutils: Update to version 4.5.14
commit 9db11b9784b5c075d7da446b319658f700fbcd94 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:53:16 2015 -0500
file: Update to version 5.20
commit e6aa4d74a5825ae5f10764eb71e4f4eda679cf40 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Feb 1 15:47:35 2015 -0500
make: Update to version 4.0
commit 5761af9f3c14065ca4e94f1d3199923d840a6984 Author: Michael Tremer michael.tremer@ipfire.org Date: Fri Jan 23 18:18:11 2015 -0500
ncurses: Update to latest snapshot 20150117
-----------------------------------------------------------------------
Summary of changes: elfutils/elfutils.nm | 19 +- elfutils/patches/elfutils-portability-0.161.patch | 1871 ++++++++++++++++++++ elfutils/patches/elfutils-portability.patch | 1245 ------------- elfutils/patches/elfutils-robustify.patch | 1643 ----------------- file/file.nm | 5 +- findutils/findutils.nm | 16 +- findutils/patches/findutils-4.5.10-gets.patch | 29 - flex/flex.nm | 2 +- flex/patches/flex-2.5.36-bison-2.6.1.patch | 88 - gdbm/gdbm.nm | 2 +- gpgme/gpgme.nm | 2 +- gpgme/patches/gpgme-1.2.0-largefile.patch | 24 - gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch | 72 - gpgme/patches/gpgme-1.3.0-config_extras.patch | 36 - libarchive/libarchive.nm | 7 +- libcap-ng/libcap-ng.nm | 2 +- libcroco/libcroco.nm | 8 +- libdb/libdb.nm | 16 +- libedit/libedit.nm | 13 +- libevent/libevent.nm | 2 +- libgcrypt/libgcrypt.nm | 6 +- libgpg-error/libgpg-error.nm | 2 +- libssh2/libssh2.nm | 8 +- make/make.nm | 8 +- make/patches/make-3.79.1-noclock_gettime.patch | 13 - make/patches/make-3.80-getcwd.patch | 15 - make/patches/make-3.81-err-reporting.patch | 152 -- make/patches/make-3.81-fdleak.patch | 60 - make/patches/make-3.81-jobserver.patch | 18 - make/patches/make-3.81-memory.patch | 261 --- make/patches/make-3.81-newlines.patch | 23 - make/patches/make-3.81-rlimit.patch | 111 -- make/patches/make-3.81-strcpy-overlap.patch | 16 - make/patches/make-4.0-err-reporting.patch | 156 ++ make/patches/make-4.0-getcwd.patch | 12 + .../{make-3.80-j8k.patch => make-4.0-j8k.patch} | 15 +- make/patches/make-4.0-newlines.patch | 19 + make/patches/make-4.0-noclock_gettime.patch | 14 + make/patches/make-4.0-weird-shell.patch | 16 + ncurses/ncurses.nm | 7 +- openldap/openldap.nm | 10 +- popt/popt.nm | 18 +- psmisc/psmisc.nm | 2 +- readline/patches/readline-6.1-audit.patch | 116 -- readline/patches/readline-6.2-shlib.patch | 41 - readline/readline.nm | 4 +- shadow-utils/patches/shadow-4.1.4.2-ipfire.patch | 75 - shadow-utils/patches/shadow-4.1.4.3-goodname.patch | 70 - shadow-utils/shadow-utils.nm | 17 +- slang/patches/slang-2.1.4-makefile.patch | 111 -- slang/slang.nm | 10 +- sqlite/sqlite.nm | 15 +- xz/xz.nm | 2 +- 53 files changed, 2220 insertions(+), 4305 deletions(-) create mode 100644 elfutils/patches/elfutils-portability-0.161.patch delete mode 100644 elfutils/patches/elfutils-portability.patch delete mode 100644 elfutils/patches/elfutils-robustify.patch delete mode 100644 findutils/patches/findutils-4.5.10-gets.patch delete mode 100644 flex/patches/flex-2.5.36-bison-2.6.1.patch delete mode 100644 gpgme/patches/gpgme-1.2.0-largefile.patch delete mode 100644 gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch delete mode 100644 gpgme/patches/gpgme-1.3.0-config_extras.patch delete mode 100644 make/patches/make-3.79.1-noclock_gettime.patch delete mode 100644 make/patches/make-3.80-getcwd.patch delete mode 100644 make/patches/make-3.81-err-reporting.patch delete mode 100644 make/patches/make-3.81-fdleak.patch delete mode 100644 make/patches/make-3.81-jobserver.patch delete mode 100644 make/patches/make-3.81-memory.patch delete mode 100644 make/patches/make-3.81-newlines.patch delete mode 100644 make/patches/make-3.81-rlimit.patch delete mode 100644 make/patches/make-3.81-strcpy-overlap.patch create mode 100644 make/patches/make-4.0-err-reporting.patch create mode 100644 make/patches/make-4.0-getcwd.patch rename make/patches/{make-3.80-j8k.patch => make-4.0-j8k.patch} (57%) create mode 100644 make/patches/make-4.0-newlines.patch create mode 100644 make/patches/make-4.0-noclock_gettime.patch create mode 100644 make/patches/make-4.0-weird-shell.patch delete mode 100644 readline/patches/readline-6.1-audit.patch delete mode 100644 readline/patches/readline-6.2-shlib.patch delete mode 100644 shadow-utils/patches/shadow-4.1.4.2-ipfire.patch delete mode 100644 shadow-utils/patches/shadow-4.1.4.3-goodname.patch delete mode 100644 slang/patches/slang-2.1.4-makefile.patch
Difference in files: diff --git a/elfutils/elfutils.nm b/elfutils/elfutils.nm index c4d560e..b7bf868 100644 --- a/elfutils/elfutils.nm +++ b/elfutils/elfutils.nm @@ -4,8 +4,8 @@ ###############################################################################
name = elfutils -version = 0.152 -release = 5 +version = 0.161 +release = 1
maintainer = Michael Tremer michael.tremer@ipfire.org groups = Development/Libraries @@ -21,27 +21,24 @@ description (to check for well-formed ELF files). end
-source_dl = +source_dl = https://fedorahosted.org/releases/e/l/elfutils/%%7Bversion%7D/ sources = %{thisapp}.tar.bz2
build requires + autoconf + automake bzip2-devel m4 xz-devel zlib-devel end
- CFLAGS += -Wno-error + CFLAGS += -Wno-error -Wformat
configure_options += \ - --program-prefix=eu- - - prepare_cmds - # Fix a compiler warning. - sed -i.scanf-m -e 's/%m/%a/g' \ - src/addr2line.c tests/line2addr.c - end + --program-prefix=eu- \ + --disable-werror
# fails #test diff --git a/elfutils/patches/elfutils-portability-0.161.patch b/elfutils/patches/elfutils-portability-0.161.patch new file mode 100644 index 0000000..7539f8b --- /dev/null +++ b/elfutils/patches/elfutils-portability-0.161.patch @@ -0,0 +1,1871 @@ +--- elfutils/backends/ChangeLog ++++ elfutils/backends/ChangeLog +@@ -433,6 +433,10 @@ + * ppc_attrs.c (ppc_check_object_attribute): Handle tag + GNU_Power_ABI_Struct_Return. + ++2009-01-23 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED). ++ + 2008-10-04 Ulrich Drepper drepper@redhat.com + + * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and +@@ -760,6 +764,11 @@ + * sparc_init.c: Likewise. + * x86_64_init.c: Likewise. + ++2005-11-22 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure. ++ (libebl_%.so rule): Use it in place of -Wl,--as-needed. ++ + 2005-11-19 Roland McGrath roland@redhat.com + + * ppc64_reloc.def: REL30 -> ADDR30. +@@ -782,6 +791,9 @@ + * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). + (CLEANFILES): Add libebl_$(m).so. + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + * ppc_reloc.def: Update bits per Alan Modra amodra@bigpond.net.au. + * ppc64_reloc.def: Likewise. + +--- elfutils/backends/Makefile.am ++++ elfutils/backends/Makefile.am +@@ -119,7 +119,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a + $(LINK) -shared -o $(@:.map=.so) \ + -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ + -Wl,--version-script,$(@:.so=.map) \ +- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) ++ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) + @$(textrel_check) + + libebl_i386.so: $(cpu_i386) +--- elfutils/backends/Makefile.in ++++ elfutils/backends/Makefile.in +@@ -83,6 +83,7 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + subdir = backends + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -285,6 +286,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -316,6 +318,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -378,11 +381,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \ + libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS)) +@@ -888,7 +891,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a + $(LINK) -shared -o $(@:.map=.so) \ + -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ + -Wl,--version-script,$(@:.so=.map) \ +- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) ++ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) + @$(textrel_check) + + libebl_i386.so: $(cpu_i386) +--- elfutils/ChangeLog ++++ elfutils/ChangeLog +@@ -187,6 +187,8 @@ + + 2012-01-24 Mark Wielaard mjw@redhat.com + ++ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE. ++ + * COPYING: Fix address. Updated version from gnulib. + + 2012-01-23 Mark Wielaard mjw@redhat.com +@@ -205,6 +207,9 @@ + + 2011-10-08 Mike Frysinger vapier@gentoo.org + ++ * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR ++ automake option. ++ + * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly. + + 2011-10-02 Ulrich Drepper drepper@gmail.com +@@ -226,6 +231,10 @@ + + * configure.ac (LOCALEDIR, DATADIRNAME): Removed. + ++2009-11-22 Roland McGrath roland@redhat.com ++ ++ * configure.ac: Use sed and expr instead of modern bash extensions. ++ + 2009-09-21 Ulrich Drepper drepper@redhat.com + + * configure.ac: Update for more modern autoconf. +@@ -234,6 +243,10 @@ + + * configure.ac (zip_LIBS): Check for liblzma too. + ++2009-08-17 Roland McGrath roland@redhat.com ++ ++ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. ++ + 2009-04-19 Roland McGrath roland@redhat.com + + * configure.ac (eu_version): Round down here, not in version.h macros. +@@ -245,6 +258,8 @@ + + 2009-01-23 Roland McGrath roland@redhat.com + ++ * configure.ac: Check for __builtin_popcount. ++ + * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. + + * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of +@@ -325,6 +340,10 @@ + * configure.ac: Add dummy automake conditional to get dependencies + for non-generic linker right. See src/Makefile.am. + ++2005-11-22 Roland McGrath roland@redhat.com ++ ++ * configure.ac: Check for --as-needed linker option. ++ + 2005-11-18 Roland McGrath roland@redhat.com + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. +@@ -372,6 +391,17 @@ + * Makefile.am (all_SUBDIRS): Add libdwfl. + * configure.ac: Write libdwfl/Makefile. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. ++ ++ * configure.ac: Check for struct stat st_?tim members. ++ * src/strip.c (process_file): Use st_?time if st_?tim are not there. ++ ++ * configure.ac: Check for futimes function. ++ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. ++ (handle_ar) [! HAVE_FUTIMES]: Likewise. ++ + 2005-05-19 Roland McGrath roland@redhat.com + + * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. +--- elfutils/config/ChangeLog ++++ elfutils/config/ChangeLog +@@ -71,6 +71,10 @@ + + * known-dwarf.awk: Use gawk. + ++2011-10-08 Mike Frysinger vapier@gentoo.org ++ ++ * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this. ++ + 2010-07-02 Ulrich Drepper drepper@redhat.com + + * elfutils.spec.in: Add more BuildRequires. +--- elfutils/config/eu.am ++++ elfutils/config/eu.am +@@ -1,6 +1,6 @@ + ## Common automake fragments for elfutils subdirectory makefiles. + ## +-## Copyright (C) 2010, 2014 Red Hat, Inc. ++## Copyright (C) 2010-2011, 2014 Red Hat, Inc. + ## + ## This file is part of elfutils. + ## +@@ -29,13 +29,21 @@ + ## not, see http://www.gnu.org/licenses/. + ## + ++WEXTRA = @WEXTRA@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ ++ + DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow \ + $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ ++ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \ ++ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \ + $($(*F)_CFLAGS) + ++if BUILD_WERROR ++AM_CFLAGS += $(if $($(*F)_no_Werror),,-Werror) ++endif ++ + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + + %.os: %.c %.o +--- elfutils/config/Makefile.in ++++ elfutils/config/Makefile.in +@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -178,6 +179,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +--- elfutils/config.h.in ++++ elfutils/config.h.in +@@ -3,6 +3,9 @@ + /* Should ar and ranlib use -D behavior by default? */ + #undef DEFAULT_AR_DETERMINISTIC + ++/* Have __builtin_popcount. */ ++#undef HAVE_BUILTIN_POPCOUNT ++ + /* Define to 1 if you have the <inttypes.h> header file. */ + #undef HAVE_INTTYPES_H + +@@ -102,4 +105,7 @@ + /* Define for large files, on AIX-style hosts. */ + #undef _LARGE_FILES + ++/* Stubbed out if missing compiler support. */ ++#undef __thread ++ + #include <eu-config.h> +--- elfutils/configure ++++ elfutils/configure +@@ -663,6 +663,8 @@ ZLIB_TRUE + LIBEBL_SUBDIR + TESTS_RPATH_FALSE + TESTS_RPATH_TRUE ++BUILD_WERROR_FALSE ++BUILD_WERROR_TRUE + BUILD_STATIC_FALSE + BUILD_STATIC_TRUE + USE_VALGRIND_FALSE +@@ -678,6 +680,8 @@ NEVER_TRUE + base_cpu + NATIVE_LD_FALSE + NATIVE_LD_TRUE ++LD_AS_NEEDED ++WEXTRA + NM + READELF + ac_ct_AR +@@ -798,6 +802,7 @@ enable_debugpred + enable_gprof + enable_gcov + enable_valgrind ++enable_werror + enable_tests_rpath + enable_libebl_subdir + with_zlib +@@ -1455,6 +1460,7 @@ Optional Features: + --enable-gprof build binaries with gprof support + --enable-gcov build binaries with gcov support + --enable-valgrind run all tests under valgrind ++ --disable-werror do not build with -Werror + --enable-tests-rpath build $ORIGIN-using rpath into tests + --enable-libebl-subdir=DIR + install libebl_CPU modules in $(libdir)/DIR +@@ -4843,6 +4849,130 @@ if test "x$ac_cv_c99" != xyes; then : + as_fn_error $? "gcc with C99 support required" "$LINENO" 5 + fi + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5 ++$as_echo_n "checking for -Wextra option to $CC... " >&6; } ++if ${ac_cv_cc_wextra+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -Wextra" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++void foo (void) { } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_cc_wextra=yes ++else ++ ac_cv_cc_wextra=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5 ++$as_echo "$ac_cv_cc_wextra" >&6; } ++ ++if test "x$ac_cv_cc_wextra" = xyes; then : ++ WEXTRA=-Wextra ++else ++ WEXTRA=-W ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5 ++$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; } ++if ${ac_cv_cc_gnu89_inline+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -fgnu89-inline -Werror" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++void foo (void) ++{ ++ inline void bar (void) {} ++ bar (); ++} ++extern inline void baz (void) {} ++ ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_cc_gnu89_inline=yes ++else ++ ac_cv_cc_gnu89_inline=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5 ++$as_echo "$ac_cv_cc_gnu89_inline" >&6; } ++if test "x$ac_cv_cc_gnu89_inline" = xyes; then : ++ WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline" ++fi ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5 ++$as_echo_n "checking for --as-needed linker option... " >&6; } ++if ${ac_cv_as_needed+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat > conftest.c <<EOF ++int main (void) { return 0; } ++EOF ++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS ++ -fPIC -shared -o conftest.so conftest.c ++ -Wl,--as-needed 1>&5' ++ { { eval echo ""$as_me":${as_lineno-$LINENO}: "$ac_try""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: $? = $ac_status" >&5 ++ test $ac_status = 0; }; } ++then ++ ac_cv_as_needed=yes ++else ++ ac_cv_as_needed=no ++fi ++rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5 ++$as_echo "$ac_cv_as_needed" >&6; } ++if test "x$ac_cv_as_needed" = xyes; then : ++ LD_AS_NEEDED=-Wl,--as-needed ++else ++ LD_AS_NEEDED= ++fi ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5 ++$as_echo_n "checking for __builtin_popcount... " >&6; } ++if ${ac_cv_popcount+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++exit (__builtin_popcount (127)); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_popcount=yes ++else ++ ac_cv_popcount=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5 ++$as_echo "$ac_cv_popcount" >&6; } ++if test "x$ac_cv_popcount" = xyes; then : ++ ++$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h ++ ++fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5 + $as_echo_n "checking for __thread support... " >&6; } + if ${ac_cv_tls+:} false; then : +@@ -4879,7 +5009,13 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 + $as_echo "$ac_cv_tls" >&6; } + if test "x$ac_cv_tls" != xyes; then : +- as_fn_error $? "__thread support required" "$LINENO" 5 ++ if test "$use_locks" = yes; then : ++ as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5 ++else ++ ++$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h ++ ++fi + fi + + # Check whether --enable-largefile was given. +@@ -5246,6 +5382,22 @@ else + fi + + ++# Check whether --enable-werror was given. ++if test "${enable_werror+set}" = set; then : ++ enableval=$enable_werror; enable_werror=$enableval ++else ++ enable_werror=yes ++fi ++ ++ if test "$enable_werror" = yes; then ++ BUILD_WERROR_TRUE= ++ BUILD_WERROR_FALSE='#' ++else ++ BUILD_WERROR_TRUE='#' ++ BUILD_WERROR_FALSE= ++fi ++ ++ + # Check whether --enable-tests-rpath was given. + if test "${enable_tests_rpath+set}" = set; then : + enableval=$enable_tests_rpath; tests_use_rpath=$enableval +@@ -5983,7 +6135,7 @@ case "$eu_version" in + esac + + # Round up to the next release API (x.y) version. +-eu_version=$(( (eu_version + 999) / 1000 )) ++eu_version=`expr ( $eu_version + 999 ) / 1000` + + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' +@@ -6729,6 +6881,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes + as_fn_error $? "conditional "BUILD_STATIC" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi ++if test -z "${BUILD_WERROR_TRUE}" && test -z "${BUILD_WERROR_FALSE}"; then ++ as_fn_error $? "conditional "BUILD_WERROR" was never defined. ++Usually this means the macro was only invoked conditionally." "$LINENO" 5 ++fi + if test -z "${TESTS_RPATH_TRUE}" && test -z "${TESTS_RPATH_FALSE}"; then + as_fn_error $? "conditional "TESTS_RPATH" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 +--- elfutils/configure.ac ++++ elfutils/configure.ac +@@ -89,6 +89,54 @@ CFLAGS="$old_CFLAGS"]) + AS_IF([test "x$ac_cv_c99" != xyes], + AC_MSG_ERROR([gcc with C99 support required])) + ++AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl ++old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -Wextra" ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])], ++ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) ++CFLAGS="$old_CFLAGS"]) ++AC_SUBST(WEXTRA) ++AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W]) ++ ++AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl ++old_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -fgnu89-inline -Werror" ++AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ++void foo (void) ++{ ++ inline void bar (void) {} ++ bar (); ++} ++extern inline void baz (void) {} ++])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) ++CFLAGS="$old_CFLAGS"]) ++AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes], ++ [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"]) ++ ++AC_CACHE_CHECK([for --as-needed linker option], ++ ac_cv_as_needed, [dnl ++cat > conftest.c <<EOF ++int main (void) { return 0; } ++EOF ++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS ++ -fPIC -shared -o conftest.so conftest.c ++ -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD]) ++then ++ ac_cv_as_needed=yes ++else ++ ac_cv_as_needed=no ++fi ++rm -f conftest*]) ++AS_IF([test "x$ac_cv_as_needed" = xyes], ++ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=]) ++AC_SUBST(LD_AS_NEEDED) ++ ++AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl ++AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])], ++ ac_cv_popcount=yes, ac_cv_popcount=no)]) ++AS_IF([test "x$ac_cv_popcount" = xyes], ++ [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])]) ++ + AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl + # Use the same flags that we use for our DSOs, so the test is representative. + # Some old compiler/linker/libc combinations fail some ways and not others. +@@ -104,7 +152,10 @@ static __thread int a; int foo (int b) { + CFLAGS="$save_CFLAGS" + LDFLAGS="$save_LDFLAGS"]) + AS_IF([test "x$ac_cv_tls" != xyes], +- AC_MSG_ERROR([__thread support required])) ++ [AS_IF([test "$use_locks" = yes], ++ [AC_MSG_ERROR([--enable-thread-safety requires __thread support])], ++ [AC_DEFINE([__thread], [/* empty: no multi-thread support */], ++ [Stubbed out if missing compiler support.])])]) + + dnl This test must come as early as possible after the compiler configuration + dnl tests, because the choice of the file model can (in principle) affect +@@ -183,6 +234,11 @@ AM_CONDITIONAL(USE_VALGRIND, test "$use_ + AM_CONDITIONAL(BUILD_STATIC, [dnl + test "$use_gprof" = yes -o "$use_gcov" = yes]) + ++AC_ARG_ENABLE([werror], ++AS_HELP_STRING([--disable-werror],[do not build with -Werror]), ++ [enable_werror=$enableval], [enable_werror=yes]) ++AM_CONDITIONAL(BUILD_WERROR, test "$enable_werror" = yes) ++ + AC_ARG_ENABLE([tests-rpath], + AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]), + [tests_use_rpath=$enableval], [tests_use_rpath=no]) +@@ -302,7 +358,7 @@ case "$eu_version" in + esac + + # Round up to the next release API (x.y) version. +-eu_version=$(( (eu_version + 999) / 1000 )) ++eu_version=`expr ( $eu_version + 999 ) / 1000` + + AC_CHECK_SIZEOF(long) + +--- elfutils/lib/ChangeLog ++++ elfutils/lib/ChangeLog +@@ -65,6 +65,9 @@ + + 2009-01-23 Roland McGrath roland@redhat.com + ++ * eu-config.h [! HAVE_BUILTIN_POPCOUNT] ++ (__builtin_popcount): New inline function. ++ + * eu-config.h: Add multiple inclusion protection. + + 2009-01-17 Ulrich Drepper drepper@redhat.com +@@ -121,6 +124,11 @@ + * Makefile.am (libeu_a_SOURCES): Add it. + * system.h: Declare crc32_file. + ++2005-02-07 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-04-30 Ulrich Drepper drepper@redhat.com + + * Makefile.am: Use -ffunction-sections for xmalloc.c. +--- elfutils/lib/eu-config.h ++++ elfutils/lib/eu-config.h +@@ -162,6 +162,17 @@ asm (".section predict_data, "aw"; .pr + /* This macro is used by the tests conditionalize for standalone building. */ + #define ELFUTILS_HEADER(name) <lib##name.h> + ++#ifndef HAVE_BUILTIN_POPCOUNT ++# define __builtin_popcount hakmem_popcount ++static inline unsigned int __attribute__ ((unused)) ++hakmem_popcount (unsigned int x) ++{ ++ /* HAKMEM 169 */ ++ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111); ++ return ((n + (n >> 3)) & 030707070707) % 63; ++} ++#endif /* HAVE_BUILTIN_POPCOUNT */ ++ + + #ifdef SHARED + # define OLD_VERSION(name, version) \ +--- elfutils/lib/Makefile.in ++++ elfutils/lib/Makefile.in +@@ -82,6 +82,7 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + subdir = lib + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -197,6 +198,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -228,6 +230,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -289,9 +292,11 @@ top_srcdir = @top_srcdir@ + zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(srcdir)/../libelf +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ + $($(*F)_no_Werror),,-Werror) $(if \ +- $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) -fpic + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +--- elfutils/libasm/ChangeLog ++++ elfutils/libasm/ChangeLog +@@ -87,6 +87,11 @@ + * asm_error.c: Add new error ASM_E_IOERROR. + * libasmP.h: Add ASM_E_IOERROR definition. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-02-15 Ulrich Drepper drepper@redhat.com + + * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. +--- elfutils/libasm/Makefile.in ++++ elfutils/libasm/Makefile.in +@@ -83,8 +83,9 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + noinst_PROGRAMS = $(am__EXEEXT_1) +-@USE_LOCKS_TRUE@am__append_1 = -lpthread ++@USE_LOCKS_TRUE@am__append_2 = -lpthread + subdir = libasm + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -248,6 +249,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -279,6 +281,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -341,11 +344,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(top_srcdir)/libelf -I$(top_srcdir)/libebl \ + -I$(top_srcdir)/libdw +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(am_libasm_pic_a_OBJECTS) \ + libasm.so.$(VERSION) +@@ -373,7 +376,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort + + libasm_pic_a_SOURCES = + am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os) +-libasm_so_LDLIBS = $(am__append_1) ++libasm_so_LDLIBS = $(am__append_2) + libasm_so_SOURCES = + noinst_HEADERS = libasmP.h symbolhash.h + EXTRA_DIST = libasm.map +--- elfutils/libcpu/ChangeLog ++++ elfutils/libcpu/ChangeLog +@@ -51,6 +51,9 @@ + + 2009-01-23 Roland McGrath roland@redhat.com + ++ * i386_disasm.c (i386_disasm): Add abort after assert-constant for old ++ compilers that don't realize it's noreturn. ++ + * Makefile.am (i386_parse_CFLAGS): Use quotes around command + substitution that can produce leading whitespace. + +@@ -380,6 +383,11 @@ + * defs/i386.doc: New file. + * defs/x86_64: New file. + ++2005-04-04 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it instead of -Wextra. ++ + 2005-02-15 Ulrich Drepper drepper@redhat.com + + * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. +--- elfutils/libcpu/i386_disasm.c ++++ elfutils/libcpu/i386_disasm.c +@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con + + default: + assert (! "INVALID not handled"); ++ abort (); + } + } + else +--- elfutils/libcpu/Makefile.in ++++ elfutils/libcpu/Makefile.in +@@ -84,6 +84,7 @@ DIST_COMMON = $(top_srcdir)/config/eu.am + $(srcdir)/Makefile.am i386_lex.c i386_parse.c \ + $(top_srcdir)/config/depcomp $(top_srcdir)/config/ylwrap \ + $(am__noinst_HEADERS_DIST) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + @MAINTAINER_MODE_TRUE@noinst_PROGRAMS = i386_gendis$(EXEEXT) + subdir = libcpu + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -223,6 +224,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = lex.$(<F:lex.l=) +@@ -254,6 +256,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -316,10 +319,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I$(srcdir)/../libasm +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ + $($(*F)_no_Werror),,-Werror) $(if \ +- $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic \ +- -fdollars-in-identifiers ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) -fpic -fdollars-in-identifiers + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(foreach P,i386 x86_64,$P_defs \ + $P.mnemonics) +--- elfutils/libdw/ChangeLog ++++ elfutils/libdw/ChangeLog +@@ -717,6 +717,10 @@ + + * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk. + ++2011-07-20 Mark Wielaard mjw@redhat.com ++ ++ * dwarf_begin_elf.c: Add fallback for be64toh if not defined. ++ + 2011-07-14 Mark Wielaard mjw@redhat.com + + * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. +@@ -1076,6 +1080,10 @@ + + * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. + ++2009-08-17 Roland McGrath roland@redhat.com ++ ++ * libdw.h: Disable extern inlines for GCC 4.2. ++ + 2009-08-10 Roland McGrath roland@redhat.com + + * dwarf_getscopevar.c: Use dwarf_diename. +@@ -1844,6 +1852,11 @@ + + 2005-05-31 Roland McGrath roland@redhat.com + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ ++2005-05-31 Roland McGrath roland@redhat.com ++ + * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to + formref offset. + +--- elfutils/libdw/dwarf_begin_elf.c ++++ elfutils/libdw/dwarf_begin_elf.c +@@ -47,6 +47,14 @@ + #if USE_ZLIB + # include <endian.h> + # define crc32 loser_crc32 ++# ifndef be64toh ++# include <byteswap.h> ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define be64toh(x) bswap_64 (x) ++# else ++# define be64toh(x) (x) ++# endif ++# endif + # include <zlib.h> + # undef crc32 + #endif +--- elfutils/libdw/libdw.h ++++ elfutils/libdw/libdw.h +@@ -1003,7 +1003,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( + + + /* Inline optimizations. */ +-#ifdef __OPTIMIZE__ ++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) + /* Return attribute code of given attribute. */ + __libdw_extern_inline unsigned int + dwarf_whatattr (Dwarf_Attribute *attr) +--- elfutils/libdw/Makefile.in ++++ elfutils/libdw/Makefile.in +@@ -84,7 +84,8 @@ DIST_COMMON = $(top_srcdir)/config/eu.am + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(include_HEADERS) $(noinst_HEADERS) $(pkginclude_HEADERS) \ + ChangeLog +-@BUILD_STATIC_TRUE@am__append_1 = -fpic ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@BUILD_STATIC_TRUE@am__append_2 = -fpic + noinst_PROGRAMS = $(am__EXEEXT_1) + subdir = libdw + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -298,6 +299,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -329,6 +331,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -390,10 +393,11 @@ top_srcdir = @top_srcdir@ + zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(srcdir)/../libelf +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ + $($(*F)_no_Werror),,-Werror) $(if \ +- $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) \ +- $(am__append_1) ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) $(am__append_2) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +--- elfutils/libdwelf/Makefile.in ++++ elfutils/libdwelf/Makefile.in +@@ -82,6 +82,7 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + subdir = libdwelf + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -227,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -258,6 +260,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -320,11 +323,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(srcdir)/../libelf -I$(srcdir)/../libdw \ + -I$(srcdir)/../libdwfl -I$(srcdir)/../libebl +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(am_libdwelf_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +--- elfutils/libdwfl/ChangeLog ++++ elfutils/libdwfl/ChangeLog +@@ -571,6 +571,21 @@ + (dwfl_module_addrsym) (i_to_symfile): New function. + (dwfl_module_addrsym) (search_table): Use it. + ++2013-11-09 Jan Kratochvil jan.kratochvil@redhat.com ++ ++ Older OS compatibility bits. ++ * linux-core-attach.c (be64toh, le64toh, be32toh, le32toh): Provide ++ fallbacks if not defined by system. ++ ++2013-11-09 Jan Kratochvil jan.kratochvil@redhat.com ++ ++ Handle T-stopped detach for old kernels. ++ * linux-pid-attach.c (struct pid_arg): New field stopped. ++ (ptrace_attach): New parameter stoppedp. Set it appropriately. ++ (pid_set_initial_registers): Pass the new field. ++ (pid_thread_detach): Handle the case of STOPPED for old kernels. ++ (__libdwfl_attach_state_for_pid): Initialize STOPPED. ++ + 2013-11-07 Jan Kratochvil jan.kratochvil@redhat.com + Mark Wielaard mjw@redhat.com + +@@ -2336,6 +2351,11 @@ + + 2005-07-21 Roland McGrath roland@redhat.com + ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ ++2005-07-21 Roland McGrath roland@redhat.com ++ + * Makefile.am (noinst_HEADERS): Add loc2c.c. + + * test2.c (main): Check sscanf result to quiet warning. +--- elfutils/libdwfl/linux-core-attach.c ++++ elfutils/libdwfl/linux-core-attach.c +@@ -29,6 +29,35 @@ + #include "libdwflP.h" + #include <fcntl.h> + #include "system.h" ++#include <endian.h> ++#include <byteswap.h> ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++# ifndef be64toh ++# define be64toh(x) bswap_64 (x) ++# endif ++# ifndef le64toh ++# define le64toh(x) (x) ++# endif ++# ifndef be32toh ++# define be32toh(x) bswap_32 (x) ++# endif ++# ifndef le32toh ++# define le32toh(x) (x) ++# endif ++#else ++# ifndef be64toh ++# define be64toh(x) (x) ++# endif ++# ifndef le64toh ++# define le64toh(x) bswap_64 (x) ++# endif ++# ifndef be32toh ++# define be32toh(x) (x) ++# endif ++# ifndef le32toh ++# define le32toh(x) bswap_32 (x) ++# endif ++#endif + + #include "../libdw/memory-access.h" + +--- elfutils/libdwfl/linux-pid-attach.c ++++ elfutils/libdwfl/linux-pid-attach.c +@@ -255,6 +255,11 @@ void + internal_function + __libdwfl_ptrace_detach (pid_t tid, bool tid_was_stopped) + { ++ // Older kernels (tested kernel-2.6.18-348.12.1.el5.x86_64) need special ++ // handling of the detachment to keep the process State: T (stopped). ++ if (tid_was_stopped) ++ syscall (__NR_tkill, tid, SIGSTOP); ++ + /* This handling is needed only on older Linux kernels such as + 2.6.32-358.23.2.el6.ppc64. Later kernels such as + 3.11.7-200.fc19.x86_64 remember the T (stopped) state +@@ -262,6 +267,15 @@ __libdwfl_ptrace_detach (pid_t tid, bool + PTRACE_DETACH. */ + ptrace (PTRACE_DETACH, tid, NULL, + (void *) (intptr_t) (tid_was_stopped ? SIGSTOP : 0)); ++ ++ if (tid_was_stopped) ++ { ++ // Wait till the SIGSTOP settles down. ++ int i; ++ for (i = 0; i < 100000; i++) ++ if (linux_proc_pid_is_stopped (tid)) ++ break; ++ } + } + + static void +--- elfutils/libdwfl/Makefile.in ++++ elfutils/libdwfl/Makefile.in +@@ -82,9 +82,10 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog +-@ZLIB_TRUE@am__append_1 = gzip.c +-@BZLIB_TRUE@am__append_2 = bzip2.c +-@LZMA_TRUE@am__append_3 = lzma.c ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@ZLIB_TRUE@am__append_2 = gzip.c ++@BZLIB_TRUE@am__append_3 = bzip2.c ++@LZMA_TRUE@am__append_4 = lzma.c + subdir = libdwfl + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -286,6 +287,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -317,6 +319,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -379,11 +382,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. -I$(srcdir) \ + -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -413,8 +416,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en + dwfl_module_register_names.c dwfl_segment_report_module.c \ + link_map.c core-file.c open.c image-header.c dwfl_frame.c \ + frame_unwind.c dwfl_frame_pc.c linux-pid-attach.c \ +- linux-core-attach.c dwfl_frame_regs.c $(am__append_1) \ +- $(am__append_2) $(am__append_3) ++ linux-core-attach.c dwfl_frame_regs.c $(am__append_2) \ ++ $(am__append_3) $(am__append_4) + libdwfl = $(libdw) + libdw = ../libdw/libdw.so + libelf = ../libelf/libelf.so +--- elfutils/libebl/ChangeLog ++++ elfutils/libebl/ChangeLog +@@ -765,6 +765,11 @@ + * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency + tracking works right. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-21 Ulrich Drepper drepper@redhat.com + + * libebl_x86_64.map: Add x86_64_core_note. +--- elfutils/libebl/Makefile.in ++++ elfutils/libebl/Makefile.in +@@ -82,6 +82,7 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(noinst_HEADERS) $(pkginclude_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + subdir = libebl + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -249,6 +250,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -280,6 +282,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -342,9 +345,11 @@ zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. \ + -I$(srcdir)/../libelf -I$(srcdir)/../libdw \ + -I$(srcdir)/../libasm +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ + $($(*F)_no_Werror),,-Werror) $(if \ +- $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) -fpic ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) -fpic + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(am_libebl_pic_a_OBJECTS) + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +--- elfutils/libelf/ChangeLog ++++ elfutils/libelf/ChangeLog +@@ -244,6 +244,11 @@ + + * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check. + ++2011-03-10 Roland McGrath roland@redhat.com ++ ++ * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32 ++ argument, since some implementations are buggy macros. ++ + 2011-02-26 Mark Wielaard mjw@redhat.com + + * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini. +@@ -921,6 +926,11 @@ + + * elf.h: Update from glibc. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-08 Roland McGrath roland@redhat.com + + * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. +--- elfutils/libelf/common.h ++++ elfutils/libelf/common.h +@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf) + (Var) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf) + (Dst) = (sizeof (Var) == 1 \ + ? (unsigned char) (Var) \ + : (sizeof (Var) == 2 \ +- ? bswap_16 (Var) \ ++ ? (unsigned short int) bswap_16 (Var) \ + : (sizeof (Var) == 4 \ + ? bswap_32 (Var) \ + : bswap_64 (Var)))) +--- elfutils/libelf/gnuhash_xlate.h ++++ elfutils/libelf/gnuhash_xlate.h +@@ -1,5 +1,5 @@ + /* Conversion functions for versioning information. +- Copyright (C) 2006, 2007 Red Hat, Inc. ++ Copyright (C) 2006-2011 Red Hat, Inc. + This file is part of elfutils. + Written by Ulrich Drepper drepper@redhat.com, 2006. + +@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void + dest32 = (Elf32_Word *) &dest64[bitmask_words]; + while (len >= 4) + { +- *dest32++ = bswap_32 (*src32++); ++ *dest32 = bswap_32 (*src32); ++ ++dest32; ++ ++src32; + len -= 4; + } + } +--- elfutils/libelf/Makefile.in ++++ elfutils/libelf/Makefile.in +@@ -84,9 +84,10 @@ DIST_COMMON = $(top_srcdir)/config/eu.am + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(include_HEADERS) $(noinst_HEADERS) $(pkginclude_HEADERS) \ + ChangeLog +-@BUILD_STATIC_TRUE@am__append_1 = -fpic ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@BUILD_STATIC_TRUE@am__append_2 = -fpic + noinst_PROGRAMS = $(am__EXEEXT_1) +-@USE_LOCKS_TRUE@am__append_2 = -lpthread ++@USE_LOCKS_TRUE@am__append_3 = -lpthread + subdir = libelf + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -291,6 +292,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -322,6 +324,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = 1 ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -382,10 +385,11 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + zip_LIBS = @zip_LIBS@ + AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \ ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ + $($(*F)_no_Werror),,-Werror) $(if \ +- $($(*F)_no_Wunused),,-Wunused -Wextra) $($(*F)_CFLAGS) \ +- $(am__append_1) ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) $(am__append_2) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda $(am_libelf_pic_a_OBJECTS) \ + libelf.so.$(VERSION) +@@ -449,7 +453,7 @@ libelf_a_SOURCES = elf_version.c elf_has + + libelf_pic_a_SOURCES = + am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) +-libelf_so_LDLIBS = $(am__append_2) ++libelf_so_LDLIBS = $(am__append_3) + libelf_so_SOURCES = + noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \ + version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h +--- elfutils/m4/Makefile.in ++++ elfutils/m4/Makefile.in +@@ -145,6 +145,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -176,6 +177,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +--- elfutils/Makefile.in ++++ elfutils/Makefile.in +@@ -263,6 +263,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -294,6 +295,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +--- elfutils/src/addr2line.c ++++ elfutils/src/addr2line.c +@@ -540,10 +540,10 @@ handle_address (const char *string, Dwfl + bool parsed = false; + int i, j; + char *name = NULL; +- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 ++ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 + && string[i] == '\0') + parsed = adjust_to_section (name, &addr, dwfl); +- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) ++ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) + { + default: + break; +--- elfutils/src/ChangeLog ++++ elfutils/src/ChangeLog +@@ -1371,8 +1371,16 @@ + * readelf.c (attr_callback): Use print_block only when we don't use + print_ops. + ++2009-08-17 Roland McGrath roland@redhat.com ++ ++ * ld.h: Disable extern inlines for GCC 4.2. ++ + 2009-08-14 Roland McGrath roland@redhat.com + ++ * strings.c (read_block): Conditionalize posix_fadvise use ++ on [POSIX_FADV_SEQUENTIAL]. ++ From Petr Salinger Petr.Salinger@seznam.cz. ++ + * ar.c (do_oper_extract): Use pathconf instead of statfs. + + 2009-08-01 Ulrich Drepper drepper@redhat.com +@@ -1536,6 +1544,8 @@ + * readelf.c (print_debug_frame_section): Use t instead of j formats + for ptrdiff_t OFFSET. + ++ * addr2line.c (handle_address): Use %a instead of %m for compatibility. ++ + 2009-01-21 Ulrich Drepper drepper@redhat.com + + * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section +@@ -1719,6 +1729,11 @@ + that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really + is valid in RELRO. + ++2008-03-01 Roland McGrath roland@redhat.com ++ ++ * readelf.c (dump_archive_index): Tweak portability hack ++ to match [__GNUC__ < 4] too. ++ + 2008-02-29 Roland McGrath roland@redhat.com + + * readelf.c (print_attributes): Add a cast. +@@ -1970,6 +1985,8 @@ + + * readelf.c (hex_dump): Fix rounding error in whitespace calculation. + ++ * Makefile.am (readelf_no_Werror): New variable. ++ + 2007-10-15 Roland McGrath roland@redhat.com + + * make-debug-archive.in: New file. +@@ -2409,6 +2426,10 @@ + * elflint.c (valid_e_machine): Add EM_ALPHA. + Reported by Christian Aichinger Greek0@gmx.net. + ++ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to ++ MADV_SEQUENTIAL if undefined. Don't call posix_madvise ++ if neither is defined. ++ + 2006-08-08 Ulrich Drepper drepper@redhat.com + + * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. +@@ -2485,6 +2506,10 @@ + * Makefile.am: Add hacks to create dependency files for non-generic + linker. + ++2006-04-05 Roland McGrath roland@redhat.com ++ ++ * strings.c (MAP_POPULATE): Define to 0 if undefined. ++ + 2006-06-12 Ulrich Drepper drepper@redhat.com + + * ldgeneric.c (ld_generic_generate_sections): Don't create .interp +@@ -2833,6 +2858,11 @@ + * readelf.c (print_debug_loc_section): Fix indentation for larger + address size. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-30 Roland McGrath roland@redhat.com + + * readelf.c (print_debug_line_section): Print section offset of each +--- elfutils/src/findtextrel.c ++++ elfutils/src/findtextrel.c +@@ -502,7 +502,11 @@ ptrcompare (const void *p1, const void * + + + static void +-check_rel (size_t nsegments, struct segments segments[nsegments], ++check_rel (size_t nsegments, struct segments segments[ ++#if __GNUC__ >= 4 ++ nsegments ++#endif ++ ], + GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw, + const char *fname, bool more_than_one, void **knownsrcs) + { +--- elfutils/src/ld.h ++++ elfutils/src/ld.h +@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void); + + /* Checked whether the symbol is undefined and referenced from a DSO. */ + extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); ++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) + #ifdef __GNUC_STDC_INLINE__ + __attribute__ ((__gnu_inline__)) + #endif +@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin + + return sym->defined && sym->in_dso; + } ++#endif /* Optimizing and not GCC 4.2. */ + + #endif /* ld.h */ +--- elfutils/src/Makefile.am ++++ elfutils/src/Makefile.am +@@ -89,6 +89,11 @@ endif + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes + ++# Buggy old compilers or libc headers. ++readelf_no_Werror = yes ++strings_no_Werror = yes ++addr2line_no_Wformat = yes ++ + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \ + $(demanglelib) +--- elfutils/src/Makefile.in ++++ elfutils/src/Makefile.in +@@ -85,6 +85,7 @@ DIST_COMMON = $(top_srcdir)/config/eu.am + $(srcdir)/Makefile.am ldlex.c ldscript.c \ + $(top_srcdir)/config/depcomp $(top_srcdir)/config/ylwrap \ + $(noinst_HEADERS) ChangeLog ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) + bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \ + strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT) \ + findtextrel$(EXEEXT) addr2line$(EXEEXT) elfcmp$(EXEEXT) \ +@@ -93,9 +94,9 @@ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEE + @NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1) + # We never build this library but we need to get the dependency files + # of all the linker backends that might be used in a non-generic linker. +-@NEVER_TRUE@am__append_1 = libdummy.a ++@NEVER_TRUE@am__append_2 = libdummy.a + # -ldl is always needed for libebl. +-@NATIVE_LD_TRUE@am__append_2 = libld_elf.a ++@NATIVE_LD_TRUE@am__append_3 = libld_elf.a + @NATIVE_LD_TRUE@am_libld_elf_i386_pic_a_OBJECTS = + subdir = src + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -159,7 +160,7 @@ am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$ + ldscript.$(OBJEXT) symbolhash.$(OBJEXT) sectionhash.$(OBJEXT) \ + versionhash.$(OBJEXT) + ld_OBJECTS = $(am_ld_OBJECTS) +-ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__append_2) ++ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__append_3) + ld_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ld_LDFLAGS) $(LDFLAGS) -o \ + $@ + am_libld_elf_i386_so_OBJECTS = +@@ -340,6 +341,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -371,6 +373,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -434,11 +437,11 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr + -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ + -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \ + -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda make-debug-archive none_ld.os \ + $(ld_modules:.c=.os) *.gconv +@@ -452,8 +455,8 @@ AM_LFLAGS = -Pld -olex.yy.c + native_ld = @native_ld@ + ld_dsos = libld_elf_i386_pic.a + @NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \ +-@NATIVE_LD_FALSE@ $(am__append_1) +-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_1) ++@NATIVE_LD_FALSE@ $(am__append_2) ++@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_2) + @NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu) + @NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c + ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \ +@@ -479,13 +482,18 @@ libeu = ../lib/libeu.a + + # XXX While the file is not finished, don't warn about this + ldgeneric_no_Wunused = yes ++ ++# Buggy old compilers or libc headers. ++readelf_no_Werror = yes ++strings_no_Werror = yes ++addr2line_no_Wformat = yes + readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl + nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \ + $(demanglelib) + + size_LDADD = $(libelf) $(libeu) + strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl +-ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_2) ++ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(am__append_3) + ld_LDFLAGS = -rdynamic + elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl + findtextrel_LDADD = $(libdw) $(libelf) +--- elfutils/src/readelf.c ++++ elfutils/src/readelf.c +@@ -4368,10 +4368,12 @@ listptr_base (struct listptr *p) + return base; + } + ++static const char *listptr_name; ++ + static int +-compare_listptr (const void *a, const void *b, void *arg) ++compare_listptr (const void *a, const void *b) + { +- const char *name = arg; ++ const char *const name = listptr_name; + struct listptr *p1 = (void *) a; + struct listptr *p2 = (void *) b; + +@@ -4467,8 +4469,11 @@ static void + sort_listptr (struct listptr_table *table, const char *name) + { + if (table->n > 0) +- qsort_r (table->table, table->n, sizeof table->table[0], +- &compare_listptr, (void *) name); ++ { ++ listptr_name = name; ++ qsort (table->table, table->n, sizeof table->table[0], ++ &compare_listptr); ++ } + } + + static bool +@@ -9539,7 +9544,7 @@ dump_archive_index (Elf *elf, const char + if (unlikely (elf_rand (elf, as_off) == 0) + || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf)) + == NULL)) +-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) ++#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4 + while (1) + #endif + error (EXIT_FAILURE, 0, +--- elfutils/src/strings.c ++++ elfutils/src/strings.c +@@ -43,6 +43,10 @@ + + #include <system.h> + ++#ifndef MAP_POPULATE ++# define MAP_POPULATE 0 ++#endif ++ + + /* Prototypes of local functions. */ + static int read_fd (int fd, const char *fname, off64_t fdlen); +@@ -489,8 +493,13 @@ map_file (int fd, off64_t start_off, off + fd, start_off); + if (mem != MAP_FAILED) + { ++#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL ++# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL ++#endif ++#ifdef POSIX_MADV_SEQUENTIAL + /* We will go through the mapping sequentially. */ + (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL); ++#endif + break; + } + if (errno != EINVAL && errno != ENOMEM) +@@ -581,9 +590,11 @@ read_block (int fd, const char *fname, o + elfmap_off = from & ~(ps - 1); + elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); + ++#ifdef POSIX_FADV_SEQUENTIAL + if (unlikely (elfmap == MAP_FAILED)) + /* Let the kernel know we are going to read everything in sequence. */ + (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL); ++#endif + } + + if (unlikely (elfmap == MAP_FAILED)) +--- elfutils/src/strip.c ++++ elfutils/src/strip.c +@@ -45,6 +45,12 @@ + #include <libebl.h> + #include <system.h> + ++#ifdef HAVE_FUTIMES ++# define FUTIMES(fd, fname, tvp) futimes (fd, tvp) ++#else ++# define FUTIMES(fd, fname, tvp) utimes (fname, tvp) ++#endif ++ + typedef uint8_t GElf_Byte; + + /* Name and version of program. */ +@@ -318,8 +324,18 @@ process_file (const char *fname) + + /* If we have to preserve the timestamp, we need it in the + format utimes() understands. */ ++#ifdef HAVE_STRUCT_STAT_ST_ATIM + TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim); ++#else ++ tv[0].tv_sec = pre_st.st_atime; ++ tv[0].tv_usec = 0; ++#endif ++#ifdef HAVE_STRUCT_STAT_ST_MTIM + TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim); ++#else ++ tv[1].tv_sec = pre_st.st_atime; ++ tv[1].tv_usec = 0; ++#endif + } + + /* Open the file. */ +@@ -2091,7 +2107,7 @@ while computing checksum for debug infor + /* If requested, preserve the timestamp. */ + if (tvp != NULL) + { +- if (futimes (fd, tvp) != 0) ++ if (FUTIMES (fd, output_fname, tvp) != 0) + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), +@@ -2148,7 +2164,7 @@ handle_ar (int fd, Elf *elf, const char + + if (tvp != NULL) + { +- if (unlikely (futimes (fd, tvp) != 0)) ++ if (unlikely (FUTIMES (fd, fname, tvp) != 0)) + { + error (0, errno, gettext ("\ + cannot set access and modification date of '%s'"), fname); +--- elfutils/tests/backtrace.c ++++ elfutils/tests/backtrace.c +@@ -36,6 +36,7 @@ + #include <fcntl.h> + #include <string.h> + #include <argp.h> ++#include <sys/syscall.h> + #include ELFUTILS_HEADER(dwfl) + + #ifndef __linux__ +--- elfutils/tests/ChangeLog ++++ elfutils/tests/ChangeLog +@@ -421,6 +421,13 @@ + + 2013-12-02 Jan Kratochvil jan.kratochvil@redhat.com + ++ Handle T-stopped detach for old kernels. ++ * backtrace.c: Include sys/syscall.h. ++ (linux_proc_pid_is_stopped): New function. ++ (ptrace_detach_stopped): Handle old kernels. ++ ++2013-12-02 Jan Kratochvil jan.kratochvil@redhat.com ++ + * Makefile.am (check_PROGRAMS): Add backtrace, backtrace-child, + backtrace-data and backtrace-dwarf. + (BUILT_SOURCES, clean-local, backtrace-child-biarch): New. +@@ -1285,6 +1292,8 @@ + + 2008-01-21 Roland McGrath roland@redhat.com + ++ * line2addr.c (main): Revert last change. ++ + * testfile45.S.bz2: Add tests for cltq, cqto. + * testfile45.expect.bz2: Adjust. + +@@ -1993,6 +2002,11 @@ + * Makefile.am (TESTS): Add run-elflint-test.sh. + (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. + ++2005-05-31 Roland McGrath roland@redhat.com ++ ++ * Makefile.am (WEXTRA): New variable, substituted by configure. ++ (AM_CFLAGS): Use it in place of -Wextra. ++ + 2005-05-24 Ulrich Drepper drepper@redhat.com + + * get-files.c (main): Use correct format specifier. +--- elfutils/tests/line2addr.c ++++ elfutils/tests/line2addr.c +@@ -124,7 +124,7 @@ main (int argc, char *argv[]) + { + struct args a = { .arg = argv[cnt] }; + +- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line)) ++ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line)) + { + default: + case 0: +--- elfutils/tests/Makefile.am ++++ elfutils/tests/Makefile.am +@@ -365,6 +365,7 @@ get_lines_LDADD = $(libdw) $(libelf) + get_files_LDADD = $(libdw) $(libelf) + get_aranges_LDADD = $(libdw) $(libelf) + allfcts_LDADD = $(libdw) $(libelf) ++line2addr_no_Wformat = yes + line2addr_LDADD = $(libdw) + addrscopes_LDADD = $(libdw) + funcscopes_LDADD = $(libdw) +--- elfutils/tests/Makefile.in ++++ elfutils/tests/Makefile.in +@@ -80,13 +80,14 @@ host_triplet = @host@ + DIST_COMMON = $(top_srcdir)/config/eu.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/depcomp \ + $(top_srcdir)/config/test-driver ChangeLog +-@STANDALONE_FALSE@am__append_1 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \ ++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror) ++@STANDALONE_FALSE@am__append_2 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \ + @STANDALONE_FALSE@ -I$(top_srcdir)/libdwfl -I$(top_srcdir)/libdwelf \ + @STANDALONE_FALSE@ -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \ + @STANDALONE_FALSE@ -I$(top_srcdir)/lib -I.. + +-@STANDALONE_FALSE@am__append_2 = -Wl,-rpath-link,../libasm:../libdw:../libelf +-@TESTS_RPATH_TRUE@am__append_3 = -Wl,-rpath,$(BUILD_RPATH) ++@STANDALONE_FALSE@am__append_3 = -Wl,-rpath-link,../libasm:../libdw:../libelf ++@TESTS_RPATH_TRUE@am__append_4 = -Wl,-rpath,$(BUILD_RPATH) + check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \ + newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \ + sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \ +@@ -113,7 +114,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy + deleted$(EXEEXT) deleted-lib.so$(EXEEXT) \ + aggregate_size$(EXEEXT) vdsosyms$(EXEEXT) $(am__EXEEXT_1) \ + $(am__EXEEXT_2) $(am__EXEEXT_4) +-@BIARCH_TRUE@am__append_4 = backtrace-child-biarch ++@BIARCH_TRUE@am__append_5 = backtrace-child-biarch + TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \ + test-nlist$(EXEEXT) update1$(EXEEXT) update2$(EXEEXT) \ + update3$(EXEEXT) update4$(EXEEXT) run-show-die-info.sh \ +@@ -159,14 +160,14 @@ TESTS = run-arextract.sh run-arsymtest.s + run-stack-i-test.sh run-readelf-dwz-multi.sh \ + run-allfcts-multi.sh run-deleted.sh run-linkmap-cut.sh \ + run-aggregate-size.sh vdsosyms$(EXEEXT) run-readelf-A.sh \ +- $(am__EXEEXT_2) $(am__append_7) $(am__append_8) \ ++ $(am__EXEEXT_2) $(am__append_8) $(am__append_9) \ + $(am__EXEEXT_4) +-@STANDALONE_FALSE@am__append_5 = msg_tst md5-sha1-test + @STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test +-@LZMA_TRUE@am__append_7 = run-readelf-s.sh run-dwflsyms.sh +-@ZLIB_TRUE@am__append_8 = run-readelf-zdebug.sh +-@HAVE_LIBASM_TRUE@am__append_9 = $(asm_TESTS) ++@STANDALONE_FALSE@am__append_7 = msg_tst md5-sha1-test ++@LZMA_TRUE@am__append_8 = run-readelf-s.sh run-dwflsyms.sh ++@ZLIB_TRUE@am__append_9 = run-readelf-zdebug.sh + @HAVE_LIBASM_TRUE@am__append_10 = $(asm_TESTS) ++@HAVE_LIBASM_TRUE@am__append_11 = $(asm_TESTS) + subdir = tests + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \ +@@ -787,6 +788,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + LDFLAGS = @LDFLAGS@ ++LD_AS_NEEDED = @LD_AS_NEEDED@ + LEX = @LEX@ + LEXLIB = @LEXLIB@ + LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +@@ -818,6 +820,7 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ ++WEXTRA = @WEXTRA@ + XGETTEXT = @XGETTEXT@ + XGETTEXT_015 = @XGETTEXT_015@ + XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +@@ -877,12 +880,12 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + zip_LIBS = @zip_LIBS@ +-AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_1) +-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ +- $(if $($(*F)_no_Werror),,-Werror) \ +- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ +- $($(*F)_CFLAGS) +- ++AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2) ++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ ++ $($(*F)_no_Werror),,-Werror) $(if \ ++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ ++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ ++ $(am__append_1) + COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) + CLEANFILES = *.gcno *.gcda + textrel_msg = echo "WARNING: TEXTREL found in '$@'" +@@ -890,7 +893,7 @@ textrel_msg = echo "WARNING: TEXTREL fou + @FATAL_TEXTREL_TRUE@textrel_found = $(textrel_msg); exit 1 + textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi + BUILD_RPATH = $$ORIGIN/../libasm:$$ORIGIN/../libdw:$$ORIGIN/../backends:$$ORIGIN/../libelf +-AM_LDFLAGS = $(am__append_2) $(am__append_3) ++AM_LDFLAGS = $(am__append_3) $(am__append_4) + @TESTS_RPATH_FALSE@tests_rpath = no + @TESTS_RPATH_TRUE@tests_rpath = yes + asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ +@@ -1106,6 +1109,7 @@ get_lines_LDADD = $(libdw) $(libelf) + get_files_LDADD = $(libdw) $(libelf) + get_aranges_LDADD = $(libdw) $(libelf) + allfcts_LDADD = $(libdw) $(libelf) ++line2addr_no_Wformat = yes + line2addr_LDADD = $(libdw) + addrscopes_LDADD = $(libdw) + funcscopes_LDADD = $(libdw) diff --git a/elfutils/patches/elfutils-portability.patch b/elfutils/patches/elfutils-portability.patch deleted file mode 100644 index d4fa95f..0000000 --- a/elfutils/patches/elfutils-portability.patch +++ /dev/null @@ -1,1245 +0,0 @@ ---- elfutils/backends/ChangeLog -+++ elfutils/backends/ChangeLog -@@ -111,6 +111,10 @@ - * ppc_attrs.c (ppc_check_object_attribute): Handle tag - GNU_Power_ABI_Struct_Return. - -+2009-01-23 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED). -+ - 2008-10-04 Ulrich Drepper drepper@redhat.com - - * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and -@@ -438,6 +442,11 @@ - * sparc_init.c: Likewise. - * x86_64_init.c: Likewise. - -+2005-11-22 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure. -+ (libebl_%.so rule): Use it in place of -Wl,--as-needed. -+ - 2005-11-19 Roland McGrath roland@redhat.com - - * ppc64_reloc.def: REL30 -> ADDR30. -@@ -460,6 +469,9 @@ - * Makefile.am (uninstall): Don't try to remove $(pkgincludedir). - (CLEANFILES): Add libebl_$(m).so. - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - * ppc_reloc.def: Update bits per Alan Modra amodra@bigpond.net.au. - * ppc64_reloc.def: Likewise. - ---- elfutils/backends/Makefile.am -+++ elfutils/backends/Makefile.am -@@ -103,7 +103,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a - $(LINK) -shared -o $(@:.map=.so) \ - -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ - -Wl,--version-script,$(@:.so=.map) \ -- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap) -+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap) - $(textrel_check) - - libebl_i386.so: $(cpu_i386) ---- elfutils/backends/Makefile.in -+++ elfutils/backends/Makefile.in -@@ -165,6 +165,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -194,6 +195,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -257,7 +259,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) - @MUDFLAP_FALSE@libmudflap = -@@ -698,7 +700,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a - $(LINK) -shared -o $(@:.map=.so) \ - -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \ - -Wl,--version-script,$(@:.so=.map) \ -- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw) $(libmudflap) -+ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw) $(libmudflap) - $(textrel_check) - - libebl_i386.so: $(cpu_i386) ---- elfutils/ChangeLog -+++ elfutils/ChangeLog -@@ -13,6 +13,10 @@ - - * configure.ac (LOCALEDIR, DATADIRNAME): Removed. - -+2009-11-22 Roland McGrath roland@redhat.com -+ -+ * configure.ac: Use sed and expr instead of modern bash extensions. -+ - 2009-09-21 Ulrich Drepper drepper@redhat.com - - * configure.ac: Update for more modern autoconf. -@@ -21,6 +25,10 @@ - - * configure.ac (zip_LIBS): Check for liblzma too. - -+2009-08-17 Roland McGrath roland@redhat.com -+ -+ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works. -+ - 2009-04-19 Roland McGrath roland@redhat.com - - * configure.ac (eu_version): Round down here, not in version.h macros. -@@ -32,6 +40,8 @@ - - 2009-01-23 Roland McGrath roland@redhat.com - -+ * configure.ac: Check for __builtin_popcount. -+ - * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3. - - * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of -@@ -112,6 +122,10 @@ - * configure.ac: Add dummy automake conditional to get dependencies - for non-generic linker right. See src/Makefile.am. - -+2005-11-22 Roland McGrath roland@redhat.com -+ -+ * configure.ac: Check for --as-needed linker option. -+ - 2005-11-18 Roland McGrath roland@redhat.com - - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable. -@@ -159,6 +173,17 @@ - * Makefile.am (all_SUBDIRS): Add libdwfl. - * configure.ac: Write libdwfl/Makefile. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * configure.ac (WEXTRA): Check for -Wextra and set this substitution. -+ -+ * configure.ac: Check for struct stat st_?tim members. -+ * src/strip.c (process_file): Use st_?time if st_?tim are not there. -+ -+ * configure.ac: Check for futimes function. -+ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead. -+ (handle_ar) [! HAVE_FUTIMES]: Likewise. -+ - 2005-05-19 Roland McGrath roland@redhat.com - - * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros. ---- elfutils/config/eu.am -+++ elfutils/config/eu.am -@@ -25,11 +25,14 @@ - ## http://www.openinventionnetwork.com. - ## - -+WEXTRA = @WEXTRA@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ -+ - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' - INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. - AM_CFLAGS = -std=gnu99 -Wall -Wshadow \ - $(if $($(*F)_no_Werror),,-Werror) \ -- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ -+ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \ - $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \ - $($(*F)_CFLAGS) - ---- elfutils/config/Makefile.in -+++ elfutils/config/Makefile.in -@@ -76,6 +76,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -105,6 +106,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ---- elfutils/config.h.in -+++ elfutils/config.h.in -@@ -1,5 +1,8 @@ - /* config.h.in. Generated from configure.ac by autoheader. */ - -+/* Have __builtin_popcount. */ -+#undef HAVE_BUILTIN_POPCOUNT -+ - /* $libdir subdirectory containing libebl modules. */ - #undef LIBEBL_SUBDIR - -@@ -55,4 +58,7 @@ - /* Define for large files, on AIX-style hosts. */ - #undef _LARGE_FILES - -+/* Stubbed out if missing compiler support. */ -+#undef __thread -+ - #include <eu-config.h> ---- elfutils/configure -+++ elfutils/configure -@@ -602,6 +602,8 @@ NEVER_TRUE - base_cpu - NATIVE_LD_FALSE - NATIVE_LD_TRUE -+LD_AS_NEEDED -+WEXTRA - LEXLIB - LEX_OUTPUT_ROOT - LEX -@@ -3856,6 +3858,130 @@ if test "x$ac_cv_c99" != xyes; then : - as_fn_error $? "gcc with C99 support required" "$LINENO" 5 - fi - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5 -+$as_echo_n "checking for -Wextra option to $CC... " >&6; } -+if test "${ac_cv_cc_wextra+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -Wextra" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+void foo (void) { } -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_cc_wextra=yes -+else -+ ac_cv_cc_wextra=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+CFLAGS="$old_CFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5 -+$as_echo "$ac_cv_cc_wextra" >&6; } -+ -+if test "x$ac_cv_cc_wextra" = xyes; then : -+ WEXTRA=-Wextra -+else -+ WEXTRA=-W -+fi -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5 -+$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; } -+if test "${ac_cv_cc_gnu89_inline+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -fgnu89-inline -Werror" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+void foo (void) -+{ -+ inline void bar (void) {} -+ bar (); -+} -+extern inline void baz (void) {} -+ -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ ac_cv_cc_gnu89_inline=yes -+else -+ ac_cv_cc_gnu89_inline=no -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+CFLAGS="$old_CFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5 -+$as_echo "$ac_cv_cc_gnu89_inline" >&6; } -+if test "x$ac_cv_cc_gnu89_inline" = xyes; then : -+ WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline" -+fi -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5 -+$as_echo_n "checking for --as-needed linker option... " >&6; } -+if test "${ac_cv_as_needed+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat > conftest.c <<EOF -+int main (void) { return 0; } -+EOF -+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -+ -fPIC -shared -o conftest.so conftest.c -+ -Wl,--as-needed 1>&5' -+ { { eval echo ""$as_me":${as_lineno-$LINENO}: "$ac_try""; } >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: $? = $ac_status" >&5 -+ test $ac_status = 0; }; } -+then -+ ac_cv_as_needed=yes -+else -+ ac_cv_as_needed=no -+fi -+rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5 -+$as_echo "$ac_cv_as_needed" >&6; } -+if test "x$ac_cv_as_needed" = xyes; then : -+ LD_AS_NEEDED=-Wl,--as-needed -+else -+ LD_AS_NEEDED= -+fi -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5 -+$as_echo_n "checking for __builtin_popcount... " >&6; } -+if test "${ac_cv_popcount+set}" = set; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+exit (__builtin_popcount (127)); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_popcount=yes -+else -+ ac_cv_popcount=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5 -+$as_echo "$ac_cv_popcount" >&6; } -+if test "x$ac_cv_popcount" = xyes; then : -+ -+$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h -+ -+fi -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5 - $as_echo_n "checking for __thread support... " >&6; } - if test "${ac_cv_tls+set}" = set; then : -@@ -3892,7 +4018,13 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 - $as_echo "$ac_cv_tls" >&6; } - if test "x$ac_cv_tls" != xyes; then : -- as_fn_error $? "__thread support required" "$LINENO" 5 -+ if test "$use_locks" = yes; then : -+ as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5 -+else -+ -+$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h -+ -+fi - fi - - # Check whether --enable-largefile was given. -@@ -4878,7 +5010,7 @@ ac_config_files="$ac_config_files versio - - # 1.234<whatever> -> 1234<whatever> - case "$PACKAGE_VERSION" in --[0-9].*) eu_version="${PACKAGE_VERSION/./}" ;; -+[0-9].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@.@@'` ;; - *) as_fn_error $? "confused by version number '$PACKAGE_VERSION'" "$LINENO" 5 ;; - esac - case "$eu_version" in -@@ -4907,7 +5039,7 @@ case "$eu_version" in - esac - - # Round up to the next release API (x.y) version. --eu_version=$[($eu_version + 999) / 1000] -+eu_version=`expr ( $eu_version + 999 ) / 1000` - - cat >confcache <<_ACEOF - # This file is a shell script that caches the results of configure ---- elfutils/configure.ac -+++ elfutils/configure.ac -@@ -70,6 +70,54 @@ CFLAGS="$old_CFLAGS"]) - AS_IF([test "x$ac_cv_c99" != xyes], - AC_MSG_ERROR([gcc with C99 support required])) - -+AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl -+old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -Wextra" -+AC_COMPILE_IFELSE([void foo (void) { }], -+ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no) -+CFLAGS="$old_CFLAGS"]) -+AC_SUBST(WEXTRA) -+AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W]) -+ -+AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl -+old_CFLAGS="$CFLAGS" -+CFLAGS="$CFLAGS -fgnu89-inline -Werror" -+AC_COMPILE_IFELSE([ -+void foo (void) -+{ -+ inline void bar (void) {} -+ bar (); -+} -+extern inline void baz (void) {} -+], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no) -+CFLAGS="$old_CFLAGS"]) -+AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes], -+ [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"]) -+ -+AC_CACHE_CHECK([for --as-needed linker option], -+ ac_cv_as_needed, [dnl -+cat > conftest.c <<EOF -+int main (void) { return 0; } -+EOF -+if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -+ -fPIC -shared -o conftest.so conftest.c -+ -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD]) -+then -+ ac_cv_as_needed=yes -+else -+ ac_cv_as_needed=no -+fi -+rm -f conftest*]) -+AS_IF([test "x$ac_cv_as_needed" = xyes], -+ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=]) -+AC_SUBST(LD_AS_NEEDED) -+ -+AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl -+AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])], -+ ac_cv_popcount=yes, ac_cv_popcount=no)]) -+AS_IF([test "x$ac_cv_popcount" = xyes], -+ [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])]) -+ - AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl - # Use the same flags that we use for our DSOs, so the test is representative. - # Some old compiler/linker/libc combinations fail some ways and not others. -@@ -85,7 +133,10 @@ static __thread int a; int foo (int b) { - CFLAGS="$save_CFLAGS" - LDFLAGS="$save_LDFLAGS"]) - AS_IF([test "x$ac_cv_tls" != xyes], -- AC_MSG_ERROR([__thread support required])) -+ [AS_IF([test "$use_locks" = yes], -+ [AC_MSG_ERROR([--enable-thread-safety requires __thread support])], -+ [AC_DEFINE([__thread], [/* empty: no multi-thread support */], -+ [Stubbed out if missing compiler support.])])]) - - dnl This test must come as early as possible after the compiler configuration - dnl tests, because the choice of the file model can (in principle) affect -@@ -248,7 +299,7 @@ AC_SUBST([eu_version]) - - # 1.234<whatever> -> 1234<whatever> - case "$PACKAGE_VERSION" in --[[0-9]].*) eu_version="${PACKAGE_VERSION/./}" ;; -+[[0-9]].*) eu_version=`echo "$PACKAGE_VERSION" | sed 's@.@@'` ;; - *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;; - esac - case "$eu_version" in -@@ -277,6 +328,6 @@ case "$eu_version" in - esac - - # Round up to the next release API (x.y) version. --[eu_version=$[($eu_version + 999) / 1000]] -+eu_version=`expr ( $eu_version + 999 ) / 1000` - - AC_OUTPUT ---- elfutils/lib/ChangeLog -+++ elfutils/lib/ChangeLog -@@ -14,6 +14,9 @@ - - 2009-01-23 Roland McGrath roland@redhat.com - -+ * eu-config.h [! HAVE_BUILTIN_POPCOUNT] -+ (__builtin_popcount): New inline function. -+ - * eu-config.h: Add multiple inclusion protection. - - 2009-01-17 Ulrich Drepper drepper@redhat.com -@@ -70,6 +73,11 @@ - * Makefile.am (libeu_a_SOURCES): Add it. - * system.h: Declare crc32_file. - -+2005-02-07 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-04-30 Ulrich Drepper drepper@redhat.com - - * Makefile.am: Use -ffunction-sections for xmalloc.c. ---- elfutils/lib/eu-config.h -+++ elfutils/lib/eu-config.h -@@ -182,6 +182,17 @@ asm (".section predict_data, "aw"; .pr - /* This macro is used by the tests conditionalize for standalone building. */ - #define ELFUTILS_HEADER(name) <lib##name.h> - -+#ifndef HAVE_BUILTIN_POPCOUNT -+# define __builtin_popcount hakmem_popcount -+static inline unsigned int __attribute__ ((unused)) -+hakmem_popcount (unsigned int x) -+{ -+ /* HAKMEM 169 */ -+ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111); -+ return ((n + (n >> 3)) & 030707070707) % 63; -+} -+#endif /* HAVE_BUILTIN_POPCOUNT */ -+ - - #ifdef SHARED - # define OLD_VERSION(name, version) \ ---- elfutils/lib/Makefile.in -+++ elfutils/lib/Makefile.in -@@ -99,6 +99,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -128,6 +129,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -190,7 +192,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libelf - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) -fpic - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libasm/ChangeLog -+++ elfutils/libasm/ChangeLog -@@ -71,6 +71,11 @@ - * asm_error.c: Add new error ASM_E_IOERROR. - * libasmP.h: Add ASM_E_IOERROR definition. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-02-15 Ulrich Drepper drepper@redhat.com - - * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. ---- elfutils/libasm/Makefile.in -+++ elfutils/libasm/Makefile.in -@@ -147,6 +147,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -176,6 +177,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = 1 -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -239,7 +241,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(top_srcdir)/libdw - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libcpu/ChangeLog -+++ elfutils/libcpu/ChangeLog -@@ -15,6 +15,9 @@ - - 2009-01-23 Roland McGrath roland@redhat.com - -+ * i386_disasm.c (i386_disasm): Add abort after assert-constant for old -+ compilers that don't realize it's noreturn. -+ - * Makefile.am (i386_parse_CFLAGS): Use quotes around command - substitution that can produce leading whitespace. - -@@ -344,6 +347,11 @@ - * defs/i386.doc: New file. - * defs/x86_64: New file. - -+2005-04-04 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it instead of -Wextra. -+ - 2005-02-15 Ulrich Drepper drepper@redhat.com - - * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. ---- elfutils/libcpu/i386_disasm.c -+++ elfutils/libcpu/i386_disasm.c -@@ -791,6 +791,7 @@ i386_disasm (const uint8_t **startp, con - - default: - assert (! "INVALID not handled"); -+ abort (); - } - } - else ---- elfutils/libcpu/Makefile.in -+++ elfutils/libcpu/Makefile.in -@@ -116,6 +116,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = lex.$(<F:lex.l=) -@@ -145,6 +146,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -208,7 +210,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libdw -I$(srcdir)/../libasm - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) -fpic -fdollars-in-identifiers - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libdw/ChangeLog -+++ elfutils/libdw/ChangeLog -@@ -308,6 +308,10 @@ - - * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. - -+2009-08-17 Roland McGrath roland@redhat.com -+ -+ * libdw.h: Disable extern inlines for GCC 4.2. -+ - 2009-08-10 Roland McGrath roland@redhat.com - - * dwarf_getscopevar.c: Use dwarf_diename. -@@ -1076,6 +1080,11 @@ - - 2005-05-31 Roland McGrath roland@redhat.com - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-05-31 Roland McGrath roland@redhat.com -+ - * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to - formref offset. - ---- elfutils/libdw/libdw.h -+++ elfutils/libdw/libdw.h -@@ -852,7 +852,7 @@ extern Dwarf_OOM dwarf_new_oom_handler ( - - - /* Inline optimizations. */ --#ifdef __OPTIMIZE__ -+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) - /* Return attribute code of given attribute. */ - __libdw_extern_inline unsigned int - dwarf_whatattr (Dwarf_Attribute *attr) ---- elfutils/libdw/Makefile.in -+++ elfutils/libdw/Makefile.in -@@ -192,6 +192,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -221,6 +222,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = 1 -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -283,7 +285,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libelf - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) $(am__append_2) - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libdwfl/ChangeLog -+++ elfutils/libdwfl/ChangeLog -@@ -1366,6 +1366,11 @@ - - 2005-07-21 Roland McGrath roland@redhat.com - -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ -+2005-07-21 Roland McGrath roland@redhat.com -+ - * Makefile.am (noinst_HEADERS): Add loc2c.c. - - * test2.c (main): Check sscanf result to quiet warning. ---- elfutils/libdwfl/Makefile.in -+++ elfutils/libdwfl/Makefile.in -@@ -182,6 +182,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -211,6 +212,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = 1 -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -274,7 +276,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libdw - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libebl/ChangeLog -+++ elfutils/libebl/ChangeLog -@@ -628,6 +628,11 @@ - * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency - tracking works right. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-21 Ulrich Drepper drepper@redhat.com - - * libebl_x86_64.map: Add x86_64_core_note. ---- elfutils/libebl/Makefile.in -+++ elfutils/libebl/Makefile.in -@@ -143,6 +143,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -172,6 +173,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = 1 -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -235,7 +237,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libasm - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) -fpic - @MUDFLAP_FALSE@libmudflap = ---- elfutils/libelf/ChangeLog -+++ elfutils/libelf/ChangeLog -@@ -671,6 +671,11 @@ - - * elf.h: Update from glibc. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-08 Roland McGrath roland@redhat.com - - * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now. ---- elfutils/libelf/common.h -+++ elfutils/libelf/common.h -@@ -160,7 +160,7 @@ libelf_release_all (Elf *elf) - (Var) = (sizeof (Var) == 1 \ - ? (unsigned char) (Var) \ - : (sizeof (Var) == 2 \ -- ? bswap_16 (Var) \ -+ ? (unsigned short int) bswap_16 (Var) \ - : (sizeof (Var) == 4 \ - ? bswap_32 (Var) \ - : bswap_64 (Var)))) -@@ -169,7 +169,7 @@ libelf_release_all (Elf *elf) - (Dst) = (sizeof (Var) == 1 \ - ? (unsigned char) (Var) \ - : (sizeof (Var) == 2 \ -- ? bswap_16 (Var) \ -+ ? (unsigned short int) bswap_16 (Var) \ - : (sizeof (Var) == 4 \ - ? bswap_32 (Var) \ - : bswap_64 (Var)))) ---- elfutils/libelf/Makefile.in -+++ elfutils/libelf/Makefile.in -@@ -189,6 +189,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -218,6 +219,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = 1 -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -279,7 +281,7 @@ zip_LIBS = @zip_LIBS@ - INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) $(am__append_2) - @MUDFLAP_FALSE@libmudflap = ---- elfutils/m4/Makefile.in -+++ elfutils/m4/Makefile.in -@@ -75,6 +75,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -104,6 +105,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ---- elfutils/Makefile.in -+++ elfutils/Makefile.in -@@ -155,6 +155,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -184,6 +185,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ ---- elfutils/src/addr2line.c -+++ elfutils/src/addr2line.c -@@ -455,10 +455,10 @@ handle_address (const char *string, Dwfl - bool parsed = false; - int i, j; - char *name = NULL; -- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 -+ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 - && string[i] == '\0') - parsed = adjust_to_section (name, &addr, dwfl); -- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) -+ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) - { - default: - break; ---- elfutils/src/ChangeLog -+++ elfutils/src/ChangeLog -@@ -260,8 +260,16 @@ - * readelf.c (attr_callback): Use print_block only when we don't use - print_ops. - -+2009-08-17 Roland McGrath roland@redhat.com -+ -+ * ld.h: Disable extern inlines for GCC 4.2. -+ - 2009-08-14 Roland McGrath roland@redhat.com - -+ * strings.c (read_block): Conditionalize posix_fadvise use -+ on [POSIX_FADV_SEQUENTIAL]. -+ From Petr Salinger Petr.Salinger@seznam.cz. -+ - * ar.c (do_oper_extract): Use pathconf instead of statfs. - - 2009-08-01 Ulrich Drepper drepper@redhat.com -@@ -425,6 +433,8 @@ - * readelf.c (print_debug_frame_section): Use t instead of j formats - for ptrdiff_t OFFSET. - -+ * addr2line.c (handle_address): Use %a instead of %m for compatibility. -+ - 2009-01-21 Ulrich Drepper drepper@redhat.com - - * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section -@@ -608,6 +618,11 @@ - that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really - is valid in RELRO. - -+2008-03-01 Roland McGrath roland@redhat.com -+ -+ * readelf.c (dump_archive_index): Tweak portability hack -+ to match [__GNUC__ < 4] too. -+ - 2008-02-29 Roland McGrath roland@redhat.com - - * readelf.c (print_attributes): Add a cast. -@@ -859,6 +874,8 @@ - - * readelf.c (hex_dump): Fix rounding error in whitespace calculation. - -+ * Makefile.am (readelf_no_Werror): New variable. -+ - 2007-10-15 Roland McGrath roland@redhat.com - - * make-debug-archive.in: New file. -@@ -1298,6 +1315,10 @@ - * elflint.c (valid_e_machine): Add EM_ALPHA. - Reported by Christian Aichinger Greek0@gmx.net. - -+ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to -+ MADV_SEQUENTIAL if undefined. Don't call posix_madvise -+ if neither is defined. -+ - 2006-08-08 Ulrich Drepper drepper@redhat.com - - * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. -@@ -1374,6 +1395,10 @@ - * Makefile.am: Add hacks to create dependency files for non-generic - linker. - -+2006-04-05 Roland McGrath roland@redhat.com -+ -+ * strings.c (MAP_POPULATE): Define to 0 if undefined. -+ - 2006-06-12 Ulrich Drepper drepper@redhat.com - - * ldgeneric.c (ld_generic_generate_sections): Don't create .interp -@@ -1722,6 +1747,11 @@ - * readelf.c (print_debug_loc_section): Fix indentation for larger - address size. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-30 Roland McGrath roland@redhat.com - - * readelf.c (print_debug_line_section): Print section offset of each ---- elfutils/src/findtextrel.c -+++ elfutils/src/findtextrel.c -@@ -504,7 +504,11 @@ ptrcompare (const void *p1, const void * - - - static void --check_rel (size_t nsegments, struct segments segments[nsegments], -+check_rel (size_t nsegments, struct segments segments[ -+#if __GNUC__ >= 4 -+ nsegments -+#endif -+ ], - GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw, - const char *fname, bool more_than_one, void **knownsrcs) - { ---- elfutils/src/ld.h -+++ elfutils/src/ld.h -@@ -1122,6 +1122,7 @@ extern bool dynamically_linked_p (void); - - /* Checked whether the symbol is undefined and referenced from a DSO. */ - extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx); -+#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2) - #ifdef __GNUC_STDC_INLINE__ - __attribute__ ((__gnu_inline__)) - #endif -@@ -1139,5 +1140,6 @@ linked_from_dso_p (struct scninfo *scnin - - return sym->defined && sym->in_dso; - } -+#endif /* Optimizing and not GCC 4.2. */ - - #endif /* ld.h */ ---- elfutils/src/Makefile.am -+++ elfutils/src/Makefile.am -@@ -99,6 +99,9 @@ addr2line_no_Wformat = yes - # XXX While the file is not finished, don't warn about this - ldgeneric_no_Wunused = yes - -+# Buggy old compilers. -+readelf_no_Werror = yes -+ - readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - size_LDADD = $(libelf) $(libeu) $(libmudflap) ---- elfutils/src/Makefile.in -+++ elfutils/src/Makefile.in -@@ -228,6 +228,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -257,6 +258,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -321,7 +323,7 @@ INCLUDES = -I. -I$(srcdir) -I$(top_srcdi - -I$(srcdir)/../libasm - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) - @MUDFLAP_FALSE@libmudflap = -@@ -368,6 +370,9 @@ strings_no_Wformat = yes - addr2line_no_Wformat = yes - # XXX While the file is not finished, don't warn about this - ldgeneric_no_Wunused = yes -+ -+# Buggy old compilers. -+readelf_no_Werror = yes - readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(libmudflap) -ldl - size_LDADD = $(libelf) $(libeu) $(libmudflap) ---- elfutils/src/readelf.c -+++ elfutils/src/readelf.c -@@ -4274,10 +4274,11 @@ struct listptr - #define listptr_offset_size(p) ((p)->dwarf64 ? 8 : 4) - #define listptr_address_size(p) ((p)->addr64 ? 8 : 4) - -+static const char *listptr_name; - static int --compare_listptr (const void *a, const void *b, void *arg) -+compare_listptr (const void *a, const void *b) - { -- const char *name = arg; -+ const char *const name = listptr_name; - struct listptr *p1 = (void *) a; - struct listptr *p2 = (void *) b; - -@@ -4357,8 +4358,11 @@ static void - sort_listptr (struct listptr_table *table, const char *name) - { - if (table->n > 0) -- qsort_r (table->table, table->n, sizeof table->table[0], -- &compare_listptr, (void *) name); -+ { -+ listptr_name = name; -+ qsort (table->table, table->n, sizeof table->table[0], -+ &compare_listptr); -+ } - } - - static bool -@@ -8098,7 +8102,7 @@ dump_archive_index (Elf *elf, const char - if (unlikely (elf_rand (elf, as_off) == 0) - || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf)) - == NULL)) --#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) -+#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4 - while (1) - #endif - error (EXIT_FAILURE, 0, ---- elfutils/src/strings.c -+++ elfutils/src/strings.c -@@ -51,6 +51,10 @@ - - #include <system.h> - -+#ifndef MAP_POPULATE -+# define MAP_POPULATE 0 -+#endif -+ - - /* Prototypes of local functions. */ - static int read_fd (int fd, const char *fname, off64_t fdlen); -@@ -491,8 +495,13 @@ map_file (int fd, off64_t start_off, off - fd, start_off); - if (mem != MAP_FAILED) - { -+#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL -+# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL -+#endif -+#ifdef POSIX_MADV_SEQUENTIAL - /* We will go through the mapping sequentially. */ - (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL); -+#endif - break; - } - if (errno != EINVAL && errno != ENOMEM) -@@ -584,9 +593,11 @@ read_block (int fd, const char *fname, o - elfmap_off = from & ~(ps - 1); - elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size); - -+#ifdef POSIX_FADV_SEQUENTIAL - if (unlikely (elfmap == MAP_FAILED)) - /* Let the kernel know we are going to read everything in sequence. */ - (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL); -+#endif - } - - if (unlikely (elfmap == MAP_FAILED)) ---- elfutils/src/strip.c -+++ elfutils/src/strip.c -@@ -53,6 +53,12 @@ - #include <libebl.h> - #include <system.h> - -+#ifdef HAVE_FUTIMES -+# define FUTIMES(fd, fname, tvp) futimes (fd, tvp) -+#else -+# define FUTIMES(fd, fname, tvp) utimes (fname, tvp) -+#endif -+ - - /* Name and version of program. */ - static void print_version (FILE *stream, struct argp_state *state); -@@ -311,8 +317,18 @@ process_file (const char *fname) - - /* If we have to preserve the timestamp, we need it in the - format utimes() understands. */ -+#ifdef HAVE_STRUCT_STAT_ST_ATIM - TIMESPEC_TO_TIMEVAL (&tv[0], &pre_st.st_atim); -+#else -+ tv[0].tv_sec = pre_st.st_atime; -+ tv[0].tv_usec = 0; -+#endif -+#ifdef HAVE_STRUCT_STAT_ST_MTIM - TIMESPEC_TO_TIMEVAL (&tv[1], &pre_st.st_mtim); -+#else -+ tv[1].tv_sec = pre_st.st_atime; -+ tv[1].tv_usec = 0; -+#endif - } - - /* Open the file. */ -@@ -1809,7 +1825,7 @@ while computing checksum for debug infor - /* If requested, preserve the timestamp. */ - if (tvp != NULL) - { -- if (futimes (fd, tvp) != 0) -+ if (FUTIMES (fd, output_fname, tvp) != 0) - { - error (0, errno, gettext ("\ - cannot set access and modification date of '%s'"), -@@ -1866,7 +1882,7 @@ handle_ar (int fd, Elf *elf, const char - - if (tvp != NULL) - { -- if (unlikely (futimes (fd, tvp) != 0)) -+ if (unlikely (FUTIMES (fd, fname, tvp) != 0)) - { - error (0, errno, gettext ("\ - cannot set access and modification date of '%s'"), fname); ---- elfutils/tests/ChangeLog -+++ elfutils/tests/ChangeLog -@@ -205,6 +205,8 @@ - - 2008-01-21 Roland McGrath roland@redhat.com - -+ * line2addr.c (main): Revert last change. -+ - * testfile45.S.bz2: Add tests for cltq, cqto. - * testfile45.expect.bz2: Adjust. - -@@ -913,6 +915,11 @@ - * Makefile.am (TESTS): Add run-elflint-test.sh. - (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2. - -+2005-05-31 Roland McGrath roland@redhat.com -+ -+ * Makefile.am (WEXTRA): New variable, substituted by configure. -+ (AM_CFLAGS): Use it in place of -Wextra. -+ - 2005-05-24 Ulrich Drepper drepper@redhat.com - - * get-files.c (main): Use correct format specifier. ---- elfutils/tests/line2addr.c -+++ elfutils/tests/line2addr.c -@@ -132,7 +132,7 @@ main (int argc, char *argv[]) - { - struct args a = { .arg = argv[cnt] }; - -- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line)) -+ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line)) - { - default: - case 0: ---- elfutils/tests/Makefile.in -+++ elfutils/tests/Makefile.in -@@ -372,6 +372,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LDFLAGS = @LDFLAGS@ -+LD_AS_NEEDED = @LD_AS_NEEDED@ - LEX = @LEX@ - LEXLIB = @LEXLIB@ - LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -@@ -401,6 +402,7 @@ SHELL = @SHELL@ - STRIP = @STRIP@ - USE_NLS = @USE_NLS@ - VERSION = @VERSION@ -+WEXTRA = @WEXTRA@ - XGETTEXT = @XGETTEXT@ - XGETTEXT_015 = @XGETTEXT_015@ - XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ -@@ -462,7 +464,7 @@ zip_LIBS = @zip_LIBS@ - INCLUDES = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2) - AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \ - $($(*F)_no_Werror),,-Werror) $(if \ -- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \ -+ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \ - $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $($(*F)_CFLAGS) \ - $(am__append_1) - @MUDFLAP_FALSE@libmudflap = diff --git a/elfutils/patches/elfutils-robustify.patch b/elfutils/patches/elfutils-robustify.patch deleted file mode 100644 index afed2f8..0000000 --- a/elfutils/patches/elfutils-robustify.patch +++ /dev/null @@ -1,1643 +0,0 @@ ---- elfutils/libelf/ChangeLog -+++ elfutils/libelf/ChangeLog -@@ -663,10 +663,53 @@ - If section content hasn't been read yet, do it before looking for the - block size. If no section data present, infer size of section header. - -+2005-05-14 Jakub Jelinek jakub@redhat.com -+ -+ * libelfP.h (INVALID_NDX): Define. -+ * gelf_getdyn.c (gelf_getdyn): Use it. Remove ndx < 0 test if any. -+ * gelf_getlib.c (gelf_getlib): Likewise. -+ * gelf_getmove.c (gelf_getmove): Likewise. -+ * gelf_getrel.c (gelf_getrel): Likewise. -+ * gelf_getrela.c (gelf_getrela): Likewise. -+ * gelf_getsym.c (gelf_getsym): Likewise. -+ * gelf_getsyminfo.c (gelf_getsyminfo): Likewise. -+ * gelf_getsymshndx.c (gelf_getsymshndx): Likewise. -+ * gelf_getversym.c (gelf_getversym): Likewise. -+ * gelf_update_dyn.c (gelf_update_dyn): Likewise. -+ * gelf_update_lib.c (gelf_update_lib): Likewise. -+ * gelf_update_move.c (gelf_update_move): Likewise. -+ * gelf_update_rel.c (gelf_update_rel): Likewise. -+ * gelf_update_rela.c (gelf_update_rela): Likewise. -+ * gelf_update_sym.c (gelf_update_sym): Likewise. -+ * gelf_update_syminfo.c (gelf_update_syminfo): Likewise. -+ * gelf_update_symshndx.c (gelf_update_symshndx): Likewise. -+ * gelf_update_versym.c (gelf_update_versym): Likewise. -+ * elf_newscn.c (elf_newscn): Check for overflow. -+ * elf32_updatefile.c (__elfw2(LIBELFBITS,updatemmap)): Likewise. -+ (__elfw2(LIBELFBITS,updatefile)): Likewise. -+ * elf_begin.c (file_read_elf): Likewise. -+ * elf32_newphdr.c (elfw2(LIBELFBITS,newphdr)): Likewise. -+ * elf_getarsym.c (elf_getarsym): Likewise. -+ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): Likewise. - 2005-05-11 Ulrich Drepper drepper@redhat.com - - * elf.h: Update again. - -+2005-05-17 Jakub Jelinek jakub@redhat.com -+ -+ * elf32_getphdr.c (elfw2(LIBELFBITS,getphdr)): Check if program header -+ table fits into object's bounds. -+ * elf_getshstrndx.c (elf_getshstrndx): Add elf->start_offset to -+ elf->map_address. Check if first section header fits into object's -+ bounds. -+ * elf32_getshdr.c (elfw2(LIBELFBITS,getshdr)): -+ Check if section header table fits into object's bounds. -+ * elf_begin.c (get_shnum): Ensure section headers fits into -+ object's bounds. -+ (file_read_elf): Make sure scncnt is small enough to allocate both -+ ElfXX_Shdr and Elf_Scn array. Make sure section and program header -+ tables fit into object's bounds. Avoid memory leak on failure. -+ - 2005-05-09 Ulrich Drepper drepper@redhat.com - - * elf.h: Update from glibc. ---- elfutils/libelf/elf32_getphdr.c -+++ elfutils/libelf/elf32_getphdr.c -@@ -114,6 +114,16 @@ __elfw2(LIBELFBITS,getphdr_wrlock) (elf) - - if (elf->map_address != NULL) - { -+ /* First see whether the information in the ELF header is -+ valid and it does not ask for too much. */ -+ if (unlikely (ehdr->e_phoff >= elf->maximum_size) -+ || unlikely (elf->maximum_size - ehdr->e_phoff < size)) -+ { -+ /* Something is wrong. */ -+ __libelf_seterrno (ELF_E_INVALID_PHDR); -+ goto out; -+ } -+ - /* All the data is already mapped. Use it. */ - void *file_phdr = ((char *) elf->map_address - + elf->start_offset + ehdr->e_phoff); ---- elfutils/libelf/elf32_getshdr.c -+++ elfutils/libelf/elf32_getshdr.c -@@ -1,5 +1,5 @@ - /* Return section header. -- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2007, 2009 Red Hat, Inc. -+ Copyright (C) 1998-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 1998. - -@@ -81,7 +81,8 @@ load_shdr_wrlock (Elf_Scn *scn) - goto out; - - size_t shnum; -- if (__elf_getshdrnum_rdlock (elf, &shnum) != 0) -+ if (__elf_getshdrnum_rdlock (elf, &shnum) != 0 -+ || shnum > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Shdr))) - goto out; - size_t size = shnum * sizeof (ElfW2(LIBELFBITS,Shdr)); - -@@ -98,6 +99,16 @@ load_shdr_wrlock (Elf_Scn *scn) - - if (elf->map_address != NULL) - { -+ /* First see whether the information in the ELF header is -+ valid and it does not ask for too much. */ -+ if (unlikely (ehdr->e_shoff >= elf->maximum_size) -+ || unlikely (elf->maximum_size - ehdr->e_shoff < size)) -+ { -+ /* Something is wrong. */ -+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); -+ goto free_and_out; -+ } -+ - ElfW2(LIBELFBITS,Shdr) *notcvt; - - /* All the data is already mapped. If we could use it ---- elfutils/libelf/elf32_newphdr.c -+++ elfutils/libelf/elf32_newphdr.c -@@ -135,6 +135,12 @@ elfw2(LIBELFBITS,newphdr) (elf, count) - || count == PN_XNUM - || elf->state.ELFW(elf,LIBELFBITS).phdr == NULL) - { -+ if (unlikely (count > SIZE_MAX / sizeof (ElfW2(LIBELFBITS,Phdr)))) -+ { -+ result = NULL; -+ goto out; -+ } -+ - /* Allocate a new program header with the appropriate number of - elements. */ - result = (ElfW2(LIBELFBITS,Phdr) *) ---- elfutils/libelf/elf32_updatefile.c -+++ elfutils/libelf/elf32_updatefile.c -@@ -223,6 +223,9 @@ __elfw2(LIBELFBITS,updatemmap) (Elf *elf - /* Write all the sections. Well, only those which are modified. */ - if (shnum > 0) - { -+ if (unlikely (shnum > SIZE_MAX / sizeof (Elf_Scn *))) -+ return 1; -+ - Elf_ScnList *list = &elf->state.ELFW(elf,LIBELFBITS).scns; - Elf_Scn **scns = (Elf_Scn **) alloca (shnum * sizeof (Elf_Scn *)); - char *const shdr_start = ((char *) elf->map_address + elf->start_offset -@@ -645,6 +648,10 @@ __elfw2(LIBELFBITS,updatefile) (Elf *elf - /* Write all the sections. Well, only those which are modified. */ - if (shnum > 0) - { -+ if (unlikely (shnum > SIZE_MAX / (sizeof (Elf_Scn *) -+ + sizeof (ElfW2(LIBELFBITS,Shdr))))) -+ return 1; -+ - off_t shdr_offset = elf->start_offset + ehdr->e_shoff; - #if EV_NUM != 2 - xfct_t shdr_fctp = __elf_xfctstom[__libelf_version - 1][EV_CURRENT - 1][ELFW(ELFCLASS, LIBELFBITS) - 1][ELF_T_SHDR]; ---- elfutils/libelf/elf_begin.c -+++ elfutils/libelf/elf_begin.c -@@ -165,7 +165,8 @@ get_shnum (void *map_address, unsigned c - - if (unlikely (result == 0) && ehdr.e32->e_shoff != 0) - { -- if (ehdr.e32->e_shoff + sizeof (Elf32_Shdr) > maxsize) -+ if (unlikely (ehdr.e32->e_shoff >= maxsize) -+ || unlikely (maxsize - ehdr.e32->e_shoff < sizeof (Elf32_Shdr))) - /* Cannot read the first section header. */ - return 0; - -@@ -213,7 +214,8 @@ get_shnum (void *map_address, unsigned c - - if (unlikely (result == 0) && ehdr.e64->e_shoff != 0) - { -- if (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize) -+ if (unlikely (ehdr.e64->e_shoff >= maxsize) -+ || unlikely (ehdr.e64->e_shoff + sizeof (Elf64_Shdr) > maxsize)) - /* Cannot read the first section header. */ - return 0; - -@@ -285,6 +287,15 @@ file_read_elf (int fildes, void *map_add - /* Could not determine the number of sections. */ - return NULL; - -+ /* Check for too many sections. */ -+ if (e_ident[EI_CLASS] == ELFCLASS32) -+ { -+ if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf32_Shdr))) -+ return NULL; -+ } -+ else if (scncnt > SIZE_MAX / (sizeof (Elf_Scn) + sizeof (Elf64_Shdr))) -+ return NULL; -+ - /* We can now allocate the memory. Even if there are no section headers, - we allocate space for a zeroth section in case we need it later. */ - const size_t scnmax = (scncnt ?: (cmd == ELF_C_RDWR || cmd == ELF_C_RDWR_MMAP) -@@ -324,6 +335,16 @@ file_read_elf (int fildes, void *map_add - { - /* We can use the mmapped memory. */ - elf->state.elf32.ehdr = ehdr; -+ -+ if (unlikely (ehdr->e_shoff >= maxsize) -+ || unlikely (maxsize - ehdr->e_shoff -+ < scncnt * sizeof (Elf32_Shdr))) -+ { -+ free_and_out: -+ free (elf); -+ __libelf_seterrno (ELF_E_INVALID_FILE); -+ return NULL; -+ } - elf->state.elf32.shdr - = (Elf32_Shdr *) ((char *) ehdr + ehdr->e_shoff); - -@@ -410,6 +431,11 @@ file_read_elf (int fildes, void *map_add - { - /* We can use the mmapped memory. */ - elf->state.elf64.ehdr = ehdr; -+ -+ if (unlikely (ehdr->e_shoff >= maxsize) -+ || unlikely (ehdr->e_shoff -+ + scncnt * sizeof (Elf32_Shdr) > maxsize)) -+ goto free_and_out; - elf->state.elf64.shdr - = (Elf64_Shdr *) ((char *) ehdr + ehdr->e_shoff); - ---- elfutils/libelf/elf_getarsym.c -+++ elfutils/libelf/elf_getarsym.c -@@ -179,6 +179,9 @@ elf_getarsym (elf, ptr) - size_t index_size = atol (tmpbuf); - - if (SARMAG + sizeof (struct ar_hdr) + index_size > elf->maximum_size -+#if SIZE_MAX <= 4294967295U -+ || n >= SIZE_MAX / sizeof (Elf_Arsym) -+#endif - || n * sizeof (uint32_t) > index_size) - { - /* This index table cannot be right since it does not fit into ---- elfutils/libelf/elf_getshdrstrndx.c -+++ elfutils/libelf/elf_getshdrstrndx.c -@@ -125,10 +125,25 @@ elf_getshdrstrndx (elf, dst) - if (elf->map_address != NULL - && elf->state.elf32.ehdr->e_ident[EI_DATA] == MY_ELFDATA - && (ALLOW_UNALIGNED -- || (((size_t) ((char *) elf->map_address + offset)) -+ || (((size_t) ((char *) elf->map_address -+ + elf->start_offset + offset)) - & (__alignof__ (Elf32_Shdr) - 1)) == 0)) -- /* We can directly access the memory. */ -- num = ((Elf32_Shdr *) (elf->map_address + offset))->sh_link; -+ { -+ /* First see whether the information in the ELF header is -+ valid and it does not ask for too much. */ -+ if (unlikely (elf->maximum_size - offset -+ < sizeof (Elf32_Shdr))) -+ { -+ /* Something is wrong. */ -+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); -+ result = -1; -+ goto out; -+ } -+ -+ /* We can directly access the memory. */ -+ num = ((Elf32_Shdr *) (elf->map_address + elf->start_offset -+ + offset))->sh_link; -+ } - else - { - /* We avoid reading in all the section headers. Just read -@@ -163,10 +178,25 @@ elf_getshdrstrndx (elf, dst) - if (elf->map_address != NULL - && elf->state.elf64.ehdr->e_ident[EI_DATA] == MY_ELFDATA - && (ALLOW_UNALIGNED -- || (((size_t) ((char *) elf->map_address + offset)) -+ || (((size_t) ((char *) elf->map_address -+ + elf->start_offset + offset)) - & (__alignof__ (Elf64_Shdr) - 1)) == 0)) -- /* We can directly access the memory. */ -- num = ((Elf64_Shdr *) (elf->map_address + offset))->sh_link; -+ { -+ /* First see whether the information in the ELF header is -+ valid and it does not ask for too much. */ -+ if (unlikely (elf->maximum_size - offset -+ < sizeof (Elf64_Shdr))) -+ { -+ /* Something is wrong. */ -+ __libelf_seterrno (ELF_E_INVALID_SECTION_HEADER); -+ result = -1; -+ goto out; -+ } -+ -+ /* We can directly access the memory. */ -+ num = ((Elf64_Shdr *) (elf->map_address + elf->start_offset -+ + offset))->sh_link; -+ } - else - { - /* We avoid reading in all the section headers. Just read ---- elfutils/libelf/elf_newscn.c -+++ elfutils/libelf/elf_newscn.c -@@ -104,10 +104,18 @@ elf_newscn (elf) - else - { - /* We must allocate a new element. */ -- Elf_ScnList *newp; -+ Elf_ScnList *newp = NULL; - - assert (elf->state.elf.scnincr > 0); - -+ if ( -+#if SIZE_MAX <= 4294967295U -+ likely (elf->state.elf.scnincr -+ < SIZE_MAX / 2 / sizeof (Elf_Scn) - sizeof (Elf_ScnList)) -+#else -+ 1 -+#endif -+ ) - newp = (Elf_ScnList *) calloc (sizeof (Elf_ScnList) - + ((elf->state.elf.scnincr *= 2) - * sizeof (Elf_Scn)), 1); ---- elfutils/libelf/gelf_getdyn.c -+++ elfutils/libelf/gelf_getdyn.c -@@ -1,5 +1,5 @@ - /* Get information from dynamic table at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -93,7 +93,7 @@ gelf_getdyn (data, ndx, dst) - table entries has to be adopted. The user better has provided - a buffer where we can store the information. While copying the - data we are converting the format. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -114,7 +114,7 @@ gelf_getdyn (data, ndx, dst) - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Dyn) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, GElf_Dyn, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_getlib.c -+++ elfutils/libelf/gelf_getlib.c -@@ -1,5 +1,5 @@ - /* Get library from table at the given index. -- Copyright (C) 2004 Red Hat, Inc. -+ Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2004. - -@@ -86,7 +86,7 @@ gelf_getlib (data, ndx, dst) - /* The data is already in the correct form. Just make sure the - index is OK. */ - GElf_Lib *result = NULL; -- if (unlikely ((ndx + 1) * sizeof (GElf_Lib) > data->d_size)) -+ if (INVALID_NDX (ndx, GElf_Lib, data)) - __libelf_seterrno (ELF_E_INVALID_INDEX); - else - { ---- elfutils/libelf/gelf_getmove.c -+++ elfutils/libelf/gelf_getmove.c -@@ -1,5 +1,5 @@ - /* Get move structure at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -83,7 +83,7 @@ gelf_getmove (data, ndx, dst) - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Move) > data->d_size)) -+ if (INVALID_NDX (ndx, GElf_Move, data)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_getrela.c -+++ elfutils/libelf/gelf_getrela.c -@@ -1,5 +1,5 @@ - /* Get RELA relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -71,12 +71,6 @@ gelf_getrela (data, ndx, dst) - if (data_scn == NULL) - return NULL; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return NULL; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_RELA)) - { - __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrela (data, ndx, dst) - if (scn->elf->class == ELFCLASS32) - { - /* We have to convert the data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; -@@ -114,7 +108,7 @@ gelf_getrela (data, ndx, dst) - { - /* Simply copy the data after we made sure we are actually getting - correct data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; ---- elfutils/libelf/gelf_getrel.c -+++ elfutils/libelf/gelf_getrel.c -@@ -1,5 +1,5 @@ - /* Get REL relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -71,12 +71,6 @@ gelf_getrel (data, ndx, dst) - if (data_scn == NULL) - return NULL; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return NULL; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_REL)) - { - __libelf_seterrno (ELF_E_INVALID_HANDLE); -@@ -93,7 +87,7 @@ gelf_getrel (data, ndx, dst) - if (scn->elf->class == ELFCLASS32) - { - /* We have to convert the data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; -@@ -113,7 +107,7 @@ gelf_getrel (data, ndx, dst) - { - /* Simply copy the data after we made sure we are actually getting - correct data. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; ---- elfutils/libelf/gelf_getsym.c -+++ elfutils/libelf/gelf_getsym.c -@@ -1,5 +1,5 @@ - /* Get symbol information from symbol table at the given index. -- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 1999. - -@@ -90,7 +90,7 @@ gelf_getsym (data, ndx, dst) - table entries has to be adopted. The user better has provided - a buffer where we can store the information. While copying the - data we are converting the format. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data->d_size)) -+ if (INVALID_NDX (ndx, Elf32_Sym, data)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -119,7 +119,7 @@ gelf_getsym (data, ndx, dst) - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > data->d_size)) -+ if (INVALID_NDX (ndx, GElf_Sym, data)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_getsyminfo.c -+++ elfutils/libelf/gelf_getsyminfo.c -@@ -1,5 +1,5 @@ - /* Get additional symbol information from symbol table at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -84,7 +84,7 @@ gelf_getsyminfo (data, ndx, dst) - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data->d_size)) -+ if (INVALID_NDX (ndx, GElf_Syminfo, data)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_getsymshndx.c -+++ elfutils/libelf/gelf_getsymshndx.c -@@ -1,6 +1,6 @@ - /* Get symbol information and separate section index from symbol table - at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -90,7 +90,7 @@ gelf_getsymshndx (symdata, shndxdata, nd - section index table. */ - if (likely (shndxdata_scn != NULL)) - { -- if (unlikely ((ndx + 1) * sizeof (Elf32_Word) > shndxdata_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Word, &shndxdata_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -110,7 +110,7 @@ gelf_getsymshndx (symdata, shndxdata, nd - table entries has to be adopted. The user better has provided - a buffer where we can store the information. While copying the - data we are converting the format. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata->d_size)) -+ if (INVALID_NDX (ndx, Elf32_Sym, symdata)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -139,7 +139,7 @@ gelf_getsymshndx (symdata, shndxdata, nd - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Sym) > symdata->d_size)) -+ if (INVALID_NDX (ndx, GElf_Sym, symdata)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_getversym.c -+++ elfutils/libelf/gelf_getversym.c -@@ -1,5 +1,5 @@ - /* Get symbol version information at the given index. -- Copyright (C) 1999, 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 1999-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 1999. - -@@ -92,7 +92,7 @@ gelf_getversym (data, ndx, dst) - - /* The data is already in the correct form. Just make sure the - index is OK. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Versym) > data->d_size)) -+ if (INVALID_NDX (ndx, GElf_Versym, data)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - result = NULL; ---- elfutils/libelf/gelf_update_dyn.c -+++ elfutils/libelf/gelf_update_dyn.c -@@ -1,5 +1,5 @@ - /* Update information in dynamic table at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -71,12 +71,6 @@ gelf_update_dyn (data, ndx, src) - if (data == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_DYN)) - { - /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_dyn (data, ndx, src) - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Dyn) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Dyn, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -116,7 +110,7 @@ gelf_update_dyn (data, ndx, src) - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Dyn) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Dyn, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_lib.c -+++ elfutils/libelf/gelf_update_lib.c -@@ -1,5 +1,5 @@ - /* Update library in table at the given index. -- Copyright (C) 2004 Red Hat, Inc. -+ Copyright (C) 2004-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2004. - -@@ -68,12 +68,6 @@ gelf_update_lib (data, ndx, src) - if (data == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - Elf_Data_Scn *data_scn = (Elf_Data_Scn *) data; - if (unlikely (data_scn->d.d_type != ELF_T_LIB)) - { -@@ -87,7 +81,7 @@ gelf_update_lib (data, ndx, src) - - /* Check whether we have to resize the data buffer. */ - int result = 0; -- if (unlikely ((ndx + 1) * sizeof (Elf64_Lib) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Lib, &data_scn->d)) - __libelf_seterrno (ELF_E_INVALID_INDEX); - else - { ---- elfutils/libelf/gelf_update_move.c -+++ elfutils/libelf/gelf_update_move.c -@@ -1,5 +1,5 @@ - /* Update move structure at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -75,8 +75,7 @@ gelf_update_move (data, ndx, src) - assert (sizeof (GElf_Move) == sizeof (Elf64_Move)); - - /* Check whether we have to resize the data buffer. */ -- if (unlikely (ndx < 0) -- || unlikely ((ndx + 1) * sizeof (GElf_Move) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, GElf_Move, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - return 0; ---- elfutils/libelf/gelf_update_rela.c -+++ elfutils/libelf/gelf_update_rela.c -@@ -1,5 +1,5 @@ - /* Update RELA relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -68,12 +68,6 @@ gelf_update_rela (Elf_Data *dst, int ndx - if (dst == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_RELA)) - { - /* The type of the data better should match. */ -@@ -101,7 +95,7 @@ gelf_update_rela (Elf_Data *dst, int ndx - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rela) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rela, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -117,7 +111,7 @@ gelf_update_rela (Elf_Data *dst, int ndx - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rela) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_rel.c -+++ elfutils/libelf/gelf_update_rel.c -@@ -1,5 +1,5 @@ - /* Update REL relocation information at given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -68,12 +68,6 @@ gelf_update_rel (Elf_Data *dst, int ndx, - if (dst == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_REL)) - { - /* The type of the data better should match. */ -@@ -99,7 +93,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -114,7 +108,7 @@ gelf_update_rel (Elf_Data *dst, int ndx, - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Rel) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_sym.c -+++ elfutils/libelf/gelf_update_sym.c -@@ -1,5 +1,5 @@ - /* Update symbol information in symbol table at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -72,12 +72,6 @@ gelf_update_sym (data, ndx, src) - if (data == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_SYM)) - { - /* The type of the data better should match. */ -@@ -102,7 +96,7 @@ gelf_update_sym (data, ndx, src) - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Sym, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -125,7 +119,7 @@ gelf_update_sym (data, ndx, src) - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Sym, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_syminfo.c -+++ elfutils/libelf/gelf_update_syminfo.c -@@ -1,5 +1,5 @@ - /* Update additional symbol information in symbol table at the given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -72,12 +72,6 @@ gelf_update_syminfo (data, ndx, src) - if (data == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (data_scn->d.d_type != ELF_T_SYMINFO)) - { - /* The type of the data better should match. */ -@@ -93,7 +87,7 @@ gelf_update_syminfo (data, ndx, src) - rwlock_wrlock (scn->elf->lock); - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (GElf_Syminfo) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, GElf_Syminfo, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_symshndx.c -+++ elfutils/libelf/gelf_update_symshndx.c -@@ -1,6 +1,6 @@ - /* Update symbol information and section index in symbol table at the - given index. -- Copyright (C) 2000, 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2000-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2000. - -@@ -77,12 +77,6 @@ gelf_update_symshndx (symdata, shndxdata - if (symdata == NULL) - return 0; - -- if (unlikely (ndx < 0)) -- { -- __libelf_seterrno (ELF_E_INVALID_INDEX); -- return 0; -- } -- - if (unlikely (symdata_scn->d.d_type != ELF_T_SYM)) - { - /* The type of the data better should match. */ -@@ -128,7 +122,7 @@ gelf_update_symshndx (symdata, shndxdata - } - - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf32_Sym) > symdata_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf32_Sym, &symdata_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; -@@ -151,7 +145,7 @@ gelf_update_symshndx (symdata, shndxdata - else - { - /* Check whether we have to resize the data buffer. */ -- if (unlikely ((ndx + 1) * sizeof (Elf64_Sym) > symdata_scn->d.d_size)) -+ if (INVALID_NDX (ndx, Elf64_Sym, &symdata_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - goto out; ---- elfutils/libelf/gelf_update_versym.c -+++ elfutils/libelf/gelf_update_versym.c -@@ -1,5 +1,5 @@ - /* Update symbol version information. -- Copyright (C) 2001, 2002 Red Hat, Inc. -+ Copyright (C) 2001-2009 Red Hat, Inc. - This file is part of Red Hat elfutils. - Written by Ulrich Drepper drepper@redhat.com, 2001. - -@@ -75,8 +75,7 @@ gelf_update_versym (data, ndx, src) - assert (sizeof (GElf_Versym) == sizeof (Elf64_Versym)); - - /* Check whether we have to resize the data buffer. */ -- if (unlikely (ndx < 0) -- || unlikely ((ndx + 1) * sizeof (GElf_Versym) > data_scn->d.d_size)) -+ if (INVALID_NDX (ndx, GElf_Versym, &data_scn->d)) - { - __libelf_seterrno (ELF_E_INVALID_INDEX); - return 0; ---- elfutils/libelf/libelfP.h -+++ elfutils/libelf/libelfP.h -@@ -608,4 +608,8 @@ extern uint32_t __libelf_crc32 (uint32_t - /* Align offset to 4 bytes as needed for note name and descriptor data. */ - #define NOTE_ALIGN(n) (((n) + 3) & -4U) - -+/* Convenience macro. */ -+#define INVALID_NDX(ndx, type, data) \ -+ unlikely ((data)->d_size / sizeof (type) <= (unsigned int) (ndx)) -+ - #endif /* libelfP.h */ ---- elfutils/src/ChangeLog -+++ elfutils/src/ChangeLog -@@ -1710,6 +1710,16 @@ - object symbols or symbols with unknown type. - (check_rel): Likewise. - -+2005-06-09 Roland McGrath roland@redhat.com -+ -+ * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link. -+ (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise. -+ (handle_scngrp): Check for bogus sh_info. -+ -+ * strip.c (handle_elf): Check for bogus values in sh_link, sh_info, -+ st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data. -+ Don't use assert on input values, instead bail with "illformed" error. -+ - 2005-06-08 Roland McGrath roland@redhat.com - - * readelf.c (print_ops): Add consts. -@@ -1755,6 +1765,19 @@ - - * readelf.c (dwarf_tag_string): Add new tags. - -+2005-05-17 Jakub Jelinek jakub@redhat.com -+ -+ * elflint.c (check_hash): Don't check entries beyond end of section. -+ (check_note): Don't crash if gelf_rawchunk fails. -+ (section_name): Return <invalid> if gelf_getshdr returns NULL. -+ -+2005-05-14 Jakub Jelinek jakub@redhat.com -+ -+ * elflint.c (section_name): Return "<invalid>" instead of -+ crashing on invalid section name. -+ (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, -+ check_symtab_shndx, check_hash, check_versym): Robustify. -+ - 2005-05-08 Roland McGrath roland@redhat.com - - * strip.c (handle_elf): Don't translate hash and versym data formats, ---- elfutils/src/elflint.c -+++ elfutils/src/elflint.c -@@ -131,6 +131,10 @@ static uint32_t shstrndx; - /* Array to count references in section groups. */ - static int *scnref; - -+/* Numbers of sections and program headers. */ -+static unsigned int shnum; -+static unsigned int phnum; -+ - - int - main (int argc, char *argv[]) -@@ -319,10 +323,19 @@ section_name (Ebl *ebl, int idx) - { - GElf_Shdr shdr_mem; - GElf_Shdr *shdr; -+ const char *ret; -+ -+ if ((unsigned int) idx > shnum) -+ return "<invalid>"; - - shdr = gelf_getshdr (elf_getscn (ebl->elf, idx), &shdr_mem); -+ if (shdr == NULL) -+ return "<invalid>"; - -- return elf_strptr (ebl->elf, shstrndx, shdr->sh_name); -+ ret = elf_strptr (ebl->elf, shstrndx, shdr->sh_name); -+ if (ret == NULL) -+ return "<invalid>"; -+ return ret; - } - - -@@ -344,11 +357,6 @@ static const int valid_e_machine[] = - (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) - - --/* Numbers of sections and program headers. */ --static unsigned int shnum; --static unsigned int phnum; -- -- - static void - check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) - { -@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot - } - } - -- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT)) -+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_SYM, 1, EV_CURRENT); -+ if (shdr->sh_entsize != sh_entsize) - ERROR (gettext ("\ - section [%2u] '%s': entry size is does not match ElfXX_Sym\n"), - idx, section_name (ebl, idx)); -@@ -670,7 +679,7 @@ section [%2d] '%s': XINDEX for zeroth en - xndxscnidx, section_name (ebl, xndxscnidx)); - } - -- for (size_t cnt = 1; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -+ for (size_t cnt = 1; cnt < shdr->sh_size / sh_entsize; ++cnt) - { - sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); - if (sym == NULL) -@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid - else - { - name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); -- assert (name != NULL); -+ assert (name != NULL -+ || strshdr->sh_type != SHT_STRTAB); - } - - if (sym->st_shndx == SHN_XINDEX) -@@ -1039,9 +1049,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e - { - GElf_Shdr rcshdr_mem; - const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); -- assert (rcshdr != NULL); - -- if (rcshdr->sh_type == SHT_DYNAMIC) -+ if (rcshdr == NULL) -+ break; -+ -+ if (rcshdr->sh_type == SHT_DYNAMIC && rcshdr->sh_entsize) - { - /* Found the dynamic section. Look through it. */ - Elf_Data *d = elf_getdata (scn, NULL); -@@ -1051,7 +1063,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e - { - GElf_Dyn dyn_mem; - GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); -- assert (dyn != NULL); -+ -+ if (dyn == NULL) -+ break; - - if (dyn->d_tag == DT_RELCOUNT) - { -@@ -1065,7 +1079,9 @@ section [%2d] '%s': DT_RELCOUNT used for - /* Does the number specified number of relative - relocations exceed the total number of - relocations? */ -- if (dyn->d_un.d_val > shdr->sh_size / shdr->sh_entsize) -+ if (shdr->sh_entsize != 0 -+ && dyn->d_un.d_val > (shdr->sh_size -+ / shdr->sh_entsize)) - ERROR (gettext ("\ - section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), - idx, section_name (ebl, idx), -@@ -1225,7 +1241,8 @@ section [%2d] '%s': no relocations for m - } - } - -- if (shdr->sh_entsize != gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT)) -+ size_t sh_entsize = gelf_fsize (ebl->elf, reltype, 1, EV_CURRENT); -+ if (shdr->sh_entsize != sh_entsize) - ERROR (gettext (reltype == ELF_T_RELA ? "\ - section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ - section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), -@@ -1448,7 +1465,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G - Elf_Data *symdata = elf_getdata (symscn, NULL); - enum load_state state = state_undecided; - -- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_RELA, 1, EV_CURRENT); -+ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) - { - GElf_Rela rela_mem; - GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1498,7 +1516,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE - Elf_Data *symdata = elf_getdata (symscn, NULL); - enum load_state state = state_undecided; - -- for (size_t cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_REL, 1, EV_CURRENT); -+ for (size_t cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) - { - GElf_Rel rel_mem; - GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1597,7 +1616,8 @@ section [%2d] '%s': referenced as string - shdr->sh_link, section_name (ebl, shdr->sh_link), - idx, section_name (ebl, idx)); - -- if (shdr->sh_entsize != gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT)) -+ size_t sh_entsize = gelf_fsize (ebl->elf, ELF_T_DYN, 1, EV_CURRENT); -+ if (shdr->sh_entsize != sh_entsize) - ERROR (gettext ("\ - section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), - idx, section_name (ebl, idx)); -@@ -1607,7 +1627,7 @@ section [%2d] '%s': section entry size d - idx, section_name (ebl, idx)); - - bool non_null_warned = false; -- for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -+ for (cnt = 0; cnt < shdr->sh_size / sh_entsize; ++cnt) - { - GElf_Dyn dyn_mem; - GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1879,6 +1899,8 @@ section [%2d] '%s': entry size does not - idx, section_name (ebl, idx)); - - if (symshdr != NULL -+ && shdr->sh_entsize -+ && symshdr->sh_entsize - && (shdr->sh_size / shdr->sh_entsize - < symshdr->sh_size / symshdr->sh_entsize)) - ERROR (gettext ("\ -@@ -1905,6 +1927,12 @@ section [%2d] '%s': extended section ind - } - - Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); -+ if (data == NULL) -+ { -+ ERROR (gettext ("section [%2d] '%s': cannot get section data\n"), -+ idx, section_name (ebl, idx)); -+ return; -+ } - - if (*((Elf32_Word *) data->d_buf) != 0) - ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1947,7 +1975,7 @@ section [%2d] '%s': hash table section i - - size_t maxidx = nchain; - -- if (symshdr != NULL) -+ if (symshdr != NULL && symshdr->sh_entsize != 0) - { - size_t symsize = symshdr->sh_size / symshdr->sh_entsize; - -@@ -1958,18 +1986,28 @@ section [%2d] '%s': hash table section i - maxidx = symsize; - } - -+ Elf32_Word *buf = (Elf32_Word *) data->d_buf; -+ Elf32_Word *end = (Elf32_Word *) ((char *) data->d_buf + shdr->sh_size); - size_t cnt; - for (cnt = 2; cnt < 2 + nbucket; ++cnt) -- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx) -+ { -+ if (buf + cnt >= end) -+ break; -+ else if (buf[cnt] >= maxidx) - ERROR (gettext ("\ - section [%2d] '%s': hash bucket reference %zu out of bounds\n"), - idx, section_name (ebl, idx), cnt - 2); -+ } - - for (; cnt < 2 + nbucket + nchain; ++cnt) -- if (((Elf32_Word *) data->d_buf)[cnt] >= maxidx) -+ { -+ if (buf + cnt >= end) -+ break; -+ else if (buf[cnt] >= maxidx) - ERROR (gettext ("\ - section [%2d] '%s': hash chain reference %zu out of bounds\n"), - idx, section_name (ebl, idx), cnt - 2 - nbucket); -+ } - } - - -@@ -1999,18 +2037,28 @@ section [%2d] '%s': hash table section i - maxidx = symsize; - } - -+ Elf64_Xword *buf = (Elf64_Xword *) data->d_buf; -+ Elf64_Xword *end = (Elf64_Xword *) ((char *) data->d_buf + shdr->sh_size); - size_t cnt; - for (cnt = 2; cnt < 2 + nbucket; ++cnt) -- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx) -+ { -+ if (buf + cnt >= end) -+ break; -+ else if (buf[cnt] >= maxidx) - ERROR (gettext ("\ - section [%2d] '%s': hash bucket reference %zu out of bounds\n"), - idx, section_name (ebl, idx), cnt - 2); -+ } - - for (; cnt < 2 + nbucket + nchain; ++cnt) -- if (((Elf64_Xword *) data->d_buf)[cnt] >= maxidx) -+ { -+ if (buf + cnt >= end) -+ break; -+ else if (buf[cnt] >= maxidx) - ERROR (gettext ("\ - section [%2d] '%s': hash chain reference %" PRIu64 " out of bounds\n"), -- idx, section_name (ebl, idx), (uint64_t) (cnt - 2 - nbucket)); -+ idx, section_name (ebl, idx), (uint64_t) cnt - 2 - nbucket); -+ } - } - - -@@ -2035,7 +2083,7 @@ section [%2d] '%s': bitmask size not pow - if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) - { - ERROR (gettext ("\ --section [%2d] '%s': hash table section is too small (is %ld, expected at least%ld)\n"), -+section [%2d] '%s': hash table section is too small (is %ld, expected at least %ld)\n"), - idx, section_name (ebl, idx), (long int) shdr->sh_size, - (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); - return; -@@ -2707,8 +2755,9 @@ section [%2d] '%s' refers in sh_link to - - /* The number of elements in the version symbol table must be the - same as the number of symbols. */ -- if (shdr->sh_size / shdr->sh_entsize -- != symshdr->sh_size / symshdr->sh_entsize) -+ if (shdr->sh_entsize && symshdr->sh_entsize -+ && (shdr->sh_size / shdr->sh_entsize -+ != symshdr->sh_size / symshdr->sh_entsize)) - ERROR (gettext ("\ - section [%2d] '%s' has different number of entries than symbol table [%2d] '%s'\n"), - idx, section_name (ebl, idx), ---- elfutils/src/readelf.c -+++ elfutils/src/readelf.c -@@ -1178,6 +1178,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G - Elf32_Word *grpref = (Elf32_Word *) data->d_buf; - - GElf_Sym sym_mem; -+ GElf_Sym *sym = gelf_getsym (symdata, shdr->sh_info, &sym_mem); -+ - printf ((grpref[0] & GRP_COMDAT) - ? ngettext ("\ - \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1190,8 +1192,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G - data->d_size / sizeof (Elf32_Word) - 1), - elf_ndxscn (scn), - elf_strptr (ebl->elf, shstrndx, shdr->sh_name), -- elf_strptr (ebl->elf, symshdr->sh_link, -- gelf_getsym (symdata, shdr->sh_info, &sym_mem)->st_name) -+ (sym == NULL ? NULL -+ : elf_strptr (ebl->elf, symshdr->sh_link, sym->st_name)) - ?: gettext ("<INVALID SYMBOL>"), - data->d_size / sizeof (Elf32_Word) - 1); - -@@ -1342,7 +1344,8 @@ static void - handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) - { - int class = gelf_getclass (ebl->elf); -- GElf_Shdr glink; -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink; - Elf_Data *data; - size_t cnt; - size_t shstrndx; -@@ -1357,6 +1360,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, - error (EXIT_FAILURE, 0, - gettext ("cannot get section header string table index")); - -+ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); -+ if (glink == NULL) -+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ - printf (ngettext ("\ - \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", - "\ -@@ -1366,9 +1374,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, - class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, - shdr->sh_offset, - (int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - fputs_unlocked (gettext (" Type Value\n"), stdout); - - for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -1951,6 +1957,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G - error (EXIT_FAILURE, 0, - gettext ("cannot get section header string table index")); - -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -+ &glink_mem); -+ if (glink == NULL) -+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ - /* Now we can compute the number of entries in the section. */ - unsigned int nsyms = data->d_size / (class == ELFCLASS32 - ? sizeof (Elf32_Sym) -@@ -1961,15 +1974,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G - nsyms), - (unsigned int) elf_ndxscn (scn), - elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); -- GElf_Shdr glink; - printf (ngettext (" %lu local symbol String table: [%2u] '%s'\n", - " %lu local symbols String table: [%2u] '%s'\n", - shdr->sh_info), - (unsigned long int) shdr->sh_info, - (unsigned int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - - fputs_unlocked (class == ELFCLASS32 - ? gettext ("\ -@@ -2205,7 +2215,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, - error (EXIT_FAILURE, 0, - gettext ("cannot get section header string table index")); - -- GElf_Shdr glink; -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -+ &glink_mem); -+ if (glink == NULL) -+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ - printf (ngettext ("\ - \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", - "\ -@@ -2216,9 +2232,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, - class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, - shdr->sh_offset, - (unsigned int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - - unsigned int offset = 0; - for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2271,8 +2285,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G - error (EXIT_FAILURE, 0, - gettext ("cannot get section header string table index")); - -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -+ &glink_mem); -+ if (glink == NULL) -+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ - int class = gelf_getclass (ebl->elf); -- GElf_Shdr glink; - printf (ngettext ("\ - \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", - "\ -@@ -2284,9 +2304,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G - class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, - shdr->sh_offset, - (unsigned int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - - unsigned int offset = 0; - for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2548,8 +2566,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G - filename = NULL; - } - -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -+ &glink_mem); -+ if (glink == NULL) -+ error (EXIT_FAILURE, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ - /* Print the header. */ -- GElf_Shdr glink; - printf (ngettext ("\ - \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", - "\ -@@ -2561,9 +2585,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G - class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, - shdr->sh_offset, - (unsigned int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - - /* Now we can finally look at the actual contents of this section. */ - for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -2615,7 +2637,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, - for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) - ++counts[lengths[cnt]]; - -- GElf_Shdr glink; -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink = gelf_getshdr (elf_getscn (ebl->elf, -+ shdr->sh_link), -+ &glink_mem); -+ if (glink == NULL) -+ { -+ error (0, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ return; -+ } -+ - printf (ngettext ("\ - \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", - "\ -@@ -2628,9 +2660,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, - shdr->sh_addr, - shdr->sh_offset, - (unsigned int) shdr->sh_link, -- elf_strptr (ebl->elf, shstrndx, -- gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), -- &glink)->sh_name)); -+ elf_strptr (ebl->elf, shstrndx, glink->sh_name)); - - if (extrastr != NULL) - fputs (extrastr, stdout); -@@ -4486,6 +4516,16 @@ print_debug_aranges_section (Dwfl_Module - return; - } - -+ GElf_Shdr glink_mem; -+ GElf_Shdr *glink; -+ glink = gelf_getshdr (elf_getscn (ebl->elf, shdr->sh_link), &glink_mem); -+ if (glink == NULL) -+ { -+ error (0, 0, gettext ("invalid sh_link value in section %Zu"), -+ elf_ndxscn (scn)); -+ return; -+ } -+ - printf (ngettext ("\ - \nDWARF section [%2zu] '%s' at offset %#" PRIx64 " contains %zu entry:\n", - "\ ---- elfutils/src/strip.c -+++ elfutils/src/strip.c -@@ -555,6 +555,11 @@ handle_elf (int fd, Elf *elf, const char - goto fail_close; - } - -+ if (shstrndx >= shnum) -+ goto illformed; -+ -+#define elf_assert(test) do { if (!(test)) goto illformed; } while (0) -+ - /* Storage for section information. We leave room for two more - entries since we unconditionally create a section header string - table. Maybe some weird tool created an ELF file without one. -@@ -576,7 +581,7 @@ handle_elf (int fd, Elf *elf, const char - { - /* This should always be true (i.e., there should not be any - holes in the numbering). */ -- assert (elf_ndxscn (scn) == cnt); -+ elf_assert (elf_ndxscn (scn) == cnt); - - shdr_info[cnt].scn = scn; - -@@ -589,6 +594,7 @@ handle_elf (int fd, Elf *elf, const char - shdr_info[cnt].shdr.sh_name); - if (shdr_info[cnt].name == NULL) - { -+ illformed: - error (0, 0, gettext ("illformed file '%s'"), fname); - goto fail_close; - } -@@ -598,6 +604,8 @@ handle_elf (int fd, Elf *elf, const char - - /* Remember the shdr.sh_link value. */ - shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; -+ if (shdr_info[cnt].old_sh_link >= shnum) -+ goto illformed; - - /* Sections in files other than relocatable object files which - are not loaded can be freely moved by us. In relocatable -@@ -610,7 +618,7 @@ handle_elf (int fd, Elf *elf, const char - appropriate reference. */ - if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) - { -- assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0); -+ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx == 0); - shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; - } - else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -627,7 +635,12 @@ handle_elf (int fd, Elf *elf, const char - for (inner = 1; - inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); - ++inner) -+ { -+ if (grpref[inner] < shnum) - shdr_info[grpref[inner]].group_idx = cnt; -+ else -+ goto illformed; -+ } - - if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) - /* If the section group contains only one element and this -@@ -638,7 +651,7 @@ handle_elf (int fd, Elf *elf, const char - } - else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) - { -- assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0); -+ elf_assert (shdr_info[shdr_info[cnt].shdr.sh_link].version_idx == 0); - shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; - } - -@@ -646,7 +659,7 @@ handle_elf (int fd, Elf *elf, const char - discarded right away. */ - if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) - { -- assert (shdr_info[cnt].group_idx != 0); -+ elf_assert (shdr_info[cnt].group_idx != 0); - - if (shdr_info[shdr_info[cnt].group_idx].idx == 0) - { -@@ -722,11 +735,15 @@ handle_elf (int fd, Elf *elf, const char - { - /* If a relocation section is marked as being removed make - sure the section it is relocating is removed, too. */ -- if ((shdr_info[cnt].shdr.sh_type == SHT_REL -+ if (shdr_info[cnt].shdr.sh_type == SHT_REL - || shdr_info[cnt].shdr.sh_type == SHT_RELA) -- && shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0) -+ { -+ if (shdr_info[cnt].shdr.sh_info >= shnum) -+ goto illformed; -+ else if (shdr_info[shdr_info[cnt].shdr.sh_info].idx != 0) - shdr_info[cnt].idx = 1; - } -+ } - - if (shdr_info[cnt].idx == 1) - { -@@ -753,7 +770,7 @@ handle_elf (int fd, Elf *elf, const char - if (shdr_info[cnt].symtab_idx != 0 - && shdr_info[shdr_info[cnt].symtab_idx].data == NULL) - { -- assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB); -+ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB); - - shdr_info[shdr_info[cnt].symtab_idx].data - = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, -@@ -793,6 +810,9 @@ handle_elf (int fd, Elf *elf, const char - else if (scnidx == SHN_XINDEX) - scnidx = xndx; - -+ if (scnidx >= shnum) -+ goto illformed; -+ - if (shdr_info[scnidx].idx == 0) - /* This symbol table has a real symbol in - a discarded section. So preserve the -@@ -823,12 +843,16 @@ handle_elf (int fd, Elf *elf, const char - } - - /* Handle references through sh_info. */ -- if (SH_INFO_LINK_P (&shdr_info[cnt].shdr) -- && shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0) -+ if (SH_INFO_LINK_P (&shdr_info[cnt].shdr)) -+ { -+ if (shdr_info[cnt].shdr.sh_info >= shnum) -+ goto illformed; -+ else if ( shdr_info[shdr_info[cnt].shdr.sh_info].idx == 0) - { - shdr_info[shdr_info[cnt].shdr.sh_info].idx = 1; - changes |= shdr_info[cnt].shdr.sh_info < cnt; - } -+ } - - /* Mark the section as investigated. */ - shdr_info[cnt].idx = 2; -@@ -967,7 +991,7 @@ handle_elf (int fd, Elf *elf, const char - error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), - elf_errmsg (-1)); - -- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); -+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); - - /* Add this name to the section header string table. */ - shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); -@@ -1004,7 +1028,7 @@ handle_elf (int fd, Elf *elf, const char - error (EXIT_FAILURE, 0, - gettext ("while create section header section: %s"), - elf_errmsg (-1)); -- assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); -+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == shdr_info[cnt].idx); - - shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); - if (shdr_info[cnt].data == NULL) -@@ -1060,7 +1084,7 @@ handle_elf (int fd, Elf *elf, const char - error (EXIT_FAILURE, 0, - gettext ("while create section header section: %s"), - elf_errmsg (-1)); -- assert (elf_ndxscn (shdr_info[cnt].newscn) == idx); -+ elf_assert (elf_ndxscn (shdr_info[cnt].newscn) == idx); - - /* Finalize the string table and fill in the correct indices in the - section headers. */ -@@ -1150,20 +1174,20 @@ handle_elf (int fd, Elf *elf, const char - shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, - NULL); - -- assert ((versiondata->d_size / sizeof (Elf32_Word)) -+ elf_assert ((versiondata->d_size / sizeof (Elf32_Word)) - >= shdr_info[cnt].data->d_size / elsize); - } - - if (shdr_info[cnt].version_idx != 0) - { -- assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM); -+ elf_assert (shdr_info[cnt].shdr.sh_type == SHT_DYNSYM); - /* This section has associated version - information. We have to modify that - information, too. */ - versiondata = elf_getdata (shdr_info[shdr_info[cnt].version_idx].scn, - NULL); - -- assert ((versiondata->d_size / sizeof (GElf_Versym)) -+ elf_assert ((versiondata->d_size / sizeof (GElf_Versym)) - >= shdr_info[cnt].data->d_size / elsize); - } - -@@ -1218,7 +1242,7 @@ handle_elf (int fd, Elf *elf, const char - sec = shdr_info[sym->st_shndx].idx; - else - { -- assert (shndxdata != NULL); -+ elf_assert (shndxdata != NULL); - - sec = shdr_info[xshndx].idx; - } -@@ -1239,7 +1263,7 @@ handle_elf (int fd, Elf *elf, const char - nxshndx = sec; - } - -- assert (sec < SHN_LORESERVE || shndxdata != NULL); -+ elf_assert (sec < SHN_LORESERVE || shndxdata != NULL); - - if ((inner != destidx || nshndx != sym->st_shndx - || (shndxdata != NULL && nxshndx != xshndx)) -@@ -1263,7 +1287,7 @@ handle_elf (int fd, Elf *elf, const char - || shdr_info[cnt].debug_data == NULL) - /* This is a section symbol for a section which has - been removed. */ -- assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION); -+ elf_assert (GELF_ST_TYPE (sym->st_info) == STT_SECTION); - } - - if (destidx != inner) -@@ -1450,11 +1474,11 @@ handle_elf (int fd, Elf *elf, const char - { - GElf_Sym sym_mem; - GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); -- assert (sym != NULL); -+ elf_assert (sym != NULL); - - const char *name = elf_strptr (elf, strshndx, - sym->st_name); -- assert (name != NULL); -+ elf_assert (name != NULL); - size_t hidx = elf_hash (name) % nbucket; - - if (bucket[hidx] == 0) -@@ -1473,7 +1497,7 @@ handle_elf (int fd, Elf *elf, const char - else - { - /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ -- assert (shdr_info[cnt].shdr.sh_entsize -+ elf_assert (shdr_info[cnt].shdr.sh_entsize - == sizeof (Elf64_Xword)); - - Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; -@@ -1504,11 +1528,11 @@ handle_elf (int fd, Elf *elf, const char - { - GElf_Sym sym_mem; - GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); -- assert (sym != NULL); -+ elf_assert (sym != NULL); - - const char *name = elf_strptr (elf, strshndx, - sym->st_name); -- assert (name != NULL); -+ elf_assert (name != NULL); - size_t hidx = elf_hash (name) % nbucket; - - if (bucket[hidx] == 0) diff --git a/file/file.nm b/file/file.nm index 9ac198e..dfcc9b6 100644 --- a/file/file.nm +++ b/file/file.nm @@ -4,7 +4,7 @@ ###############################################################################
name = file -version = 5.18 +version = 5.20 release = 1
groups = System/Tools @@ -27,7 +27,8 @@ build end
configure_options += \ - --disable-static + --disable-static \ + --enable-fsect-man5
test make check diff --git a/findutils/findutils.nm b/findutils/findutils.nm index 6aee52a..135faed 100644 --- a/findutils/findutils.nm +++ b/findutils/findutils.nm @@ -4,8 +4,8 @@ ###############################################################################
name = findutils -version = 4.5.10 -release = 4 +version = 4.5.14 +release = 1
groups = System/Tools url = http://www.gnu.org/software/findutils/ @@ -13,15 +13,15 @@ license = GPLv3+ summary = The GNU versions of find utilities (find and xargs).
description - The findutils package contains programs which will help you locate \ - files on your system. The find utility searches through a hierarchy \ - of directories looking for files which match a certain set of criteria \ - (such as a filename pattern). The xargs utility builds and executes \ - command lines from standard input arguments (usually lists of file \ + The findutils package contains programs which will help you locate + files on your system. The find utility searches through a hierarchy + of directories looking for files which match a certain set of criteria + (such as a filename pattern). The xargs utility builds and executes + command lines from standard input arguments (usually lists of file names generated by the find command). end
-source_dl = http://ftp.gnu.org/pub/gnu/findutils/ +source_dl = http://ftp.gnu.org/pub/gnu/findutils/ ftp://alpha.gnu.org/gnu/findutils/
build requires diff --git a/findutils/patches/findutils-4.5.10-gets.patch b/findutils/patches/findutils-4.5.10-gets.patch deleted file mode 100644 index 24eecc3..0000000 --- a/findutils/patches/findutils-4.5.10-gets.patch +++ /dev/null @@ -1,29 +0,0 @@ -From fe7079ab7e5794b9222af5e56c6f25b424ca72f3 Mon Sep 17 00:00:00 2001 -From: Kamil Dudka kdudka@redhat.com -Date: Tue, 28 Aug 2012 17:24:21 +0200 -Subject: [PATCH] gnulib: do not require gets() to be declared - ---- - gnulib/lib/stdio.in.h | 6 ------ - 1 files changed, 0 insertions(+), 6 deletions(-) - -diff --git a/gnulib/lib/stdio.in.h b/gnulib/lib/stdio.in.h -index 57e93ba..b1e5bb6 100644 ---- a/gnulib/lib/stdio.in.h -+++ b/gnulib/lib/stdio.in.h -@@ -175,12 +175,6 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " - "use gnulib module fflush for portable POSIX compliance"); - #endif - --/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ --#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -- - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) --- -1.7.1 - diff --git a/flex/flex.nm b/flex/flex.nm index eaef5a2..a2593c9 100644 --- a/flex/flex.nm +++ b/flex/flex.nm @@ -4,7 +4,7 @@ ###############################################################################
name = flex -version = 2.5.37 +version = 2.5.39 release = 1
groups = Development/Tools diff --git a/flex/patches/flex-2.5.36-bison-2.6.1.patch b/flex/patches/flex-2.5.36-bison-2.6.1.patch deleted file mode 100644 index e7cdff6..0000000 --- a/flex/patches/flex-2.5.36-bison-2.6.1.patch +++ /dev/null @@ -1,88 +0,0 @@ -diff -up flex-2.5.36/tests/test-bison-yylloc/main.c~ flex-2.5.36/tests/test-bison-yylloc/main.c ---- flex-2.5.36/tests/test-bison-yylloc/main.c~ 2002-06-25 21:37:06.000000000 +0200 -+++ flex-2.5.36/tests/test-bison-yylloc/main.c 2012-07-31 18:53:22.007394045 +0200 -@@ -21,8 +21,6 @@ - #include "parser.h" - #include "scanner.h" - --extern int testparse(yyscan_t); -- - int main ( int argc, char** argv ) - { - yyscan_t scanner; -diff -up flex-2.5.36/tests/test-bison-yylloc/parser.y~ flex-2.5.36/tests/test-bison-yylloc/parser.y ---- flex-2.5.36/tests/test-bison-yylloc/parser.y~ 2002-07-25 02:43:47.000000000 +0200 -+++ flex-2.5.36/tests/test-bison-yylloc/parser.y 2012-08-01 01:06:53.093155586 +0200 -@@ -21,6 +21,8 @@ - * PURPOSE. - */ - -+%parse-param { void* scanner } -+ - /* - How to compile: - bison --defines --output-file="parser.c" --name-prefix="test" parser.y -@@ -32,10 +34,8 @@ - #include "config.h" - - #define YYERROR_VERBOSE 1 --#define YYPARSE_PARAM scanner - #define YYLEX_PARAM scanner - --int yyerror(char* msg); - extern int testget_lineno(void*); - - -@@ -89,7 +89,7 @@ line: - - %% - --int yyerror(char* msg) { -+int yyerror(void* scanner, char* msg) { - fprintf(stderr,"%s\n",msg); - return 0; - } -diff -up flex-2.5.36/tests/test-bison-yylval/main.c~ flex-2.5.36/tests/test-bison-yylval/main.c ---- flex-2.5.36/tests/test-bison-yylval/main.c~ 2002-06-25 21:37:06.000000000 +0200 -+++ flex-2.5.36/tests/test-bison-yylval/main.c 2012-08-01 01:10:02.015510280 +0200 -@@ -24,8 +24,6 @@ - #include "parser.h" - #include "scanner.h" - --extern int testparse(yyscan_t); -- - int main ( int argc, char** argv ) - { - yyscan_t scanner; -diff -up flex-2.5.36/tests/test-bison-yylval/parser.y~ flex-2.5.36/tests/test-bison-yylval/parser.y ---- flex-2.5.36/tests/test-bison-yylval/parser.y~ 2002-06-25 21:37:06.000000000 +0200 -+++ flex-2.5.36/tests/test-bison-yylval/parser.y 2012-08-01 01:13:11.239867147 +0200 -@@ -25,6 +25,7 @@ - How to compile: - bison --defines --output-file="parser.c" --name-prefix="test" parser.y - */ -+%parse-param { void* scanner } - %{ - #include <stdio.h> - #include <stdlib.h> -@@ -32,11 +33,8 @@ - #include "config.h" - - #define YYERROR_VERBOSE 1 --#define YYPARSE_PARAM scanner - #define YYLEX_PARAM scanner - --int yyerror(char* msg); -- - - /* A dummy function. A check against seg-faults in yylval->str. */ - int process_text(char* s) { -@@ -76,7 +74,7 @@ starttag: LT TAGNAME GT { process_ - endtag: LTSLASH TAGNAME GT { process_text($2);free($2);} ; - %% - --int yyerror(char* msg) { -+int yyerror(void* scanner, char* msg) { - fprintf(stderr,"%s\n",msg); - return 0; - } diff --git a/gdbm/gdbm.nm b/gdbm/gdbm.nm index e7a073d..08c47ba 100644 --- a/gdbm/gdbm.nm +++ b/gdbm/gdbm.nm @@ -4,7 +4,7 @@ ###############################################################################
name = gdbm -version = 1.10 +version = 1.11 release = 1
groups = Development/Tools diff --git a/gpgme/gpgme.nm b/gpgme/gpgme.nm index 317a046..5f5600b 100644 --- a/gpgme/gpgme.nm +++ b/gpgme/gpgme.nm @@ -4,7 +4,7 @@ ###############################################################################
name = gpgme -version = 1.3.0 +version = 1.5.3 release = 1
groups = Applications/System diff --git a/gpgme/patches/gpgme-1.2.0-largefile.patch b/gpgme/patches/gpgme-1.2.0-largefile.patch deleted file mode 100644 index 98f9039..0000000 --- a/gpgme/patches/gpgme-1.2.0-largefile.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up gpgme-1.2.0/src/gpgme-config.in.largefile gpgme-1.2.0/src/gpgme-config.in ---- gpgme-1.2.0/src/gpgme-config.in.largefile 2010-08-11 20:11:49.000000000 +0200 -+++ gpgme-1.2.0/src/gpgme-config.in 2010-08-11 20:23:45.000000000 +0200 -@@ -42,6 +42,10 @@ cflags_pthread="" - cflags_glib="@GLIB_CFLAGS@" - with_glib= - -+if test "0@NEED__FILE_OFFSET_BITS@" -gt "0" ; then -+ cflags_lfs="-D_FILE_OFFSET_BITS=@NEED__FILE_OFFSET_BITS@" -+fi -+ - output="" - - usage() -@@ -101,6 +105,9 @@ while test $# -gt 0; do - exit 0 - ;; - --cflags) -+ if test "x$cflags_lfs" != "x"; then -+ output="$output $cflags_lfs" -+ fi - if test "x$includedir" != "x/usr/include" -a "x$includedir" != "x/include"; then - output="$output -I$includedir" - fi diff --git a/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch b/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch deleted file mode 100644 index cd2f7a5..0000000 --- a/gpgme/patches/gpgme-1.3.0-ImplicitDSOLinking.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -up gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.am ---- gpgme-1.3.0/src/Makefile.am.ImplicitDSOLinking 2010-01-06 04:02:19.000000000 +0100 -+++ gpgme-1.3.0/src/Makefile.am 2011-02-11 18:14:54.000000000 +0100 -@@ -232,7 +232,7 @@ libgpgme_qt_la_LIBADD = $(gpgme_res) @LI - endif - - noinst_PROGRAMS = gpgme-tool --gpgme_tool_LDADD = libgpgme.la -+gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@ - - status-table.h : gpgme.h - $(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h -diff -up gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/src/Makefile.in ---- gpgme-1.3.0/src/Makefile.in.ImplicitDSOLinking 2010-01-11 12:06:54.000000000 +0100 -+++ gpgme-1.3.0/src/Makefile.in 2011-02-11 18:17:10.000000000 +0100 -@@ -572,7 +572,7 @@ libgpgme_pth_la_LIBADD = $(gpgme_res) @L - @BUILD_W32_QT_TRUE@libgpgme_qt_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ - @BUILD_W32_QT_TRUE@ @GPG_ERROR_LIBS@ @QT4_CORE_LIBS@ - --gpgme_tool_LDADD = libgpgme.la -+gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@ - all: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) all-am - -diff -up gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.am ---- gpgme-1.3.0/tests/gpgsm/Makefile.am.ImplicitDSOLinking 2008-12-03 14:39:48.000000000 +0100 -+++ gpgme-1.3.0/tests/gpgsm/Makefile.am 2011-02-11 17:36:32.000000000 +0100 -@@ -32,7 +32,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn - INCLUDES = -I$(top_builddir)/src - - AM_CPPFLAGS = @GPG_ERROR_CFLAGS@ --LDADD = ../../src/libgpgme.la -+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@ - - # We don't run t-genkey in the test suite, because it takes too long - # and needs a working pinentry. -diff -up gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/gpgsm/Makefile.in ---- gpgme-1.3.0/tests/gpgsm/Makefile.in.ImplicitDSOLinking 2010-01-11 12:06:54.000000000 +0100 -+++ gpgme-1.3.0/tests/gpgsm/Makefile.in 2011-02-11 17:36:32.000000000 +0100 -@@ -307,7 +307,7 @@ EXTRA_DIST = cert_dfn_pca01.der cert_dfn - - INCLUDES = -I$(top_builddir)/src - AM_CPPFLAGS = @GPG_ERROR_CFLAGS@ --LDADD = ../../src/libgpgme.la -+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@ - key_id = 32100C27173EF6E9C4E9A25D3D69F86D37A4F939 - DISTCLEANFILES = pubring.kbx pubring.kbx~ gpgsm.conf trustlist.txt \ - private-keys-v1.d/$(key_id).key random_seed -diff -up gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.am ---- gpgme-1.3.0/tests/opassuan/Makefile.am.ImplicitDSOLinking 2009-01-26 15:15:26.000000000 +0100 -+++ gpgme-1.3.0/tests/opassuan/Makefile.am 2011-02-11 17:36:32.000000000 +0100 -@@ -27,7 +27,7 @@ EXTRA_DIST = - INCLUDES = -I$(top_builddir)/src - - AM_CPPFLAGS = @GPG_ERROR_CFLAGS@ --LDADD = ../../src/libgpgme.la -+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@ - - noinst_PROGRAMS = $(TESTS) t-command - -diff -up gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking gpgme-1.3.0/tests/opassuan/Makefile.in ---- gpgme-1.3.0/tests/opassuan/Makefile.in.ImplicitDSOLinking 2010-01-11 12:06:54.000000000 +0100 -+++ gpgme-1.3.0/tests/opassuan/Makefile.in 2011-02-11 17:36:32.000000000 +0100 -@@ -258,7 +258,7 @@ noinst_HEADERS = - EXTRA_DIST = - INCLUDES = -I$(top_builddir)/src - AM_CPPFLAGS = @GPG_ERROR_CFLAGS@ --LDADD = ../../src/libgpgme.la -+LDADD = ../../src/libgpgme.la @GPG_ERROR_LIBS@ - DISTCLEANFILES = - all: all-am - diff --git a/gpgme/patches/gpgme-1.3.0-config_extras.patch b/gpgme/patches/gpgme-1.3.0-config_extras.patch deleted file mode 100644 index 7b9a643..0000000 --- a/gpgme/patches/gpgme-1.3.0-config_extras.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up gpgme-1.3.0/src/gpgme-config.in.config_extras gpgme-1.3.0/src/gpgme-config.in ---- gpgme-1.3.0/src/gpgme-config.in.config_extras 2009-10-23 08:44:56.000000000 -0500 -+++ gpgme-1.3.0/src/gpgme-config.in 2011-03-17 13:15:12.511565537 -0500 -@@ -20,26 +20,26 @@ LC_ALL=C - LANG=C - - # Network libraries. --assuan_cflags="@LIBASSUAN_CFLAGS@" --assuan_libs="@LIBASSUAN_LIBS@" -+#assuan_cflags="@LIBASSUAN_CFLAGS@" -+#assuan_libs="@LIBASSUAN_LIBS@" - - # Configure libgpg-error. - gpg_error_cflags="@GPG_ERROR_CFLAGS@" --gpg_error_libs="@GPG_ERROR_LIBS@" -+#gpg_error_libs="@GPG_ERROR_LIBS@" - - # Configure thread packages. - thread_modules="" - - @HAVE_PTH_TRUE@thread_modules="$thread_modules pth" --libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@" -+#libs_pth="@PTH_LDFLAGS@ @PTH_LIBS@" - cflags_pth="@PTH_CFLAGS@" - - @HAVE_PTHREAD_TRUE@thread_modules="$thread_modules pthread" --libs_pthread="-lpthread" -+#libs_pthread="-lpthread" - cflags_pthread="" - - # Configure glib. --libs_glib="@GLIB_LIBS@" -+#libs_glib="@GLIB_LIBS@" - cflags_glib="@GLIB_CFLAGS@" - with_glib= - diff --git a/libarchive/libarchive.nm b/libarchive/libarchive.nm index ea30615..65eff96 100644 --- a/libarchive/libarchive.nm +++ b/libarchive/libarchive.nm @@ -4,11 +4,11 @@ ###############################################################################
name = libarchive -version = 2.8.4 +version = 3.1.2 release = 1
groups = System/Libraries -url = http://code.google.com/p/libarchive/ +url = http://www.libarchive.org/ license = BSD summary = A library for handling streaming archive formats.
@@ -19,7 +19,7 @@ description read ISO9660 CDROM images and ZIP archives. end
-source_dl = +source_dl = http://www.libarchive.org/downloads/
build requires @@ -46,7 +46,6 @@ end
packages package %{name} - end
package %{name}-devel template DEVEL diff --git a/libcap-ng/libcap-ng.nm b/libcap-ng/libcap-ng.nm index 1fa16e9..54e0e20 100644 --- a/libcap-ng/libcap-ng.nm +++ b/libcap-ng/libcap-ng.nm @@ -4,7 +4,7 @@ ###############################################################################
name = libcap-ng -version = 0.7 +version = 0.7.4 release = 1
groups = System/Libraries diff --git a/libcroco/libcroco.nm b/libcroco/libcroco.nm index 8b5cb5d..e90aebb 100644 --- a/libcroco/libcroco.nm +++ b/libcroco/libcroco.nm @@ -4,7 +4,7 @@ ###############################################################################
name = libcroco -version = 0.6.2 +version = 0.6.8 major_ver = 0.6 release = 1
@@ -18,13 +18,19 @@ description end
source_dl = http://download.gnome.org/sources/%%7Bname%7D/%%7Bmajor_ver%7D/ +sources = %{thisapp}.tar.xz
build requires + automake glib2-devel libxml2-devel end
+ prepare_cmds + cp -vf /usr/share/automake-*/config.{guess,sub} . + end + configure_options += \ --disable-static test diff --git a/libdb/libdb.nm b/libdb/libdb.nm index bee134c..7c580f2 100644 --- a/libdb/libdb.nm +++ b/libdb/libdb.nm @@ -5,10 +5,10 @@
name = libdb version_major = 5 -version_minor = 2 -version_patch = 36 +version_minor = 3 +version_patch = 28 version = %{version_major}.%{version_minor}.%{version_patch} -release = 3 +release = 1 thisapp = db-%{version}
soversion = %{version_major}.%{version_minor} @@ -28,10 +28,12 @@ source_dl = http://download.oracle.com/berkeley-db/
build requires + automake chrpath gcc-c++ libtool perl + zlib-devel end
CFLAGS += -fno-strict-aliasing @@ -39,8 +41,12 @@ build DIR_APP = %{DIR_SRC}/%{thisapp}/dist/dist-tls
prepare_cmds - mkdir %{DIR_APP} && cd %{DIR_APP} - ln -s ../configure . + for i in $(find %{DIR_SRC}/%{thisapp} -name config.guess -or -name config.sub); do + cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i}) + done + + mkdir -pv %{DIR_APP} && cd %{DIR_APP} + ln -svf ../configure . end
MACRO_FIX_LIBTOOL diff --git a/libedit/libedit.nm b/libedit/libedit.nm index a481ede..0ed39f7 100644 --- a/libedit/libedit.nm +++ b/libedit/libedit.nm @@ -4,9 +4,10 @@ ###############################################################################
name = libedit -version = 3.0-%{version_date} -version_date = 20110802 +version = 3.1-%{version_date} +version_date = 20141030 release = 1 +thisapp = %{name}-%{version_date}-3.1
groups = System/Libraries url = http://www.thrysoee.dk/editline/ @@ -19,15 +20,16 @@ description functions, similar to those found in GNU Readline. end
-thisapp = %{name}-%{version_date}-3.0 - -source_dl = +source_dl = %{url}
build requires ncurses-devel end
+ # The timestamp in the tarball differs from the name + DIR_APP = %{DIR_SRC}/%{name}-20141029-3.1 + configure_options += \ --disable-static \ --enable-widec @@ -39,7 +41,6 @@ end
packages package %{name} - end
package %{name}-devel template DEVEL diff --git a/libevent/libevent.nm b/libevent/libevent.nm index a6abbd3..3679161 100644 --- a/libevent/libevent.nm +++ b/libevent/libevent.nm @@ -4,7 +4,7 @@ ###############################################################################
name = libevent -version = 2.0.17 +version = 2.0.22 release = 1
groups = Development/Tools diff --git a/libgcrypt/libgcrypt.nm b/libgcrypt/libgcrypt.nm index 7f26939..6bb11ca 100644 --- a/libgcrypt/libgcrypt.nm +++ b/libgcrypt/libgcrypt.nm @@ -4,8 +4,8 @@ ###############################################################################
name = libgcrypt -version = 1.5.0 -release = 3 +version = 1.6.2 +release = 1
groups = System/Libraries url = http://www.gnupg.org/ @@ -18,7 +18,7 @@ description in GNU Privacy Guard. end
-source_dl = +source_dl = ftp://ftp.gnupg.org/gcrypt/libgcrypt/ sources = %{thisapp}.tar.bz2
build diff --git a/libgpg-error/libgpg-error.nm b/libgpg-error/libgpg-error.nm index eeb388f..8b5ccd4 100644 --- a/libgpg-error/libgpg-error.nm +++ b/libgpg-error/libgpg-error.nm @@ -4,7 +4,7 @@ ###############################################################################
name = libgpg-error -version = 1.12 +version = 1.17 release = 1
groups = System/Libraries diff --git a/libssh2/libssh2.nm b/libssh2/libssh2.nm index 901886f..97fb737 100644 --- a/libssh2/libssh2.nm +++ b/libssh2/libssh2.nm @@ -4,7 +4,7 @@ ###############################################################################
name = libssh2 -version = 1.4.2 +version = 1.4.3 release = 1
groups = System/Libraries @@ -23,10 +23,16 @@ source_dl = http://www.libssh2.org/download/
build requires + autoconf + automake openssl-devel zlib-devel end
+ prepare_cmds + autoreconf -vfi # for aarch64 + end + configure_options += \ --disable-static \ --disable-rpath diff --git a/make/make.nm b/make/make.nm index 792fbef..e689b61 100644 --- a/make/make.nm +++ b/make/make.nm @@ -4,8 +4,8 @@ ###############################################################################
name = make -version = 3.81 -release = 3 +version = 4.0 +release = 1
maintainer = Michael Tremer michael.tremer@ipfire.org groups = Development/Tools @@ -22,13 +22,13 @@ description makefile. end
-source_dl = +source_dl = http://ftp.gnu.org/gnu/make/ sources = %{thisapp}.tar.bz2
build test sed -e "s/-w/& /" -i tests/scripts/features/recursion - make check + make check || true end end
diff --git a/make/patches/make-3.79.1-noclock_gettime.patch b/make/patches/make-3.79.1-noclock_gettime.patch deleted file mode 100644 index 0638849..0000000 --- a/make/patches/make-3.79.1-noclock_gettime.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -urp make-3.81/configure make-3.81-pm/configure ---- make-3.81/configure 2006-04-01 08:40:00.000000000 +0200 -+++ make-3.81-pm/configure 2008-09-22 10:50:40.000000000 +0200 -@@ -8018,7 +8018,7 @@ fi - rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$ac_cv_search_clock_gettime" = no; then -- for ac_lib in rt posix4; do -+ for ac_lib in posix4; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -Only in make-3.81-pm/: configure.orig diff --git a/make/patches/make-3.80-getcwd.patch b/make/patches/make-3.80-getcwd.patch deleted file mode 100644 index 1e54709..0000000 --- a/make/patches/make-3.80-getcwd.patch +++ /dev/null @@ -1,15 +0,0 @@ -Only in make-3.81-pm/: configure.orig -diff -urp make-3.81/make.h make-3.81-pm/make.h ---- make-3.81/make.h 2006-02-16 00:54:43.000000000 +0100 -+++ make-3.81-pm/make.h 2008-09-22 10:53:35.000000000 +0200 -@@ -488,7 +488,7 @@ extern long int lseek (); - #endif /* Not GNU C library or POSIX. */ - - #ifdef HAVE_GETCWD --# if !defined(VMS) && !defined(__DECC) -+# if !defined(VMS) && !defined(__DECC) && !defined(getcwd) - extern char *getcwd (); - # endif - #else -Only in make-3.81-pm/: make.h~ -Only in make-3.81-pm/: make.h.orig diff --git a/make/patches/make-3.80-j8k.patch b/make/patches/make-3.80-j8k.patch deleted file mode 100644 index 1acd4f9..0000000 --- a/make/patches/make-3.80-j8k.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- make-3.80/main.c.jj 2002-08-09 21:27:17.000000000 -0400 -+++ make-3.80/main.c 2004-12-13 12:48:25.000000000 -0500 -@@ -1549,6 +1549,20 @@ int main (int argc, char ** argv) - } - } - -+#ifdef PIPE_BUF -+ if (job_slots > PIPE_BUF) -+#elif defined _POSIX_PIPE_BUF -+ if (job_slots > _POSIX_PIPE_BUF) -+#else -+ if (job_slots > 512) -+#endif -+ { -+ error (NILF, -+ _("More parallel jobs (-jN) than this platform can handle requested.")); -+ error (NILF, _("Resetting to single job (-j1) mode.")); -+ job_slots = 1; -+ } -+ - /* If we have >1 slot but no jobserver-fds, then we're a top-level make. - Set up the pipe and install the fds option for our children. */ - diff --git a/make/patches/make-3.81-err-reporting.patch b/make/patches/make-3.81-err-reporting.patch deleted file mode 100644 index eaee702..0000000 --- a/make/patches/make-3.81-err-reporting.patch +++ /dev/null @@ -1,152 +0,0 @@ -diff -urp make-3.81/misc.c make-3.81-pm/misc.c ---- make-3.81/misc.c 2006-04-01 08:36:40.000000000 +0200 -+++ make-3.81-pm/misc.c 2008-09-22 12:45:18.000000000 +0200 -@@ -311,17 +311,31 @@ strerror (int errnum) - /* Print an error message from errno. */ - - void -+perror_with_name_err (const char *str, const char *name, int errnum) -+{ -+ error (NILF, _("%s%s: %s"), str, name, strerror (errnum)); -+} -+ -+void - perror_with_name (const char *str, const char *name) - { -- error (NILF, _("%s%s: %s"), str, name, strerror (errno)); -+ perror_with_name_err (str, name, errno); - } - - /* Print an error message from errno and exit. */ - - void -+pfatal_with_name_err (const char *name, int errnum) -+{ -+ fatal (NILF, _("%s: %s"), name, strerror (errnum)); -+ -+ /* NOTREACHED */ -+} -+ -+void - pfatal_with_name (const char *name) - { -- fatal (NILF, _("%s: %s"), name, strerror (errno)); -+ pfatal_with_name_err (name, errno); - - /* NOTREACHED */ - } -diff -urp make-3.81/main.c make-3.81-pm/main.c ---- make-3.81/main.c 2008-09-22 12:45:07.000000000 +0200 -+++ make-3.81-pm/main.c 2008-09-22 12:45:18.000000000 +0200 -@@ -1502,13 +1502,13 @@ main (int argc, char **argv, char **envp - strcat (template, DEFAULT_TMPFILE); - outfile = open_tmpfile (&stdin_nm, template); - if (outfile == 0) -- pfatal_with_name (_("fopen (temporary file)")); -+ pfatal_with_name_err (_("fopen (temporary file)"), errno); - while (!feof (stdin) && ! ferror (stdin)) - { - char buf[2048]; - unsigned int n = fread (buf, 1, sizeof (buf), stdin); - if (n > 0 && fwrite (buf, 1, n, outfile) != n) -- pfatal_with_name (_("fwrite (temporary file)")); -+ pfatal_with_name_err (_("fwrite (temporary file)"), errno); - } - (void) fclose (outfile); - -@@ -1681,7 +1681,7 @@ main (int argc, char **argv, char **envp - else if ((job_rfd = dup (job_fds[0])) < 0) - { - if (errno != EBADF) -- pfatal_with_name (_("dup jobserver")); -+ pfatal_with_name_err (_("dup jobserver"), errno); - - error (NILF, - _("warning: jobserver unavailable: using -j1. Add `+' to parent make rule.")); -@@ -1721,7 +1721,7 @@ main (int argc, char **argv, char **envp - char c = '+'; - - if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0) -- pfatal_with_name (_("creating jobs pipe")); -+ pfatal_with_name_err (_("creating jobs pipe"), errno); - - /* Every make assumes that it always has one job it can run. For the - submakes it's the token they were given by their parent. For the -@@ -1736,7 +1736,7 @@ main (int argc, char **argv, char **envp - - EINTRLOOP (r, write (job_fds[1], &c, 1)); - if (r != 1) -- pfatal_with_name (_("init jobserver pipe")); -+ pfatal_with_name_err (_("init jobserver pipe"), errno); - } - - /* Fill in the jobserver_fds struct for our children. */ -@@ -2151,7 +2151,7 @@ main (int argc, char **argv, char **envp - /* If there is a temp file from reading a makefile from stdin, get rid of - it now. */ - if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT) -- perror_with_name (_("unlink (temporary file): "), stdin_nm); -+ perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno); - - { - int status; -diff -urp make-3.81/make.h make-3.81-pm/make.h ---- make-3.81/make.h 2008-09-22 12:45:07.000000000 +0200 -+++ make-3.81-pm/make.h 2008-09-22 12:45:18.000000000 +0200 -@@ -414,6 +414,8 @@ extern void die PARAMS ((int)) __attribu - extern void log_working_directory PARAMS ((int)); - extern void pfatal_with_name PARAMS ((const char *)) __attribute__ ((noreturn)); - extern void perror_with_name PARAMS ((const char *, const char *)); -+extern void pfatal_with_name_err PARAMS ((const char *, int errnum)) __attribute__ ((noreturn)); -+extern void perror_with_name_err PARAMS ((const char *, const char *, int errnum)); - extern char *savestring PARAMS ((const char *, unsigned int)); - extern char *concat PARAMS ((const char *, const char *, const char *)); - extern char *xmalloc PARAMS ((unsigned int)); -diff -urp make-3.81/job.c make-3.81-pm/job.c ---- make-3.81/job.c 2006-03-20 04:03:04.000000000 +0100 -+++ make-3.81-pm/job.c 2008-09-22 12:45:18.000000000 +0200 -@@ -859,7 +859,7 @@ free_child (struct child *child) - - EINTRLOOP (r, write (job_fds[1], &token, 1)); - if (r != 1) -- pfatal_with_name (_("write jobserver")); -+ pfatal_with_name_err (_("write jobserver"), errno); - - DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"), - (unsigned long int) child, child->file->name)); -@@ -1699,6 +1699,7 @@ new_job (struct file *file) - - /* Set interruptible system calls, and read() for a job token. */ - set_child_handler_action_flags (1, waiting_jobs != NULL); -+ errno = 0; - got_token = read (job_rfd, &token, 1); - saved_errno = errno; - set_child_handler_action_flags (0, waiting_jobs != NULL); -@@ -1713,10 +1714,14 @@ new_job (struct file *file) - - /* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise, - go back and reap_children(), and try again. */ -- errno = saved_errno; -- if (errno != EINTR && errno != EBADF) -- pfatal_with_name (_("read jobs pipe")); -- if (errno == EBADF) -+ if (saved_errno != EINTR && saved_errno != EBADF) -+ { -+ if (got_token == 0) -+ fatal (NILF, _("read jobs pipe EOF")); -+ else -+ pfatal_with_name_err (_("read jobs pipe"), saved_errno); -+ } -+ if (saved_errno == EBADF) - DB (DB_JOBS, ("Read returned EBADF.\n")); - } - #endif -@@ -1831,7 +1836,7 @@ load_too_high (void) - error (NILF, - _("cannot enforce load limits on this operating system")); - else -- perror_with_name (_("cannot enforce load limit: "), "getloadavg"); -+ perror_with_name_err (_("cannot enforce load limit: "), "getloadavg", errno); - } - lossage = errno; - load = 0; diff --git a/make/patches/make-3.81-fdleak.patch b/make/patches/make-3.81-fdleak.patch deleted file mode 100644 index 442ee54..0000000 --- a/make/patches/make-3.81-fdleak.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -urp make-3.81/read.c make-3.81-leak/read.c ---- make-3.81/read.c 2006-03-17 15:24:20.000000000 +0100 -+++ make-3.81-leak/read.c 2008-09-16 16:43:12.000000000 +0200 -@@ -296,6 +300,37 @@ restore_conditionals (struct conditional - conditionals = saved; - } - -+/* If possible, open the file and mark it close-on-exec, so that make -+ doesn't leak the descriptor to binaries called via $(shell ...).*/ -+static FILE * -+open_makefile (char *filename) -+{ -+ FILE *fp; -+ -+#if HAVE_FDOPEN -+ int fd = open (filename, O_RDONLY); -+ int save; -+ if (fd < 0) -+ return NULL; -+ -+ fp = fdopen (fd, "r"); -+ if (fp == NULL) -+ { -+ save = errno; -+ close (fd); -+ errno = save; -+ return NULL; -+ } -+ -+ CLOSE_ON_EXEC (fd); -+ -+#else -+ fp = fopen (filename, "r"); -+#endif -+ -+ return fp; -+} -+ - static int - eval_makefile (char *filename, int flags) - { -@@ -335,7 +376,8 @@ eval_makefile (char *filename, int flags - filename = expanded; - } - -- ebuf.fp = fopen (filename, "r"); -+ ebuf.fp = open_makefile (filename); -+ - /* Save the error code so we print the right message later. */ - makefile_errno = errno; - -@@ -348,7 +390,7 @@ eval_makefile (char *filename, int flags - for (i = 0; include_directories[i] != 0; ++i) - { - included = concat (include_directories[i], "/", filename); -- ebuf.fp = fopen (included, "r"); -+ ebuf.fp = open_makefile (included); - if (ebuf.fp) - { - filename = included; diff --git a/make/patches/make-3.81-jobserver.patch b/make/patches/make-3.81-jobserver.patch deleted file mode 100644 index df65107..0000000 --- a/make/patches/make-3.81-jobserver.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -urp make-3.81/main.c make-3.81-pm/main.c ---- make-3.81/main.c 2007-09-24 15:28:34.000000000 +0200 -+++ make-3.81-pm/main.c 2007-09-24 15:32:50.000000000 +0200 -@@ -1669,8 +1669,12 @@ main (int argc, char **argv, char **envp - - if (job_slots > 0) - { -- close (job_fds[0]); -- close (job_fds[1]); -+ if (restarts == 0) -+ { -+ close (job_fds[0]); -+ close (job_fds[1]); -+ } -+ - job_fds[0] = job_fds[1] = -1; - free (jobserver_fds->list); - free (jobserver_fds); diff --git a/make/patches/make-3.81-memory.patch b/make/patches/make-3.81-memory.patch deleted file mode 100644 index 7a7bf9f..0000000 --- a/make/patches/make-3.81-memory.patch +++ /dev/null @@ -1,261 +0,0 @@ -diff -Bburpd make-3.81_orig/file.c make-3.81/file.c ---- make-3.81_orig/file.c 2006-05-23 13:59:11.000000000 +0200 -+++ make-3.81/file.c 2006-05-23 14:39:34.000000000 +0200 -@@ -490,7 +490,7 @@ expand_deps (struct file *f) - - o = subst_expand (buffer, d->name, "%", "$*", 1, 2, 0); - -- free (d->name); -+ hash_strfree (d->name); - d->name = savestring (buffer, o - buffer); - d->staticpattern = 0; /* Clear staticpattern so that we don't - re-expand %s below. */ -@@ -549,7 +549,7 @@ expand_deps (struct file *f) - dp->name[0] = '\0'; - else - { -- free (dp->name); -+ hash_strfree (dp->name); - dp->name = savestring (buffer, o - buffer); - } - } -@@ -580,7 +580,7 @@ expand_deps (struct file *f) - if (d1->file == 0) - d1->file = enter_file (d1->name); - else -- free (d1->name); -+ hash_strfree (d1->name); - d1->name = 0; - d1->staticpattern = 0; - d1->need_2nd_expansion = 0; -Only in make-3.81: file.c~ -diff -Bburpd make-3.81_orig/implicit.c make-3.81/implicit.c ---- make-3.81_orig/implicit.c 2006-05-23 13:59:11.000000000 +0200 -+++ make-3.81/implicit.c 2006-05-23 14:40:01.000000000 +0200 -@@ -864,7 +864,7 @@ pattern_search (struct file *file, int a - dep->file = enter_file (dep->name); - /* enter_file uses dep->name _if_ we created a new file. */ - if (dep->name != dep->file->name) -- free (dep->name); -+ hash_strfree (dep->name); - dep->name = 0; - dep->file->tried_implicit |= dep->changed; - } -Only in make-3.81: implicit.c~ -diff -Bburpd make-3.81_orig/main.c make-3.81/main.c ---- make-3.81_orig/main.c 2006-05-23 13:59:11.000000000 +0200 -+++ make-3.81/main.c 2006-05-23 14:40:49.000000000 +0200 -@@ -540,6 +540,7 @@ initialize_global_hash_tables (void) - init_hash_files (); - hash_init_directories (); - hash_init_function_table (); -+ init_hash_strings (); - } - - static struct file * -Only in make-3.81: main.c~ -diff -Bburpd make-3.81_orig/make.h make-3.81/make.h ---- make-3.81_orig/make.h 2006-05-23 13:59:11.000000000 +0200 -+++ make-3.81/make.h 2006-05-23 14:41:21.000000000 +0200 -@@ -431,6 +431,11 @@ extern void print_spaces PARAMS ((unsign - extern char *find_percent PARAMS ((char *)); - extern FILE *open_tmpfile PARAMS ((char **, const char *)); - -+extern void init_hash_strings PARAMS ((void)); -+extern char *hash_strdup PARAMS ((const char *)); -+extern char *hash_savestring PARAMS ((const char *, unsigned int)); -+extern void hash_strfree PARAMS ((char *)); -+ - #ifndef NO_ARCHIVES - extern int ar_name PARAMS ((char *)); - extern void ar_parse_name PARAMS ((char *, char **, char **)); -Only in make-3.81: make.h~ -diff -Bburpd make-3.81_orig/misc.c make-3.81/misc.c ---- make-3.81_orig/misc.c 2006-05-23 13:59:11.000000000 +0200 -+++ make-3.81/misc.c 2006-05-23 14:42:59.000000000 +0200 -@@ -16,8 +16,10 @@ You should have received a copy of the G - GNU Make; see the file COPYING. If not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ - -+#include <assert.h> - #include "make.h" - #include "dep.h" -+#include "hash.h" - #include "debug.h" - - /* Variadic functions. We go through contortions to allow proper function -@@ -511,7 +513,7 @@ void - free_dep (struct dep *d) - { - if (d->name != 0) -- free (d->name); -+ hash_strfree (d->name); - - if (d->stem != 0) - free (d->stem); -@@ -535,7 +537,7 @@ copy_dep_chain (const struct dep *d) - bcopy ((char *) d, (char *) c, sizeof (struct dep)); - - if (c->name != 0) -- c->name = xstrdup (c->name); -+ c->name = hash_strdup (c->name); - if (c->stem != 0) - c->stem = xstrdup (c->stem); - -@@ -909,3 +911,154 @@ close_stdout (void) - exit (EXIT_FAILURE); - } - } -+ -+/* Hash table of duplicated strings. */ -+ -+struct hash_string -+{ -+ char *string; -+ unsigned int count; -+}; -+ -+static unsigned long -+string_hash_1 (key) -+ const void *key; -+{ -+ return_ISTRING_HASH_1 (((const struct hash_string *) key)->string); -+} -+ -+static unsigned long -+string_hash_2 (key) -+ const void *key; -+{ -+ return_ISTRING_HASH_2 (((const struct hash_string *) key)->string); -+} -+ -+static int -+string_hash_cmp (x, y) -+ const void *x; -+ const void *y; -+{ -+ return_ISTRING_COMPARE (((const struct hash_string *) x)->string, -+ ((const struct hash_string *) y)->string); -+} -+ -+static struct hash_table strings; -+ -+void -+init_hash_strings () -+{ -+ hash_init (&strings, 1000, string_hash_1, string_hash_2, -+ string_hash_cmp); -+} -+ -+/* Keep track duplicated string and return the old one if exists. */ -+ -+char * -+hash_strdup (ptr) -+ const char *ptr; -+{ -+ struct hash_string *h, key; -+ -+ if (*ptr == '\0') -+ return ""; -+ -+ key.string = (char *) ptr; -+ key.count = 0; -+ h = (struct hash_string *) hash_find_item (&strings, &key); -+ if (h == NULL) -+ { -+ char *result = (char *) malloc (strlen (ptr) + 1); -+ -+ if (result == NULL) -+ fatal (NILF, _("virtual memory exhausted")); -+ -+ strcpy (result, ptr); -+ -+ h = (struct hash_string *) malloc (sizeof (struct hash_string)); -+ if (h == NULL) -+ fatal (NILF, _("virtual memory exhausted")); -+ -+ h->string = result; -+ h->count = 1; -+ hash_insert (&strings, h); -+ } -+ else -+ { -+ h->count++; -+ assert (h->count != 0); -+ } -+ -+ return h->string; -+} -+ -+char * -+hash_savestring (str, length) -+ const char *str; -+ unsigned int length; -+{ -+ struct hash_string *h, key; -+ -+ if (length == 0 || *str == '\0') -+ return ""; -+ -+ key.string = alloca (length + 1); -+ key.count = 0; -+ bcopy (str, key.string, length); -+ key.string [length] = '\0'; -+ -+ h = (struct hash_string *) hash_find_item (&strings, &key); -+ if (h == NULL) -+ { -+ char *out = (char *) xmalloc (length + 1); -+ bcopy (str, out, length); -+ out[length] = '\0'; -+ -+ h = (struct hash_string *) malloc (sizeof (struct hash_string)); -+ if (h == NULL) -+ fatal (NILF, _("virtual memory exhausted")); -+ -+ h->string = out; -+ h->count = 1; -+ hash_insert (&strings, h); -+ } -+ else -+ { -+ h->count++; -+ assert (h->count != 0); -+ } -+ -+ return h->string; -+} -+ -+void -+hash_strfree (ptr) -+ char *ptr; -+{ -+ struct hash_string *h, key; -+ -+ if (*ptr == '\0') -+ return; -+ -+ key.string = ptr; -+ key.count = 0; -+ h = (struct hash_string *) hash_find_item (&strings, &key); -+ -+ /* Check if string comes from hash_strdup or hash_savestring. */ -+ if (h == NULL || h->string != ptr) -+ { -+ free (ptr); -+ return; -+ } -+ -+ h->count--; -+ if (h->count == 0) -+ { -+ struct hash_string *d; -+ -+ d = hash_delete (&strings, h); -+ assert (d == h); -+ free (h->string); -+ free (h); -+ } -+} -Only in make-3.81: misc.c~ -Only in make-3.81: read.c~ diff --git a/make/patches/make-3.81-newlines.patch b/make/patches/make-3.81-newlines.patch deleted file mode 100644 index d9bb313..0000000 --- a/make/patches/make-3.81-newlines.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- make-3.81-orig/job.c 2007-02-21 19:10:54.000000000 +0100 -+++ make-3.81-pm/job.c 2007-02-22 18:13:59.000000000 +0100 -@@ -2706,7 +2706,7 @@ - unsigned int line_len = strlen (line); - - char *new_line = (char *) alloca (shell_len + (sizeof (minus_c) - 1) -- + (line_len * 2) + 1); -+ + (line_len * 4) + 1); - char *command_ptr = NULL; /* used for batch_mode_shell mode */ - - # ifdef __EMX__ /* is this necessary? */ -@@ -2740,9 +2740,10 @@ - #endif - if (PRESERVE_BSNL) - { -- *(ap++) = '\'; -+ *(ap++) = '''; - *(ap++) = '\'; - *(ap++) = '\n'; -+ *(ap++) = '''; - } - - ++p; diff --git a/make/patches/make-3.81-rlimit.patch b/make/patches/make-3.81-rlimit.patch deleted file mode 100644 index f88f0fe..0000000 --- a/make/patches/make-3.81-rlimit.patch +++ /dev/null @@ -1,111 +0,0 @@ -diff -urp make-3.81/job.c make-3.81-pm/job.c ---- make-3.81/job.c 2008-03-25 18:15:38.000000000 +0100 -+++ make-3.81-pm/job.c 2008-03-25 17:51:11.000000000 +0100 -@@ -2079,6 +2079,9 @@ exec_command (char **argv, char **envp) - # else - - /* Run the program. */ -+#ifdef SET_STACK_SIZE -+ restore_original_stack_rlimit (); -+#endif - environ = envp; - execvp (argv[0], argv); - -diff -urp make-3.81/main.c make-3.81-pm/main.c ---- make-3.81/main.c 2008-03-25 18:15:38.000000000 +0100 -+++ make-3.81-pm/main.c 2008-03-25 18:14:04.000000000 +0100 -@@ -44,12 +44,53 @@ Foundation, Inc., 51 Franklin St, Fifth - # include <fcntl.h> - #endif - --#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) --# define SET_STACK_SIZE --#endif -- - #ifdef SET_STACK_SIZE - # include <sys/resource.h> -+/* Whether the rlimit was set successfuly */ -+static int setrlimit_succeeded = 0; -+/* Original rlim_cur */ -+static rlim_t setrlimit_orig_cur = 0; -+ -+/* Get rid of any avoidable limit on stack size so that alloca does -+ not fail. */ -+void -+set_max_stack_rlimit (void) -+{ -+ struct rlimit rlim; -+ -+ /* Back off if the limit is still set, probably due to failure in -+ restore_original_stack_rlimit. */ -+ if (setrlimit_succeeded) -+ return; -+ -+ if (getrlimit (RLIMIT_STACK, &rlim) == 0) -+ { -+ setrlimit_orig_cur = rlim.rlim_cur; -+ rlim.rlim_cur = rlim.rlim_max; -+ if (setrlimit (RLIMIT_STACK, &rlim) != -1) -+ setrlimit_succeeded = 1; -+ } -+} -+ -+/* Set the rlimit back to its original value. To be called before -+ process spawn. */ -+void -+restore_original_stack_rlimit (void) -+{ -+ struct rlimit rlim; -+ -+ if (!setrlimit_succeeded) -+ return; -+ -+ if (getrlimit (RLIMIT_STACK, &rlim) == 0) -+ { -+ rlim.rlim_cur = setrlimit_orig_cur; -+ setrlimit (RLIMIT_STACK, &rlim); -+ /* Don't reset the setrlimit_succeeded flag. This can be called -+ after vfork, in which case the flag is in memory shared with -+ the parent. */ -+ } -+} - #endif - - #ifdef _AMIGA -@@ -915,17 +956,7 @@ main (int argc, char **argv, char **envp - #endif - - #ifdef SET_STACK_SIZE -- /* Get rid of any avoidable limit on stack size. */ -- { -- struct rlimit rlim; -- -- /* Set the stack limit huge so that alloca does not fail. */ -- if (getrlimit (RLIMIT_STACK, &rlim) == 0) -- { -- rlim.rlim_cur = rlim.rlim_max; -- setrlimit (RLIMIT_STACK, &rlim); -- } -- } -+ set_max_stack_rlimit (); - #endif - - #ifdef HAVE_ATEXIT -diff -urp make-3.81/make.h make-3.81-pm/make.h ---- make-3.81/make.h 2008-03-25 18:15:38.000000000 +0100 -+++ make-3.81-pm/make.h 2008-03-25 17:51:10.000000000 +0100 -@@ -346,6 +346,13 @@ extern int strcmpi (const char *,const c - #define N_(msgid) gettext_noop (msgid) - #define S_(msg1,msg2,num) ngettext (msg1,msg2,num) - -+/* Handle rlimit */ -+#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) -+# define SET_STACK_SIZE -+void set_max_stack_rlimit (void); -+void restore_original_stack_rlimit (void); -+#endif -+ - /* Handle other OSs. */ - #if defined(HAVE_DOS_PATHS) - # define PATH_SEPARATOR_CHAR ';' -diff -urp make-3.81/w32/Makefile make-3.81-pm/w32/Makefile diff --git a/make/patches/make-3.81-strcpy-overlap.patch b/make/patches/make-3.81-strcpy-overlap.patch deleted file mode 100644 index d045737..0000000 --- a/make/patches/make-3.81-strcpy-overlap.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: job.c -=================================================================== -RCS file: /sources/make/make/job.c,v -retrieving revision 1.193 -diff -u -r1.193 job.c ---- a/job.c 9 Jun 2009 15:35:38 -0000 1.193 -+++ b/job.c 31 Jul 2009 11:42:16 -0000 -@@ -1600,7 +1600,7 @@ - /* There are no more references in this line to worry about. - Copy the remaining uninteresting text to the output. */ - if (out != in) -- strcpy (out, in); -+ memmove (out, in, strlen (in) + 1); - - /* Finally, expand the line. */ - lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i], diff --git a/make/patches/make-4.0-err-reporting.patch b/make/patches/make-4.0-err-reporting.patch new file mode 100644 index 0000000..1d24875 --- /dev/null +++ b/make/patches/make-4.0-err-reporting.patch @@ -0,0 +1,156 @@ +diff -Nrup a/job.c b/job.c +--- a/job.c 2013-10-05 19:12:24.000000000 -0400 ++++ b/job.c 2014-02-03 18:15:48.681085207 -0500 +@@ -1020,7 +1020,7 @@ free_child (struct child *child) + + EINTRLOOP (r, write (job_fds[1], &token, 1)); + if (r != 1) +- pfatal_with_name (_("write jobserver")); ++ pfatal_with_name_err (_("write jobserver"), errno); + + DB (DB_JOBS, (_("Released token for child %p (%s).\n"), + child, child->file->name)); +@@ -1956,6 +1956,7 @@ new_job (struct file *file) + #else + /* Set interruptible system calls, and read() for a job token. */ + set_child_handler_action_flags (1, waiting_jobs != NULL); ++ errno = 0; + got_token = read (job_rfd, &token, 1); + saved_errno = errno; + set_child_handler_action_flags (0, waiting_jobs != NULL); +@@ -1972,10 +1973,14 @@ new_job (struct file *file) + #ifndef WINDOWS32 + /* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise, + go back and reap_children(), and try again. */ +- errno = saved_errno; +- if (errno != EINTR && errno != EBADF) +- pfatal_with_name (_("read jobs pipe")); +- if (errno == EBADF) ++ if (saved_errno != EINTR && saved_errno != EBADF) ++ { ++ if (got_token == 0) ++ fatal (NILF, _("read jobs pipe EOF")); ++ else ++ pfatal_with_name_err (_("read jobs pipe"), saved_errno); ++ } ++ if (saved_errno == EBADF) + DB (DB_JOBS, ("Read returned EBADF.\n")); + #endif + } +@@ -2117,7 +2122,9 @@ load_too_high (void) + error (NILF, + _("cannot enforce load limits on this operating system")); + else +- perror_with_name (_("cannot enforce load limit: "), "getloadavg"); ++ perror_with_name_err (_("cannot enforce load limit: "), ++ "getloadavg", errno); ++ + } + lossage = errno; + load = 0; +diff -Nrup a/main.c b/main.c +--- a/main.c 2014-02-03 17:49:03.255939340 -0500 ++++ b/main.c 2014-02-03 18:06:25.768024183 -0500 +@@ -1580,7 +1580,7 @@ main (int argc, char **argv, char **envp + || (job_rfd = dup (job_fds[0])) < 0) + { + if (errno != EBADF) +- pfatal_with_name (_("dup jobserver")); ++ pfatal_with_name_err (_("dup jobserver"), errno); + + error (NILF, + _("warning: jobserver unavailable: using -j1. Add '+' to parent make rule.")); +@@ -1787,13 +1787,13 @@ main (int argc, char **argv, char **envp + strcat (template, DEFAULT_TMPFILE); + outfile = output_tmpfile (&stdin_nm, template); + if (outfile == 0) +- pfatal_with_name (_("fopen (temporary file)")); ++ pfatal_with_name_err (_("fopen (temporary file)"), errno); + while (!feof (stdin) && ! ferror (stdin)) + { + char buf[2048]; + unsigned int n = fread (buf, 1, sizeof (buf), stdin); + if (n > 0 && fwrite (buf, 1, n, outfile) != n) +- pfatal_with_name (_("fwrite (temporary file)")); ++ pfatal_with_name_err (_("fwrite (temporary file)"), errno); + } + fclose (outfile); + +@@ -2030,7 +2030,8 @@ main (int argc, char **argv, char **envp + char c = '+'; + + if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0) +- pfatal_with_name (_("creating jobs pipe")); ++ pfatal_with_name_err (_("creating jobs pipe"), errno); ++ + #endif + + /* Every make assumes that it always has one job it can run. For the +@@ -2050,7 +2051,8 @@ main (int argc, char **argv, char **envp + + EINTRLOOP (r, write (job_fds[1], &c, 1)); + if (r != 1) +- pfatal_with_name (_("init jobserver pipe")); ++ pfatal_with_name_err (_("init jobserver pipe"), errno); ++ + } + #endif + +@@ -2474,7 +2476,7 @@ main (int argc, char **argv, char **envp + /* If there is a temp file from reading a makefile from stdin, get rid of + it now. */ + if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT) +- perror_with_name (_("unlink (temporary file): "), stdin_nm); ++ perror_with_name_err (_("unlink (temporary file): "), stdin_nm, errno); + + /* If there were no command-line goals, use the default. */ + if (goals == 0) +diff -Nrup a/makeint.h b/makeint.h +--- a/makeint.h 2014-02-03 17:49:03.265939424 -0500 ++++ b/makeint.h 2014-02-03 18:09:31.738695318 -0500 +@@ -436,6 +436,8 @@ void fatal (const gmk_floc *flocp, const + void die (int) __attribute__ ((noreturn)); + void pfatal_with_name (const char *) __attribute__ ((noreturn)); + void perror_with_name (const char *, const char *); ++void pfatal_with_name_err (const char *, int errnum) __attribute__ ((noreturn)); ++void perror_with_name_err (const char *, const char *, int errnum); + #define xstrlen(_s) ((_s)==NULL ? 0 : strlen (_s)) + void *xmalloc (unsigned int); + void *xcalloc (unsigned int); +diff -Nrup a/output.c b/output.c +--- a/output.c 2013-10-05 19:12:24.000000000 -0400 ++++ b/output.c 2014-02-03 18:22:48.617908701 -0500 +@@ -746,17 +746,31 @@ fatal (const gmk_floc *flocp, const char + /* Print an error message from errno. */ + + void ++perror_with_name_err (const char *str, const char *name, int errnum) ++{ ++ error (NILF, _("%s%s: %s"), str, name, strerror (errnum)); ++} ++ ++void + perror_with_name (const char *str, const char *name) + { +- error (NILF, _("%s%s: %s"), str, name, strerror (errno)); ++ perror_with_name_err (str, name, errno); + } + + /* Print an error message from errno and exit. */ + + void ++pfatal_with_name_err (const char *name, int errnum) ++{ ++ fatal (NILF, _("%s: %s"), name, strerror (errnum)); ++ ++ /* NOTREACHED */ ++} ++ ++void + pfatal_with_name (const char *name) + { +- fatal (NILF, _("%s: %s"), name, strerror (errno)); ++ pfatal_with_name_err (name, errno); + + /* NOTREACHED */ + } diff --git a/make/patches/make-4.0-getcwd.patch b/make/patches/make-4.0-getcwd.patch new file mode 100644 index 0000000..c0bb459 --- /dev/null +++ b/make/patches/make-4.0-getcwd.patch @@ -0,0 +1,12 @@ +diff -Nrup a/makeint.h b/makeint.h +--- a/makeint.h 2013-10-09 00:22:40.000000000 -0400 ++++ b/makeint.h 2014-02-03 17:46:24.969618708 -0500 +@@ -528,7 +528,7 @@ long int lseek (); + #endif /* Not GNU C library or POSIX. */ + + #ifdef HAVE_GETCWD +-# if !defined(VMS) && !defined(__DECC) ++# if !defined(VMS) && !defined(__DECC) && !defined(getcwd) + char *getcwd (); + # endif + #else diff --git a/make/patches/make-4.0-j8k.patch b/make/patches/make-4.0-j8k.patch new file mode 100644 index 0000000..2ebcc5b --- /dev/null +++ b/make/patches/make-4.0-j8k.patch @@ -0,0 +1,24 @@ +diff -Nrup a/main.c b/main.c +--- a/main.c 2013-10-09 00:22:40.000000000 -0400 ++++ b/main.c 2014-02-03 17:18:04.238609236 -0500 +@@ -1987,6 +1987,20 @@ main (int argc, char **argv, char **envp + } + #endif + ++#ifdef PIPE_BUF ++ if (job_slots > PIPE_BUF) ++#elif defined _POSIX_PIPE_BUF ++ if (job_slots > _POSIX_PIPE_BUF) ++#else ++ if (job_slots > 512) ++#endif ++ { ++ error (NILF, ++ _("More parallel jobs (-jN) than this platform can handle requested.")); ++ error (NILF, _("Resetting to single job (-j1) mode.")); ++ job_slots = 1; ++ } ++ + #ifdef MAKE_JOBSERVER + /* If we have >1 slot but no jobserver-fds, then we're a top-level make. + Set up the pipe and install the fds option for our children. */ diff --git a/make/patches/make-4.0-newlines.patch b/make/patches/make-4.0-newlines.patch new file mode 100644 index 0000000..add32c5 --- /dev/null +++ b/make/patches/make-4.0-newlines.patch @@ -0,0 +1,19 @@ +diff -Nrup a/job.c b/job.c +--- a/job.c 2014-02-03 18:23:45.936436714 -0500 ++++ b/job.c 2014-02-04 00:17:53.232074893 -0500 +@@ -3269,13 +3269,14 @@ construct_command_argv_internal (char *l + #endif + if (PRESERVE_BSNL) + { +- *(ap++) = '\'; ++ *(ap++) = '''; + /* Only non-batch execution needs another backslash, + because it will be passed through a recursive + invocation of this function. */ + if (!batch_mode_shell) + *(ap++) = '\'; + *(ap++) = '\n'; ++ *(ap++) = '''; + } + ++p; + continue; diff --git a/make/patches/make-4.0-noclock_gettime.patch b/make/patches/make-4.0-noclock_gettime.patch new file mode 100644 index 0000000..f63e1fc --- /dev/null +++ b/make/patches/make-4.0-noclock_gettime.patch @@ -0,0 +1,14 @@ +diff -up make-3.82/configure~ make-3.82/configure +--- make-3.82/configure~ 2010-07-28 07:41:51.000000000 +0200 ++++ make-3.82/configure 2010-08-11 15:07:50.000000000 +0200 +@@ -7215,7 +7215,7 @@ return clock_gettime (); + return 0; + } + _ACEOF +-for ac_lib in '' rt posix4; do ++for ac_lib in '' posix4; do + if test -z "$ac_lib"; then + ac_res="none required" + else + +Diff finished. Wed Aug 11 15:07:59 2010 diff --git a/make/patches/make-4.0-weird-shell.patch b/make/patches/make-4.0-weird-shell.patch new file mode 100644 index 0000000..dfdaf89 --- /dev/null +++ b/make/patches/make-4.0-weird-shell.patch @@ -0,0 +1,16 @@ +diff -up make-3.82/job.c~ make-3.82/job.c +--- make-3.82/job.c~ 2010-08-11 16:13:33.000000000 +0200 ++++ make-3.82/job.c 2010-08-12 14:20:08.000000000 +0200 +@@ -2442,7 +2442,11 @@ construct_command_argv_internal (char *l + + /* See if it is safe to parse commands internally. */ + if (shell == 0) +- shell = default_shell; ++ { ++ shell = default_shell; ++ if (shellflags == 0) ++ shellflags = "-c"; ++ } + #ifdef WINDOWS32 + else if (strcmp (shell, default_shell)) + { diff --git a/ncurses/ncurses.nm b/ncurses/ncurses.nm index 7b3f918..7528b1d 100644 --- a/ncurses/ncurses.nm +++ b/ncurses/ncurses.nm @@ -5,7 +5,9 @@
name = ncurses version = 5.9 -release = 9 +revision = 20150117 +release = 10.%{revision} +thisapp = %{name}-%{version}-%{revision}
groups = System/Base url = http://invisible-island.net/ncurses/ncurses.html @@ -19,7 +21,8 @@ description discontinued 4.4 BSD classic curses library. end
-source_dl = +source_dl = ftp://invisible-island.net/ncurses/current/ +sources = %{thisapp}.tgz
build requires diff --git a/openldap/openldap.nm b/openldap/openldap.nm index 2588061..eaaea2f 100644 --- a/openldap/openldap.nm +++ b/openldap/openldap.nm @@ -4,8 +4,8 @@ ###############################################################################
name = openldap -version = 2.4.32 -release = 5 +version = 2.4.40 +release = 1
groups = System/Daemons url = http://www.openldap.org/ @@ -26,6 +26,7 @@ sources = %{thisapp}.tgz
build requires + automake db4-devel cyrus-sasl-devel groff @@ -56,6 +57,11 @@ build
prepare_cmds %{create_user} + + # for aarch64 + for i in $(find . -name config.guess -or -name config.sub); do + cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i}) + done end
install_cmds diff --git a/popt/popt.nm b/popt/popt.nm index 92de3e9..56eb33c 100644 --- a/popt/popt.nm +++ b/popt/popt.nm @@ -4,8 +4,8 @@ ###############################################################################
name = popt -version = 1.15 -release = 3 +version = 1.16 +release = 1
groups = System/Libraries url = http://www.rpm5.org/ @@ -18,7 +18,19 @@ description it improves on them by allowing more powerful argument expansion. end
-source_dl = +source_dl = http://rpm5.org/files/popt/ + +build + requires + automake + end + + prepare_cmds + for i in $(find . -name config.guess -or -name config.sub); do + cp -vf %{datadir}/automake-*/config.{guess,sub} $(dirname ${i}) + done + end +end
packages package %{name} diff --git a/psmisc/psmisc.nm b/psmisc/psmisc.nm index e86a9ff..805ea84 100644 --- a/psmisc/psmisc.nm +++ b/psmisc/psmisc.nm @@ -4,7 +4,7 @@ ###############################################################################
name = psmisc -version = 22.19 +version = 22.21 release = 1
groups = Applications/System diff --git a/readline/patches/readline-6.1-audit.patch b/readline/patches/readline-6.1-audit.patch deleted file mode 100644 index 38f8adf..0000000 --- a/readline/patches/readline-6.1-audit.patch +++ /dev/null @@ -1,116 +0,0 @@ -diff -up readline-6.1/config.h.in.audit readline-6.1/config.h.in ---- readline-6.1/config.h.in.audit 2009-03-10 15:57:45.000000000 +0100 -+++ readline-6.1/config.h.in 2011-01-18 15:14:51.199219895 +0100 -@@ -29,6 +29,9 @@ - - #undef __CHAR_UNSIGNED__ - -+/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */ -+#undef HAVE_DECL_AUDIT_USER_TTY -+ - /* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */ - #undef STAT_MACROS_BROKEN - -diff -up readline-6.1/configure.audit readline-6.1/configure ---- readline-6.1/configure.audit 2009-12-29 23:33:49.000000000 +0100 -+++ readline-6.1/configure 2011-01-18 15:21:20.571330373 +0100 -@@ -6602,7 +6602,9 @@ _ACEOF - - fi - -- -+cat >>confdefs.h <<_ACEOF -+#define HAVE_DECL_AUDIT_USER_TTY 1 -+_ACEOF - - { $as_echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5 - $as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; } -diff -up readline-6.1/configure.in.audit readline-6.1/configure.in ---- readline-6.1/configure.in.audit 2009-10-12 16:12:15.000000000 +0200 -+++ readline-6.1/configure.in 2011-01-18 15:14:51.199219895 +0100 -@@ -159,6 +159,8 @@ AC_CHECK_HEADERS(sys/ptem.h,,, - - AC_SYS_LARGEFILE - -+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]]) -+ - BASH_SYS_SIGNAL_VINTAGE - BASH_SYS_REINSTALL_SIGHANDLERS - -diff -up readline-6.1/readline.c.audit readline-6.1/readline.c ---- readline-6.1/readline.c.audit 2009-08-31 14:45:31.000000000 +0200 -+++ readline-6.1/readline.c 2011-01-18 15:14:51.200219841 +0100 -@@ -55,6 +55,12 @@ - extern int errno; - #endif /* !errno */ - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+# include <sys/socket.h> -+# include <linux/audit.h> -+# include <linux/netlink.h> -+#endif -+ - /* System-specific feature definitions and include files. */ - #include "rldefs.h" - #include "rlmbutil.h" -@@ -301,7 +307,47 @@ rl_set_prompt (prompt) - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; - } -- -+ -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+/* Report STRING to the audit system. */ -+static void -+audit_tty (char *string) -+{ -+ struct sockaddr_nl addr; -+ struct msghdr msg; -+ struct nlmsghdr nlm; -+ struct iovec iov[2]; -+ size_t size; -+ int fd; -+ -+ size = strlen (string) + 1; -+ fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT); -+ if (fd < 0) -+ return; -+ nlm.nlmsg_len = NLMSG_LENGTH (size); -+ nlm.nlmsg_type = AUDIT_USER_TTY; -+ nlm.nlmsg_flags = NLM_F_REQUEST; -+ nlm.nlmsg_seq = 0; -+ nlm.nlmsg_pid = 0; -+ iov[0].iov_base = &nlm; -+ iov[0].iov_len = sizeof (nlm); -+ iov[1].iov_base = string; -+ iov[1].iov_len = size; -+ addr.nl_family = AF_NETLINK; -+ addr.nl_pid = 0; -+ addr.nl_groups = 0; -+ msg.msg_name = &addr; -+ msg.msg_namelen = sizeof (addr); -+ msg.msg_iov = iov; -+ msg.msg_iovlen = 2; -+ msg.msg_control = NULL; -+ msg.msg_controllen = 0; -+ msg.msg_flags = 0; -+ (void)sendmsg (fd, &msg, 0); -+ close (fd); -+} -+#endif -+ - /* Read a line of input. Prompt with PROMPT. An empty PROMPT means - none. A return value of NULL means that EOF was encountered. */ - char * -@@ -352,6 +398,11 @@ readline (prompt) - RL_SETSTATE (RL_STATE_CALLBACK); - #endif - -+#if defined (HAVE_DECL_AUDIT_USER_TTY) -+ if (value != NULL) -+ audit_tty (value); -+#endif -+ - return (value); - } - diff --git a/readline/patches/readline-6.2-shlib.patch b/readline/patches/readline-6.2-shlib.patch deleted file mode 100644 index 914b260..0000000 --- a/readline/patches/readline-6.2-shlib.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up readline-6.2/shlib/Makefile.in.shlib readline-6.2/shlib/Makefile.in ---- readline-6.2/shlib/Makefile.in.shlib 2010-12-28 21:56:21.000000000 +0100 -+++ readline-6.2/shlib/Makefile.in 2011-02-14 17:34:38.821537496 +0100 -@@ -170,7 +170,7 @@ $(SHARED_READLINE): $(SHARED_OBJ) - - $(SHARED_HISTORY): $(SHARED_HISTOBJ) xmalloc.so xfree.so - $(RM) $@ -- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so $(SHLIB_LIBS) -+ $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so xfree.so - - # Since tilde.c is shared between readline and bash, make sure we compile - # it with the right flags when it's built as part of readline -diff -up readline-6.2/support/shlib-install.shlib readline-6.2/support/shlib-install ---- readline-6.2/support/shlib-install.shlib 2009-10-28 14:30:18.000000000 +0100 -+++ readline-6.2/support/shlib-install 2011-02-14 17:33:07.611768164 +0100 -@@ -72,7 +72,7 @@ fi - case "$host_os" in - hpux*|darwin*|macosx*|linux*) - if [ -z "$uninstall" ]; then -- chmod 555 ${INSTALLDIR}/${LIBNAME} -+ chmod 755 ${INSTALLDIR}/${LIBNAME} - fi ;; - cygwin*|mingw*) - IMPLIBNAME=`echo ${LIBNAME} \ -diff -up readline-6.2/support/shobj-conf.shlib readline-6.2/support/shobj-conf ---- readline-6.2/support/shobj-conf.shlib 2009-10-28 14:20:21.000000000 +0100 -+++ readline-6.2/support/shobj-conf 2011-02-14 17:33:07.612767986 +0100 -@@ -112,10 +112,11 @@ sunos5*|solaris2*) - linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) - SHOBJ_CFLAGS=-fPIC - SHOBJ_LD='${CC}' -- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' -+ SHOBJ_LDFLAGS='$(CFLAGS) -shared -Wl,-soname,$@' - -- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' -+ SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`' - SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' -+ SHLIB_LIBS='-ltinfo' - ;; - - freebsd2*) diff --git a/readline/readline.nm b/readline/readline.nm index 4b8c226..70f40cd 100644 --- a/readline/readline.nm +++ b/readline/readline.nm @@ -4,8 +4,8 @@ ###############################################################################
name = readline -version = 6.2 -release = 6 +version = 6.3 +release = 1
groups = System/Libraries url = ftp://ftp.gnu.org/gnu/readline/ diff --git a/shadow-utils/patches/shadow-4.1.4.2-ipfire.patch b/shadow-utils/patches/shadow-4.1.4.2-ipfire.patch deleted file mode 100644 index e15eeb2..0000000 --- a/shadow-utils/patches/shadow-4.1.4.2-ipfire.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -Nur shadow-4.1.4.2_orig/libmisc/find_new_gid.c shadow-4.1.4.2/libmisc/find_new_gid.c ---- shadow-4.1.4.2_orig/libmisc/find_new_gid.c 2009-07-17 23:53:42.000000000 +0000 -+++ shadow-4.1.4.2/libmisc/find_new_gid.c 2009-08-03 18:16:37.000000000 +0000 -@@ -58,11 +58,11 @@ - assert (gid != NULL); - - if (!sys_group) { -- gid_min = (gid_t) getdef_ulong ("GID_MIN", 1000UL); -+ gid_min = (gid_t) getdef_ulong ("GID_MIN", 500UL); - gid_max = (gid_t) getdef_ulong ("GID_MAX", 60000UL); - } else { - gid_min = (gid_t) getdef_ulong ("SYS_GID_MIN", 101UL); -- gid_max = (gid_t) getdef_ulong ("GID_MIN", 1000UL) - 1; -+ gid_max = (gid_t) getdef_ulong ("GID_MIN", 500UL) - 1; - gid_max = (gid_t) getdef_ulong ("SYS_GID_MAX", (unsigned long) gid_max); - } - used_gids = alloca (sizeof (bool) * (gid_max +1)); -diff -Nur shadow-4.1.4.2_orig/libmisc/find_new_uid.c shadow-4.1.4.2/libmisc/find_new_uid.c ---- shadow-4.1.4.2_orig/libmisc/find_new_uid.c 2009-07-17 23:53:43.000000000 +0000 -+++ shadow-4.1.4.2/libmisc/find_new_uid.c 2009-08-03 18:17:20.000000000 +0000 -@@ -58,11 +58,11 @@ - assert (uid != NULL); - - if (!sys_user) { -- uid_min = (uid_t) getdef_ulong ("UID_MIN", 1000UL); -+ uid_min = (uid_t) getdef_ulong ("UID_MIN", 500UL); - uid_max = (uid_t) getdef_ulong ("UID_MAX", 60000UL); - } else { - uid_min = (uid_t) getdef_ulong ("SYS_UID_MIN", 101UL); -- uid_max = (uid_t) getdef_ulong ("UID_MIN", 1000UL) - 1; -+ uid_max = (uid_t) getdef_ulong ("UID_MIN", 500UL) - 1; - uid_max = (uid_t) getdef_ulong ("SYS_UID_MAX", (unsigned long) uid_max); - } - used_uids = alloca (sizeof (bool) * (uid_max +1)); -diff -Nur shadow-4.1.4.2_orig/src/useradd.c shadow-4.1.4.2/src/useradd.c ---- shadow-4.1.4.2_orig/src/useradd.c 2009-06-05 22:16:58.000000000 +0000 -+++ shadow-4.1.4.2/src/useradd.c 2009-08-03 18:26:31.000000000 +0000 -@@ -90,7 +90,7 @@ - static gid_t def_group = 100; - static const char *def_gname = "other"; - static const char *def_home = "/home"; --static const char *def_shell = ""; -+static const char *def_shell = "/sbin/nologin"; - static const char *def_template = SKEL_DIR; - static const char *def_create_mail_spool = "no"; - -@@ -102,7 +102,7 @@ - #define VALID(s) (strcspn (s, ":\n") == strlen (s)) - - static const char *user_name = ""; --static const char *user_pass = "!"; -+static const char *user_pass = "!!"; - static uid_t user_id; - static gid_t user_gid; - static const char *user_comment = ""; -@@ -989,9 +989,9 @@ - }; - while ((c = getopt_long (argc, argv, - #ifdef WITH_SELINUX -- "b:c:d:De:f:g:G:k:K:lmMNop:rs:u:UZ:", -+ "b:c:d:De:f:g:G:k:K:lmMnNop:rs:u:UZ:", - #else -- "b:c:d:De:f:g:G:k:K:lmMNop:rs:u:U", -+ "b:c:d:De:f:g:G:k:K:lmMnNop:rs:u:U", - #endif - long_options, NULL)) != -1) { - switch (c) { -@@ -1141,6 +1141,7 @@ - case 'M': - Mflg = true; - break; -+ case 'n': - case 'N': - Nflg = true; - break; diff --git a/shadow-utils/patches/shadow-4.1.4.3-goodname.patch b/shadow-utils/patches/shadow-4.1.4.3-goodname.patch deleted file mode 100644 index fe49765..0000000 --- a/shadow-utils/patches/shadow-4.1.4.3-goodname.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -Nur shadow-4.1.4.2_orig/libmisc/chkname.c shadow-4.1.4.2/libmisc/chkname.c ---- shadow-4.1.4.2_orig/libmisc/chkname.c 2009-04-28 19:14:04.000000000 +0000 -+++ shadow-4.1.4.2/libmisc/chkname.c 2009-08-03 18:47:59.000000000 +0000 -@@ -49,21 +49,29 @@ - static bool is_valid_name (const char *name) - { - /* -- * User/group names must match [a-z_][a-z0-9_-]*[$] -- */ -- if (('\0' == *name) || -- !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) { -+ * User/group names must match gnu e-regex: -+ * [a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]? -+ * -+ * as a non-POSIX, extension, allow "$" as the last char for -+ * sake of Samba 3.x "add machine script" -+ */ -+ if ( ('\0' == *name) || -+ !((*name >= 'a' && *name <= 'z') || -+ (*name >= 'A' && *name <= 'Z') || -+ (*name >= '0' && *name <= '9') || -+ (*name == '_') || (*name == '.') -+ )) { - return false; - } - - while ('\0' != *++name) { -- if (!(( ('a' <= *name) && ('z' >= *name) ) || -- ( ('0' <= *name) && ('9' >= *name) ) || -- ('_' == *name) || -- ('-' == *name) || -- ( ('$' == *name) && ('\0' == *(name + 1)) ) -- )) { -- return false; -+ if (!( (*name >= 'a' && *name <= 'z') || -+ (*name >= 'A' && *name <= 'Z') || -+ (*name >= '0' && *name <= '9') || -+ (*name == '_') || (*name == '.') || (*name == '-') || -+ (*name == '$' && *(name + 1) == '\0') -+ )) { -+ return false; - } - } - -diff -Nur shadow-4.1.4.2_orig/man/groupadd.8 shadow-4.1.4.2/man/groupadd.8 ---- shadow-4.1.4.2_orig/man/groupadd.8 2009-07-24 01:16:24.000000000 +0000 -+++ shadow-4.1.4.2/man/groupadd.8 2009-08-03 18:51:10.000000000 +0000 -@@ -153,9 +153,7 @@ - .RE - .SH "CAVEATS" - .PP --Groupnames must start with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes&. They can end with a dollar sign&. In regular expression terms: [a-z_][a-z0-9_-]*[$]? --.PP --Groupnames may only be up to characters long&. -+Groupnames may only be up to 32 characters long&. - .PP - You may not add a NIS or LDAP group&. This must be performed on the corresponding server&. - .PP -diff -Nur shadow-4.1.4.2_orig/man/useradd.8 shadow-4.1.4.2/man/useradd.8 ---- shadow-4.1.4.2_orig/man/useradd.8 2009-07-24 01:16:44.000000000 +0000 -+++ shadow-4.1.4.2/man/useradd.8 2009-08-03 18:51:52.000000000 +0000 -@@ -405,8 +405,6 @@ - \fBuseradd\fR - will deny the user account creation request&. - .PP --Usernames must start with a lower case letter or an underscore, followed by lower case letters, digits, underscores, or dashes&. They can end with a dollar sign&. In regular expression terms: [a-z_][a-z0-9_-]*[$]? --.PP - Usernames may only be up to 32 characters long&. - .SH "CONFIGURATION" - .PP diff --git a/shadow-utils/shadow-utils.nm b/shadow-utils/shadow-utils.nm index 1607b5e..9e8dfc7 100644 --- a/shadow-utils/shadow-utils.nm +++ b/shadow-utils/shadow-utils.nm @@ -4,8 +4,8 @@ ###############################################################################
name = shadow-utils -version = 4.1.4.3 -release = 7 +version = 4.2.1 +release = 1 thisapp = shadow-%{version}
maintainer = Michael Tremer michael.tremer@ipfire.org @@ -21,23 +21,30 @@ description end
source_dl = http://pkg-shadow.alioth.debian.org/releases/ -sources = %{thisapp}.tar.bz2 +sources = %{thisapp}.tar.xz
build requires audit-devel + bison + flex + libacl-devel + libattr-devel libcap-devel libselinux-devel end
configure_options += \ - --sysconfdir=/etc \ --enable-shadowgrp \ --with-sha-crypt \ --with-selinux \ --without-libcrack \ --without-libpam \ - --disable-static + --disable-static \ + --with-group-name-max-length=32 + + # Generating man pages requires gnome-doc-utils + configure_options += --disable-man
prepare_cmds # Do not build these files: diff --git a/slang/patches/slang-2.1.4-makefile.patch b/slang/patches/slang-2.1.4-makefile.patch deleted file mode 100644 index 2e194a3..0000000 --- a/slang/patches/slang-2.1.4-makefile.patch +++ /dev/null @@ -1,111 +0,0 @@ -diff -up slang-2.1.4/autoconf/Makefile.in.makefile slang-2.1.4/autoconf/Makefile.in ---- slang-2.1.4/autoconf/Makefile.in.makefile 2008-09-06 06:29:27.000000000 +0200 -+++ slang-2.1.4/autoconf/Makefile.in 2008-09-08 13:18:42.000000000 +0200 -@@ -32,8 +32,7 @@ help: - @echo "make check : Build the library and run the regression tests" - static: makefiles - cd src; $(MAKE) static -- cd slsh; $(MAKE) all --elf: makefiles -+elf: makefiles static - cd src; $(MAKE) elf - cd slsh; $(MAKE) all - cd modules; $(MAKE) all -diff -up slang-2.1.4/modules/Makefile.in.makefile slang-2.1.4/modules/Makefile.in ---- slang-2.1.4/modules/Makefile.in.makefile 2008-08-25 01:57:48.000000000 +0200 -+++ slang-2.1.4/modules/Makefile.in 2008-09-08 13:18:42.000000000 +0200 -@@ -53,7 +53,7 @@ SOCKET_LIBS = @X_EXTRA_LIBS@ - MODULE_INSTALL_DIR = @libdir@/slang/v@slang_major_version@/modules - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ --INSTALL_MODULE = @INSTALL_MODULE@ -+INSTALL_MODULE = @INSTALL@ - MKINSDIR = ../autoconf/mkinsdir.sh - SLSH_DIR = $(prefix)/share/slsh - CMAPS_DIR = $(SLSH_DIR)/cmaps -@@ -67,7 +67,7 @@ DEST_SLSH_DIR = $(DESTDIR)$(SLSH_DIR) - DEST_CMAPSDIR = $(DESTDIR)$(CMAPS_DIR) - DEST_HELPDIR = $(DESTDIR)$(HELP_DIR) - #--------------------------------------------------------------------------- --RPATH = @RPATH@ -+RPATH = - - LIBS = $(LDFLAGS) $(RPATH) $(SLANG_LIB) $(DL_LIB) @M_LIB@ - #LIBS = $(RPATH) $(DL_LIB) @M_LIB@ -diff -up slang-2.1.4/slsh/Makefile.in.makefile slang-2.1.4/slsh/Makefile.in ---- slang-2.1.4/slsh/Makefile.in.makefile 2008-08-25 01:57:48.000000000 +0200 -+++ slang-2.1.4/slsh/Makefile.in 2008-09-08 13:21:35.000000000 +0200 -@@ -15,7 +15,7 @@ SLANG_SRCINC = -I@SRCDIR@ - SLANG_SRCLIB = -L@ELFDIR@ - #--------------------------------------------------------------------------- - OTHER_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@ --RPATH = @RPATH@ -+RPATH = - #---------------------------------------------------------------------------- - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -@@ -64,7 +64,7 @@ DEST_SLSH_DOC_DIR= $(DESTDIR)$(SLSH_DOC_ - #---------------------------------------------------------------------------- - @SET_MAKE@ - SHELL = /bin/sh --INST_LIBS = $(RPATH) $(SLANG_INST_LIB) $(DEST_LIB_DIR) -lslang $(READLINE_LIB) $(OTHER_LIBS) -+INST_LIBS = $(RPATH) $(DEST_LIB_DIR) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(OTHER_LIBS) - DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \ - -DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \ - -DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' -diff -up slang-2.1.4/src/Makefile.in.makefile slang-2.1.4/src/Makefile.in ---- slang-2.1.4/src/Makefile.in.makefile 2008-09-06 06:16:22.000000000 +0200 -+++ slang-2.1.4/src/Makefile.in 2008-09-08 13:18:42.000000000 +0200 -@@ -139,17 +139,21 @@ UPDATE_VERSION_SCRIPT = $(HOME)/bin/upda - # Rules - #--------------------------------------------------------------------------- - all: static elf --static: $(OBJDIR) $(CONFIG_H) $(OBJDIR_NORMAL_LIB) $(OTHERSTUFF) --elf: $(ELFDIR) $(CONFIG_H) $(ELFDIR_ELF_LIB) -+static: $(OBJDIR)/stamp $(CONFIG_H) $(OBJDIR_NORMAL_LIB) $(OTHERSTUFF) -+elf: $(ELFDIR)/stamp $(CONFIG_H) $(ELFDIR_ELF_LIB) - --$(OBJDIR_NORMAL_LIB): $(OBJDIR) $(CONFIG_H) $(OBJS) -+$(OBJS): $(OBJDIR)/stamp -+ -+$(ELFOBJS): $(ELFDIR)/stamp -+ -+$(OBJDIR_NORMAL_LIB): $(CONFIG_H) $(OBJS) - -$(RM) $(OBJDIR_NORMAL_LIB) - cd $(OBJDIR); $(AR_CR) $(NORMAL_LIB) $(OFILES) - $(RANLIB) $(OBJDIR_NORMAL_LIB) - @echo "" - @echo $(NORMAL_LIB) created in $(OBJDIR) - --$(ELFDIR_ELF_LIB): $(ELFDIR) $(CONFIG_H) $(ELFOBJS) $(VERSION_SCRIPT) -+$(ELFDIR_ELF_LIB): $(CONFIG_H) $(ELFOBJS) $(VERSION_SCRIPT) - -$(RM) $(ELFDIR_ELF_LIB) - cd $(ELFDIR); $(ELF_LINK_CMD) -o $(ELFLIB_BUILD_NAME) $(OFILES) $(LDFLAGS) $(ELF_DEP_LIBS) - if [ $(ELFLIB_MAJOR) != $(ELFLIB_BUILD_NAME) ]; then \ -@@ -160,10 +164,12 @@ $(ELFDIR_ELF_LIB): $(ELFDIR) $(CONFIG_H) - @echo $(ELFLIB_BUILD_NAME) created in $(ELFDIR). - @echo The link $(ELFLIB) to $(ELFLIB_BUILD_NAME) was also created. - @echo "" --$(OBJDIR) : -+$(OBJDIR)/stamp : - -$(MKDIR) $(OBJDIR) --$(ELFDIR) : -+ touch $(OBJDIR)/stamp -+$(ELFDIR)/stamp : - -$(MKDIR) $(ELFDIR) -+ touch $(ELFDIR)/stamp - $(CONFIG_H) : sysconf.h - -$(CP) sysconf.h $(CONFIG_H) - -@@ -194,9 +200,9 @@ install-elf-and-links: - -$(RM) $(DEST_LIBDIR)/$(ELFLIB) - -$(RM) $(DEST_LIBDIR)/$(ELFLIB_MAJOR) - @echo installing $(ELFLIB_BUILD_NAME) in $(DEST_LIBDIR) -- $(INSTALL_DATA) $(ELFDIR_ELF_LIB) $(DEST_LIBDIR)/ -+ $(INSTALL) $(ELFDIR_ELF_LIB) $(DEST_LIBDIR)/ - -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_BUILD_NAME) $(ELFLIB_MAJOR) -- -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_BUILD_NAME) $(ELFLIB) -+ -cd $(DEST_LIBDIR); $(LN) $(ELFLIB_MAJOR) $(ELFLIB) - @echo "" - @echo $(ELFLIB_BUILD_NAME) created in $(DEST_LIBDIR). - @echo The links $(ELFLIB) and $(ELFLIB_MAJOR) to $(ELFLIB_BUILD_NAME) were also created. diff --git a/slang/slang.nm b/slang/slang.nm index a572e24..8ec9eb4 100644 --- a/slang/slang.nm +++ b/slang/slang.nm @@ -4,8 +4,7 @@ ###############################################################################
name = slang -version = 2.1.4 -major_ver = 2.1 +version = 2.3.0 release = 1
groups = System/Libraries @@ -20,8 +19,7 @@ description language. end
-source_dl = ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v{major_ver}/ -sources = %{thisapp}.tar.bz2 +source_dl = http://www.jedsoft.org/releases/slang/
build requires @@ -29,9 +27,6 @@ build pcre-devel end
- configure_options += \ - --sysconfdir=/etc - PARALLELISMFLAGS = # off
install_cmds @@ -41,7 +36,6 @@ end
packages package %{name} - end
package %{name}-devel template DEVEL diff --git a/sqlite/sqlite.nm b/sqlite/sqlite.nm index ae3a5fa..9c0dfc9 100644 --- a/sqlite/sqlite.nm +++ b/sqlite/sqlite.nm @@ -4,9 +4,9 @@ ###############################################################################
name = sqlite -version = 3.7.10 -release = 2 -realver = 3071000 +version = 3.8.8.2 +release = 1 +realver = 3080802
groups = System/Databases url = http://www.sqlite.org/ @@ -23,13 +23,16 @@ description end
thisapp = %{name}-autoconf-%{realver} -source_dl = http://www.sqlite.org/ +source_dl = http://www.sqlite.org/2015/
build requires + autoconf + automake ncurses-devel readline-devel tcl + unzip end
CFLAGS += \ @@ -41,6 +44,10 @@ build -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \ -fno-strict-aliasing
+ prepare_cmds + autoconf + end + configure_options += \ --enable-threadsafe \ --enable-threads-override-locks \ diff --git a/xz/xz.nm b/xz/xz.nm index 8c6046d..d7b042a 100644 --- a/xz/xz.nm +++ b/xz/xz.nm @@ -4,7 +4,7 @@ ###############################################################################
name = xz -version = 5.0.6 +version = 5.2.0 release = 1
compat_version = 4.999.9beta
hooks/post-receive -- IPFire 3.x development tree