0.164-1 Update to elfutils-0.164 and drop old compat stuff.
This commit is contained in:
parent
a7b60d7ccf
commit
6d2dbb5040
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
/elfutils-0.161.tar.bz2
|
/elfutils-0.161.tar.bz2
|
||||||
/elfutils-0.162.tar.bz2
|
/elfutils-0.162.tar.bz2
|
||||||
/elfutils-0.163.tar.bz2
|
/elfutils-0.163.tar.bz2
|
||||||
|
/elfutils-0.164.tar.bz2
|
||||||
|
44
Makefile
44
Makefile
@ -1,44 +0,0 @@
|
|||||||
patches := $(patsubst %,elfutils-%.patch,portability)
|
|
||||||
|
|
||||||
.PHONY: patches
|
|
||||||
patches: $(patches)
|
|
||||||
|
|
||||||
branch-portability = portable
|
|
||||||
|
|
||||||
FORCE:;
|
|
||||||
|
|
||||||
elfutils.git ?= ${HOME}/src/elfutils/.git
|
|
||||||
git-heads := $(wildcard $(elfutils.git)/refs/heads/*)
|
|
||||||
ifneq (,$(git-heads))
|
|
||||||
git-dir = git --git-dir=$(elfutils.git)
|
|
||||||
git-archive = $(git-dir) archive
|
|
||||||
get-master = master=`$(git-dir) merge-base master $$branch` && \
|
|
||||||
master=`$(git-dir) describe --tags --always $$master`
|
|
||||||
else
|
|
||||||
git-heads = FORCE
|
|
||||||
git-archive = git archive --remote=git://git.fedorahosted.org/git/elfutils.git
|
|
||||||
get-master = master=master
|
|
||||||
endif
|
|
||||||
|
|
||||||
git-%/configure: Makefile $(git-heads)
|
|
||||||
@rm -rf $(@D)
|
|
||||||
$(git-archive) --prefix=$(@D)/ $(firstword $(branch-$*) $*) | tar xf -
|
|
||||||
cd $(@D) && autoreconf -i && rm -rf autom4te.cache
|
|
||||||
|
|
||||||
elfutils-%.patch: git-%/configure
|
|
||||||
branch=$(firstword $(branch-$*) $*); \
|
|
||||||
$(get-master) && \
|
|
||||||
(set -x; $(MAKE) git-$$master/configure) && \
|
|
||||||
(set -x; diff --exclude='.gitignore' -Nrpu git-$$master $(<D)) | \
|
|
||||||
filterdiff --remove-timestamps --strip=1 --addprefix=elfutils/ > $@.new
|
|
||||||
mv $@.new $@
|
|
||||||
|
|
||||||
elfutils-portable.spec: elfutils.spec
|
|
||||||
(echo '%define _with_compat 1'; sed 's/ check$$/& || :/' $<) > $@.new
|
|
||||||
mv -f $@.new $@
|
|
||||||
|
|
||||||
rpmbuild-dirs = $(foreach what,source spec srcrpm,--define '_$(what)dir .')
|
|
||||||
|
|
||||||
.PHONY: portable-srpm
|
|
||||||
portable-srpm: elfutils-portable.spec $(patches) sources
|
|
||||||
rpmbuild-md5 $(rpmbuild-dirs) -bs $<
|
|
@ -1,166 +0,0 @@
|
|||||||
commit 65a818baa4bcae96c1e9516420fcd87a2db3c863
|
|
||||||
Author: Mark Wielaard <mjw@redhat.com>
|
|
||||||
Date: Tue Aug 4 12:20:20 2015 +0200
|
|
||||||
|
|
||||||
spec: Provide default-yama-scope.
|
|
||||||
|
|
||||||
When yama is enabled in the kernel it might be used to filter any user
|
|
||||||
space access which requires PTRACE_MODE_ATTACH like ptrace attach, access
|
|
||||||
to /proc/PID/{mem,personality,stack,syscall}, and the syscalls
|
|
||||||
process_vm_readv and process_vm_writev which are used for interprocess
|
|
||||||
services, communication and introspection (like synchronisation, signaling,
|
|
||||||
debugging, tracing and profiling) of processes.
|
|
||||||
|
|
||||||
These are precisely the things that libdw dwfl and ebl backends rely on.
|
|
||||||
So make sure they don't mysteriously fail in such cases by providing the
|
|
||||||
default yama scope sysctl value.
|
|
||||||
|
|
||||||
This is implemented as a separate subpackage that just provides this
|
|
||||||
functionality so other packages that don't directly rely on elfutils-libs
|
|
||||||
can also just Require: default-yama-scope to function properly.
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1209492#c69
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/config/10-default-yama-scope.conf b/config/10-default-yama-scope.conf
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..ba78ebd
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/config/10-default-yama-scope.conf
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+# When yama is enabled in the kernel it might be used to filter any user
|
|
||||||
+# space access which requires PTRACE_MODE_ATTACH like ptrace attach, access
|
|
||||||
+# to /proc/PID/{mem,personality,stack,syscall}, and the syscalls
|
|
||||||
+# process_vm_readv and process_vm_writev which are used for interprocess
|
|
||||||
+# services, communication and introspection (like synchronisation, signaling,
|
|
||||||
+# debugging, tracing and profiling) of processes.
|
|
||||||
+#
|
|
||||||
+# Usage of ptrace attach is restricted by normal user permissions. Normal
|
|
||||||
+# unprivileged processes cannot interact through ptrace with processes
|
|
||||||
+# that they cannot send signals to or processes that are running set-uid
|
|
||||||
+# or set-gid.
|
|
||||||
+#
|
|
||||||
+# yama ptrace scope can be used to reduce these permissions even more.
|
|
||||||
+# This should normally not be done because it will break various programs
|
|
||||||
+# relying on the default ptrace security restrictions. But can be used
|
|
||||||
+# if you don't have any other way to separate processes in their own
|
|
||||||
+# domains. A different way to restrict ptrace is to set the selinux
|
|
||||||
+# deny_ptrace boolean. Both mechanisms will break some programs relying
|
|
||||||
+# on the ptrace system call and might force users to elevate their
|
|
||||||
+# priviliges to root to do their work.
|
|
||||||
+#
|
|
||||||
+# For more information see Documentation/security/Yama.txt in the kernel
|
|
||||||
+# sources. Which also describes the defaults when CONFIG_SECURITY_YAMA
|
|
||||||
+# is enabled in a kernel build (currently 1 for ptrace_scope).
|
|
||||||
+#
|
|
||||||
+# This runtime kernel parameter can be set to the following options:
|
|
||||||
+# (Note that setting this to anything except zero will break programs!)
|
|
||||||
+#
|
|
||||||
+# 0 - Default attach security permissions.
|
|
||||||
+# 1 - Restricted attach. Only child processes plus normal permissions.
|
|
||||||
+# 2 - Admin-only attach. Only executables with CAP_SYS_PTRACE.
|
|
||||||
+# 3 - No attach. No process may call ptrace at all. Irrevocable.
|
|
||||||
+#
|
|
||||||
+kernel.yama.ptrace_scope = 0
|
|
||||||
+
|
|
||||||
diff --git a/config/ChangeLog b/config/ChangeLog
|
|
||||||
index 00f3ddc..31eeca7 100644
|
|
||||||
--- a/config/ChangeLog
|
|
||||||
+++ b/config/ChangeLog
|
|
||||||
@@ -1,3 +1,10 @@
|
|
||||||
+2015-08-04 Mark Wielaard <mjw@redhat.com>
|
|
||||||
+
|
|
||||||
+ * 10-default-yama-scope.conf: New file.
|
|
||||||
+ * Makefile.am (EXTRA_DIST): Add 10-default-yama-scope.conf.
|
|
||||||
+ * elfutils.spec.in (Requires): default-yama-scope.
|
|
||||||
+ (default-yama-scope): New package.
|
|
||||||
+
|
|
||||||
2015-06-19 Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
* elfutils.spec.in: Update for 0.163.
|
|
||||||
diff --git a/config/Makefile.am b/config/Makefile.am
|
|
||||||
index 6e61b77..23f7b65 100644
|
|
||||||
--- a/config/Makefile.am
|
|
||||||
+++ b/config/Makefile.am
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
|
||||||
## Configure input file for elfutils.
|
|
||||||
##
|
|
||||||
-## Copyright (C) 2004, 2005, 2008, 2009, 2011 Red Hat, Inc.
|
|
||||||
+## Copyright (C) 2004, 2005, 2008, 2009, 2011, 2015 Red Hat, Inc.
|
|
||||||
## This file is part of elfutils.
|
|
||||||
##
|
|
||||||
## This file is free software; you can redistribute it and/or modify
|
|
||||||
@@ -28,7 +28,7 @@
|
|
||||||
## the GNU Lesser General Public License along with this program. If
|
|
||||||
## not, see <http://www.gnu.org/licenses/>.
|
|
||||||
##
|
|
||||||
-EXTRA_DIST = elfutils.spec.in known-dwarf.awk
|
|
||||||
+EXTRA_DIST = elfutils.spec.in known-dwarf.awk 10-default-yama-scope.conf
|
|
||||||
|
|
||||||
if MAINTAINER_MODE
|
|
||||||
$(srcdir)/elfutils.spec.in: $(top_srcdir)/NEWS
|
|
||||||
diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in
|
|
||||||
index 5407f1a..e5f6e29 100644
|
|
||||||
--- a/config/elfutils.spec.in
|
|
||||||
+++ b/config/elfutils.spec.in
|
|
||||||
@@ -10,6 +10,7 @@ Obsoletes: libelf libelf-devel
|
|
||||||
Requires: elfutils-libelf = %{version}-%{release}
|
|
||||||
Requires: glibc >= 2.7
|
|
||||||
Requires: libstdc++
|
|
||||||
+Requires: default-yama-scope
|
|
||||||
|
|
||||||
# ExcludeArch: xxx
|
|
||||||
|
|
||||||
@@ -97,6 +98,22 @@ Conflicts: libelf-devel
|
|
||||||
The elfutils-libelf-static package contains the static archive
|
|
||||||
for libelf.
|
|
||||||
|
|
||||||
+%package default-yama-scope
|
|
||||||
+Summary: Default yama attach scope sysctl setting
|
|
||||||
+Group: Development/Tools
|
|
||||||
+License: GPLv2+ or LGPLv3+
|
|
||||||
+Provides: default-yama-scope
|
|
||||||
+BuildArch: noarch
|
|
||||||
+
|
|
||||||
+%description default-yama-scope
|
|
||||||
+Yama sysctl setting to enable default attach scope settings
|
|
||||||
+enabling programs to use ptrace attach, access to
|
|
||||||
+/proc/PID/{mem,personality,stack,syscall}, and the syscalls
|
|
||||||
+process_vm_readv and process_vm_writev which are used for
|
|
||||||
+interprocess services, communication and introspection
|
|
||||||
+(like synchronisation, signaling, debugging, tracing and
|
|
||||||
+profiling) of processes.
|
|
||||||
+
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
@@ -121,6 +138,8 @@ chmod +x ${RPM_BUILD_ROOT}%{_prefix}/%{_lib}/elfutils/lib*.so*
|
|
||||||
rm -f .%{_libdir}/libasm.a
|
|
||||||
}
|
|
||||||
|
|
||||||
+install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir}/10-default-yama-scope.conf
|
|
||||||
+
|
|
||||||
%check
|
|
||||||
make check
|
|
||||||
|
|
||||||
@@ -135,6 +154,9 @@ rm -rf ${RPM_BUILD_ROOT}
|
|
||||||
|
|
||||||
%postun libelf -p /sbin/ldconfig
|
|
||||||
|
|
||||||
+%post default-yama-scope
|
|
||||||
+%sysctl_apply 10-default-yama-scope.conf
|
|
||||||
+
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc COPYING COPYING-GPLV2 COPYING-LGPLV3 README TODO CONTRIBUTING
|
|
||||||
@@ -197,6 +219,9 @@ rm -rf ${RPM_BUILD_ROOT}
|
|
||||||
%files libelf-devel-static
|
|
||||||
%{_libdir}/libelf.a
|
|
||||||
|
|
||||||
+%files default-yama-scope
|
|
||||||
+%config(noreplace) %{_sysctldir}/10-default-yama-scope.conf
|
|
||||||
+
|
|
||||||
%changelog
|
|
||||||
* Fri Jun 19 2015 Mark Wielaard <mark@gmail.com> 0.163-1
|
|
||||||
- Bug fixes only, no new features.
|
|
@ -1,49 +0,0 @@
|
|||||||
commit b00a4fa78779ff0f304fa6cb34d49622679c86d4
|
|
||||||
Author: Mark Wielaard <mjw@redhat.com>
|
|
||||||
Date: Thu Sep 3 10:50:58 2015 +0200
|
|
||||||
|
|
||||||
readelf: handle_core_item large right shift triggers undefined behaviour.
|
|
||||||
|
|
||||||
The problem is this:
|
|
||||||
|
|
||||||
int n = ffs (w);
|
|
||||||
w >>= n;
|
|
||||||
|
|
||||||
The intent is to shift away up to (and including) the first least
|
|
||||||
significant bit in w. But w is an unsigned int, so 32 bits. And the
|
|
||||||
least significant bit could be bit 32 (ffs counts from 1). Unfortunately
|
|
||||||
a right shift equal to (or larger than) the length in bits of the left
|
|
||||||
hand operand is undefined behaviour. We expect w to be zero afterwards.
|
|
||||||
Which would terminate the while loop in the function. But since it is
|
|
||||||
undefined behaviour anything can happen. In this case, what will actually
|
|
||||||
happen is that w is unchanged, causing an infinite loop...
|
|
||||||
|
|
||||||
gcc -fsanitize=undefined will catch and warn about this when w = 0x80000000
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=1259259
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/src/readelf.c b/src/readelf.c
|
|
||||||
index d3c2b6b..aab8b5c 100644
|
|
||||||
--- a/src/readelf.c
|
|
||||||
+++ b/src/readelf.c
|
|
||||||
@@ -8474,8 +8474,16 @@ handle_core_item (Elf *core, const Ebl_Core_Item *item, const void *desc,
|
|
||||||
unsigned int w = negate ? ~*i : *i;
|
|
||||||
while (w != 0)
|
|
||||||
{
|
|
||||||
- int n = ffs (w);
|
|
||||||
- w >>= n;
|
|
||||||
+ /* Note that a right shift equal to (or greater than)
|
|
||||||
+ the number of bits of w is undefined behaviour. In
|
|
||||||
+ particular when the least significant bit is bit 32
|
|
||||||
+ (w = 0x8000000) then w >>= n is undefined. So
|
|
||||||
+ explicitly handle that case separately. */
|
|
||||||
+ unsigned int n = ffs (w);
|
|
||||||
+ if (n < sizeof (w) * 8)
|
|
||||||
+ w >>= n;
|
|
||||||
+ else
|
|
||||||
+ w = 0;
|
|
||||||
bit += n;
|
|
||||||
|
|
||||||
if (lastbit != 0 && lastbit + 1 == bit)
|
|
@ -1,91 +0,0 @@
|
|||||||
commit f9fc50c3eced243c0648fb0fbfe2c9877c25e1e4
|
|
||||||
Author: Mark Wielaard <mjw@redhat.com>
|
|
||||||
Date: Wed Jul 29 17:51:27 2015 +0200
|
|
||||||
|
|
||||||
unstrip: Handle debuginfo files with missing SHF_INFO_LINK section flags.
|
|
||||||
|
|
||||||
With GCC 5 there might be a .rela.plt section with SHF_INFO_LINK set.
|
|
||||||
Buggy binutils objdump might strip it from the section in the debug file.
|
|
||||||
Ignore such differences for relocation sections and put the flag back
|
|
||||||
if necessary.
|
|
||||||
|
|
||||||
Also improve the error message a little by only discarding the already
|
|
||||||
matched sections if there is an prelink undo section. Otherwise we will
|
|
||||||
report all sections as not matching if the file wasn't prelinked instead
|
|
||||||
of just the non-matching sections.
|
|
||||||
|
|
||||||
New testfiles generated by gcc5 and binutils objdump added.
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/src/unstrip.c b/src/unstrip.c
|
|
||||||
index 4a8e5fa..8833094 100644
|
|
||||||
--- a/src/unstrip.c
|
|
||||||
+++ b/src/unstrip.c
|
|
||||||
@@ -867,12 +867,28 @@ compare_symbols_output (const void *a, const void *b)
|
|
||||||
|
|
||||||
#undef CMP
|
|
||||||
|
|
||||||
+/* Return true if the flags of the sections match, ignoring the SHF_INFO_LINK
|
|
||||||
+ flag if the section contains relocation information. */
|
|
||||||
+static bool
|
|
||||||
+sections_flags_match (Elf64_Xword sh_flags1, Elf64_Xword sh_flags2,
|
|
||||||
+ Elf64_Word sh_type)
|
|
||||||
+{
|
|
||||||
+ if (sh_type == SHT_REL || sh_type == SHT_RELA)
|
|
||||||
+ {
|
|
||||||
+ sh_flags1 &= ~SHF_INFO_LINK;
|
|
||||||
+ sh_flags2 &= ~SHF_INFO_LINK;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return sh_flags1 == sh_flags2;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Return true iff the flags, size, and name match. */
|
|
||||||
static bool
|
|
||||||
sections_match (const struct section *sections, size_t i,
|
|
||||||
const GElf_Shdr *shdr, const char *name)
|
|
||||||
{
|
|
||||||
- return (sections[i].shdr.sh_flags == shdr->sh_flags
|
|
||||||
+ return (sections_flags_match (sections[i].shdr.sh_flags, shdr->sh_flags,
|
|
||||||
+ sections[i].shdr.sh_type)
|
|
||||||
&& (sections[i].shdr.sh_size == shdr->sh_size
|
|
||||||
|| (sections[i].shdr.sh_size < shdr->sh_size
|
|
||||||
&& section_can_shrink (§ions[i].shdr)))
|
|
||||||
@@ -930,10 +946,6 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
|
|
||||||
struct section *sections,
|
|
||||||
size_t nalloc, size_t nsections)
|
|
||||||
{
|
|
||||||
- /* Clear assignments that might have been bogus. */
|
|
||||||
- for (size_t i = 0; i < nalloc; ++i)
|
|
||||||
- sections[i].outscn = NULL;
|
|
||||||
-
|
|
||||||
Elf_Scn *undo = NULL;
|
|
||||||
for (size_t i = nalloc; i < nsections; ++i)
|
|
||||||
{
|
|
||||||
@@ -952,6 +964,10 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
|
|
||||||
size_t undo_nalloc = 0;
|
|
||||||
if (undo != NULL)
|
|
||||||
{
|
|
||||||
+ /* Clear assignments that might have been bogus. */
|
|
||||||
+ for (size_t i = 0; i < nalloc; ++i)
|
|
||||||
+ sections[i].outscn = NULL;
|
|
||||||
+
|
|
||||||
Elf_Data *undodata = elf_rawdata (undo, NULL);
|
|
||||||
ELF_CHECK (undodata != NULL,
|
|
||||||
_("cannot read '.gnu.prelink_undo' section: %s"));
|
|
||||||
@@ -1500,6 +1516,14 @@ more sections in stripped file than debug file -- arguments reversed?"));
|
|
||||||
shdr_mem.sh_size = sec->shdr.sh_size;
|
|
||||||
shdr_mem.sh_info = sec->shdr.sh_info;
|
|
||||||
shdr_mem.sh_link = sec->shdr.sh_link;
|
|
||||||
+
|
|
||||||
+ /* Buggy binutils objdump might have stripped the SHF_INFO_LINK
|
|
||||||
+ put it back if necessary. */
|
|
||||||
+ if ((sec->shdr.sh_type == SHT_REL || sec->shdr.sh_type == SHT_RELA)
|
|
||||||
+ && sec->shdr.sh_flags != shdr_mem.sh_flags
|
|
||||||
+ && (sec->shdr.sh_flags & SHF_INFO_LINK) != 0)
|
|
||||||
+ shdr_mem.sh_flags |= SHF_INFO_LINK;
|
|
||||||
+
|
|
||||||
if (sec->shdr.sh_link != SHN_UNDEF)
|
|
||||||
shdr_mem.sh_link = ndx_section[sec->shdr.sh_link - 1];
|
|
||||||
if (shdr_mem.sh_flags & SHF_INFO_LINK)
|
|
File diff suppressed because it is too large
Load Diff
106
elfutils.spec
106
elfutils.spec
@ -1,88 +1,38 @@
|
|||||||
Name: elfutils
|
Name: elfutils
|
||||||
Summary: A collection of utilities and DSOs to handle compiled objects
|
Summary: A collection of utilities and DSOs to handle compiled objects
|
||||||
Version: 0.163
|
Version: 0.164
|
||||||
%global baserelease 4
|
%global baserelease 1
|
||||||
URL: https://fedorahosted.org/elfutils/
|
URL: https://fedorahosted.org/elfutils/
|
||||||
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
%global source_url http://fedorahosted.org/releases/e/l/elfutils/%{version}/
|
||||||
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
License: GPLv3+ and (GPLv2+ or LGPLv3+)
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
|
|
||||||
%if %{?_with_compat:1}%{!?_with_compat:0}
|
Release: %{baserelease}%{?dist}
|
||||||
%global compat 1
|
|
||||||
%else
|
|
||||||
%global compat 0
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%global portability %{compat}
|
|
||||||
%global scanf_has_m !%{compat}
|
|
||||||
%global separate_devel_static 1
|
|
||||||
%global use_zlib 0
|
|
||||||
%global use_xz 0
|
|
||||||
%global provide_yama_scope 0
|
%global provide_yama_scope 0
|
||||||
|
|
||||||
%if 0%{?rhel}
|
|
||||||
%global portability (%rhel < 6)
|
|
||||||
%global scanf_has_m (%rhel >= 6)
|
|
||||||
%global separate_devel_static (%rhel >= 6)
|
|
||||||
%global use_zlib (%rhel >= 5)
|
|
||||||
%global use_xz (%rhel >= 5)
|
|
||||||
%endif
|
|
||||||
%if 0%{?fedora}
|
%if 0%{?fedora}
|
||||||
%global portability (%fedora < 9)
|
|
||||||
%global scanf_has_m (%fedora >= 8)
|
|
||||||
%global separate_devel_static (%fedora >= 7)
|
|
||||||
%global use_zlib (%fedora >= 5)
|
|
||||||
%global use_xz (%fedora >= 10)
|
|
||||||
%global provide_yama_scope (%fedora >= 22)
|
%global provide_yama_scope (%fedora >= 22)
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{compat} || %{!?rhel:6}%{?rhel} < 6
|
|
||||||
%global nocheck true
|
|
||||||
%else
|
|
||||||
%global nocheck false
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%global depsuffix %{?_isa}%{!?_isa:-%{_arch}}
|
%global depsuffix %{?_isa}%{!?_isa:-%{_arch}}
|
||||||
|
|
||||||
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
Source: %{?source_url}%{name}-%{version}.tar.bz2
|
||||||
|
|
||||||
Patch1: %{?source_url}elfutils-portability-%{version}.patch
|
# Patches
|
||||||
|
|
||||||
Patch2: elfutils-0.163-unstrip-shf_info_link.patch
|
|
||||||
Patch3: elfutils-0.163-default-yama-conf.patch
|
|
||||||
Patch4: elfutils-0.163-readelf-n-undefined-shift.patch
|
|
||||||
|
|
||||||
%if !%{compat}
|
|
||||||
Release: %{baserelease}%{?dist}
|
|
||||||
%else
|
|
||||||
Release: 0.%{baserelease}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
|
|
||||||
%if %{!?rhel:6}%{?rhel} < 6 || %{!?fedora:9}%{?fedora} < 10
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
||||||
%endif
|
|
||||||
|
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: bison >= 1.875
|
BuildRequires: bison >= 1.875
|
||||||
BuildRequires: flex >= 2.5.4a
|
BuildRequires: flex >= 2.5.4a
|
||||||
BuildRequires: bzip2
|
BuildRequires: bzip2
|
||||||
%if !%{compat}
|
BuildRequires: gcc >= 4.4
|
||||||
BuildRequires: gcc >= 3.4
|
|
||||||
%else
|
|
||||||
BuildRequires: gcc >= 3.2
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{use_zlib}
|
|
||||||
BuildRequires: zlib-devel >= 1.2.2.3
|
BuildRequires: zlib-devel >= 1.2.2.3
|
||||||
BuildRequires: bzip2-devel
|
BuildRequires: bzip2-devel
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{use_xz}
|
|
||||||
BuildRequires: xz-devel
|
BuildRequires: xz-devel
|
||||||
%endif
|
|
||||||
|
|
||||||
%global _gnu %{nil}
|
%global _gnu %{nil}
|
||||||
%global _program_prefix eu-
|
%global _program_prefix eu-
|
||||||
@ -122,9 +72,6 @@ Provides: elfutils-devel%{depsuffix} = %{version}-%{release}
|
|||||||
%endif
|
%endif
|
||||||
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libs%{depsuffix} = %{version}-%{release}
|
||||||
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
||||||
%if !%{separate_devel_static}
|
|
||||||
Requires: elfutils-devel-static%{depsuffix} = %{version}-%{release}
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
The elfutils-devel package contains the libraries to create
|
The elfutils-devel package contains the libraries to create
|
||||||
@ -170,9 +117,6 @@ License: GPLv2+ or LGPLv3+
|
|||||||
Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
Provides: elfutils-libelf-devel%{depsuffix} = %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
Requires: elfutils-libelf%{depsuffix} = %{version}-%{release}
|
||||||
%if !%{separate_devel_static}
|
|
||||||
Requires: elfutils-libelf-devel-static%{depsuffix} = %{version}-%{release}
|
|
||||||
%endif
|
|
||||||
Obsoletes: libelf-devel <= 0.8.2-2
|
Obsoletes: libelf-devel <= 0.8.2-2
|
||||||
|
|
||||||
%description libelf-devel
|
%description libelf-devel
|
||||||
@ -217,26 +161,7 @@ profiling) of processes.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
: 'compat=%compat'
|
# Apply patches
|
||||||
: 'portability=%portability'
|
|
||||||
: 'separate_devel_static=%separate_devel_static'
|
|
||||||
: 'scanf_has_m=%scanf_has_m'
|
|
||||||
|
|
||||||
%if %{portability}
|
|
||||||
%patch1 -p1 -b .portability
|
|
||||||
sleep 1
|
|
||||||
find . \( -name Makefile.in -o -name aclocal.m4 \) -print | xargs touch
|
|
||||||
sleep 1
|
|
||||||
find . \( -name configure -o -name config.h.in \) -print | xargs touch
|
|
||||||
%else
|
|
||||||
%if !%{scanf_has_m}
|
|
||||||
sed -i.scanf-m -e 's/%m/%a/g' src/addr2line.c tests/line2addr.c
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%patch2 -p1 -b .shf_info_link
|
|
||||||
%patch3 -p1 -b .yama_scope
|
|
||||||
%patch4 -p1 -b .right_shift
|
|
||||||
|
|
||||||
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
||||||
|
|
||||||
@ -247,21 +172,10 @@ find . -name \*.sh ! -perm -0100 -print | xargs chmod +x
|
|||||||
# But add -Wformat explicitly for use with -Werror=format-security which
|
# But add -Wformat explicitly for use with -Werror=format-security which
|
||||||
# doesn't work without -Wformat (enabled by -Wall).
|
# doesn't work without -Wformat (enabled by -Wall).
|
||||||
RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}"
|
RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-Wall/}"
|
||||||
%if !%{compat}
|
|
||||||
RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
|
RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -Wformat"
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{compat}
|
|
||||||
# Some older glibc headers can run afoul of -Werror all by themselves.
|
|
||||||
# Disabling the fancy inlines avoids those problems.
|
|
||||||
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D__NO_INLINE__"
|
|
||||||
COMPAT_CONFIG_FLAGS="--disable-werror"
|
|
||||||
%else
|
|
||||||
COMPAT_CONFIG_FLAGS=""
|
|
||||||
%endif
|
|
||||||
|
|
||||||
trap 'cat config.log' EXIT
|
trap 'cat config.log' EXIT
|
||||||
%configure $COMPAT_CONFIG_FLAGS CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
%configure CFLAGS="$RPM_OPT_FLAGS -fexceptions"
|
||||||
trap '' EXIT
|
trap '' EXIT
|
||||||
make -s %{?_smp_mflags}
|
make -s %{?_smp_mflags}
|
||||||
|
|
||||||
@ -284,7 +198,7 @@ install -Dm0644 config/10-default-yama-scope.conf ${RPM_BUILD_ROOT}%{_sysctldir}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make -s %{?_smp_mflags} check || (cat tests/test-suite.log; %{nocheck})
|
make -s %{?_smp_mflags} check || (cat tests/test-suite.log; false)
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf ${RPM_BUILD_ROOT}
|
rm -rf ${RPM_BUILD_ROOT}
|
||||||
@ -381,6 +295,10 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 16 2015 Mark Wielaard <mjw@redhat.com> - 0.164-1
|
||||||
|
- Update to elfutils-0.164
|
||||||
|
- Drop old compat stuff
|
||||||
|
|
||||||
* Mon Sep 07 2015 Mark Wielaard <mjw@redhat.com> - 0.163-4
|
* Mon Sep 07 2015 Mark Wielaard <mjw@redhat.com> - 0.163-4
|
||||||
- Add elfutils-0.163-readelf-n-undefined-shift.patch (#1259259)
|
- Add elfutils-0.163-readelf-n-undefined-shift.patch (#1259259)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user