forked from mirrors/nixpkgs
elfutils: 0.165 -> 0.168
This commit is contained in:
parent
936bc23b41
commit
157b216852
|
@ -3,15 +3,13 @@
|
||||||
# TODO: Look at the hardcoded paths to kernel, modules etc.
|
# TODO: Look at the hardcoded paths to kernel, modules etc.
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "elfutils-${version}";
|
name = "elfutils-${version}";
|
||||||
version = "0.165";
|
version = "0.168";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2";
|
url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2";
|
||||||
sha256 = "0wp91hlh9n0ismikljf63558rzdwim8w1s271grsbaic35vr5z57";
|
sha256 = "0xn2fbgda1i703csfs35frvm7l068ybmay4ssrykqdx17f4hg3dq";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./glibc-2.21.patch ];
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
# We need bzip2 in NativeInputs because otherwise we can't unpack the src,
|
# We need bzip2 in NativeInputs because otherwise we can't unpack the src,
|
||||||
|
|
|
@ -1,164 +0,0 @@
|
||||||
From b9d70fb9fb0bd0bf84eb2302cba1691aea74c42e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Wielaard <mjw@redhat.com>
|
|
||||||
Date: Wed, 13 Jan 2016 17:16:48 +0100
|
|
||||||
Subject: [PATCH] libelf: Add ELF compression types and defines to libelf.h for
|
|
||||||
older glibc.
|
|
||||||
|
|
||||||
Older glibc elf.h might not define the new ELF compression defines and
|
|
||||||
types. If not just define them in libelf.h directly to make the libelf
|
|
||||||
headers work on older glibc systems.
|
|
||||||
|
|
||||||
Also include a testcase to check the libelf headers build against the
|
|
||||||
system elf.h.
|
|
||||||
|
|
||||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810885
|
|
||||||
|
|
||||||
Signed-off-by: Mark Wielaard <mjw@redhat.com>
|
|
||||||
---
|
|
||||||
libelf/ChangeLog | 5 +++++
|
|
||||||
libelf/libelf.h | 28 ++++++++++++++++++++++++++++
|
|
||||||
tests/ChangeLog | 8 ++++++++
|
|
||||||
tests/Makefile.am | 9 +++++++--
|
|
||||||
tests/system-elf-libelf-test.c | 35 +++++++++++++++++++++++++++++++++++
|
|
||||||
5 files changed, 83 insertions(+), 2 deletions(-)
|
|
||||||
create mode 100644 tests/system-elf-libelf-test.c
|
|
||||||
|
|
||||||
diff --git a/libelf/ChangeLog b/libelf/ChangeLog
|
|
||||||
index 3a1fe91..aabf6f6 100644
|
|
||||||
--- a/libelf/ChangeLog
|
|
||||||
+++ b/libelf/ChangeLog
|
|
||||||
@@ -1,3 +1,8 @@
|
|
||||||
+2016-01-13 Mark Wielaard <mjw@redhat.com>
|
|
||||||
+
|
|
||||||
+ * libelf.h: Check SHF_COMPRESSED is defined. If not define it and the
|
|
||||||
+ associated ELF compression types/defines.
|
|
||||||
+
|
|
||||||
2015-11-26 Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
* elf_compress.c (__libelf_decompress_elf): New function, extracted
|
|
||||||
diff --git a/libelf/libelf.h b/libelf/libelf.h
|
|
||||||
index 364e776..c0d6389 100644
|
|
||||||
--- a/libelf/libelf.h
|
|
||||||
+++ b/libelf/libelf.h
|
|
||||||
@@ -35,6 +35,34 @@
|
|
||||||
/* Get the ELF types. */
|
|
||||||
#include <elf.h>
|
|
||||||
|
|
||||||
+#ifndef SHF_COMPRESSED
|
|
||||||
+ /* Older glibc elf.h might not yet define the ELF compression types. */
|
|
||||||
+ #define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */
|
|
||||||
+
|
|
||||||
+ /* Section compression header. Used when SHF_COMPRESSED is set. */
|
|
||||||
+
|
|
||||||
+ typedef struct
|
|
||||||
+ {
|
|
||||||
+ Elf32_Word ch_type; /* Compression format. */
|
|
||||||
+ Elf32_Word ch_size; /* Uncompressed data size. */
|
|
||||||
+ Elf32_Word ch_addralign; /* Uncompressed data alignment. */
|
|
||||||
+ } Elf32_Chdr;
|
|
||||||
+
|
|
||||||
+ typedef struct
|
|
||||||
+ {
|
|
||||||
+ Elf64_Word ch_type; /* Compression format. */
|
|
||||||
+ Elf64_Word ch_reserved;
|
|
||||||
+ Elf64_Xword ch_size; /* Uncompressed data size. */
|
|
||||||
+ Elf64_Xword ch_addralign; /* Uncompressed data alignment. */
|
|
||||||
+ } Elf64_Chdr;
|
|
||||||
+
|
|
||||||
+ /* Legal values for ch_type (compression algorithm). */
|
|
||||||
+ #define ELFCOMPRESS_ZLIB 1 /* ZLIB/DEFLATE algorithm. */
|
|
||||||
+ #define ELFCOMPRESS_LOOS 0x60000000 /* Start of OS-specific. */
|
|
||||||
+ #define ELFCOMPRESS_HIOS 0x6fffffff /* End of OS-specific. */
|
|
||||||
+ #define ELFCOMPRESS_LOPROC 0x70000000 /* Start of processor-specific. */
|
|
||||||
+ #define ELFCOMPRESS_HIPROC 0x7fffffff /* End of processor-specific. */
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Known translation types. */
|
|
||||||
typedef enum
|
|
||||||
diff --git a/tests/ChangeLog b/tests/ChangeLog
|
|
||||||
index 366aea9..234ae56 100644
|
|
||||||
--- a/tests/ChangeLog
|
|
||||||
+++ b/tests/ChangeLog
|
|
||||||
@@ -1,3 +1,11 @@
|
|
||||||
+2016-01-13 Mark Wielaard <mjw@redhat.com>
|
|
||||||
+
|
|
||||||
+ * system-elf-libelf-test.c: New test.
|
|
||||||
+ * Makefile.am (TESTS): Add system-elf-libelf-test, if !STANDALONE.
|
|
||||||
+ (check_PROGRAMS): Likewise.
|
|
||||||
+ (system_elf_libelf_test_CPPFLAGS): New variable.
|
|
||||||
+ (system_elf_libelf_test_LDADD): Likewise.
|
|
||||||
+
|
|
||||||
2016-01-08 Mark Wielaard <mjw@redhat.com>
|
|
||||||
|
|
||||||
* elfputzdata.c (main): Fix parentheses in strncmp test.
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index d09a6d7..7b9e108 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -136,8 +136,8 @@ export ELFUTILS_DISABLE_DEMANGLE = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !STANDALONE
|
|
||||||
-check_PROGRAMS += msg_tst md5-sha1-test
|
|
||||||
-TESTS += msg_tst md5-sha1-test
|
|
||||||
+check_PROGRAMS += msg_tst md5-sha1-test system-elf-libelf-test
|
|
||||||
+TESTS += msg_tst md5-sha1-test system-elf-libelf-test
|
|
||||||
endif
|
|
||||||
|
|
||||||
if LZMA
|
|
||||||
@@ -473,6 +473,11 @@ elfgetzdata_LDADD = $(libelf)
|
|
||||||
elfputzdata_LDADD = $(libelf)
|
|
||||||
zstrptr_LDADD = $(libelf)
|
|
||||||
|
|
||||||
+# We want to test the libelf header against the system elf.h header.
|
|
||||||
+# Don't include any -I CPPFLAGS.
|
|
||||||
+system_elf_libelf_test_CPPFLAGS =
|
|
||||||
+system_elf_libelf_test_LDADD = $(libelf)
|
|
||||||
+
|
|
||||||
if GCOV
|
|
||||||
check: check-am coverage
|
|
||||||
.PHONY: coverage
|
|
||||||
diff --git a/tests/system-elf-libelf-test.c b/tests/system-elf-libelf-test.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..7dfe498
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/system-elf-libelf-test.c
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+/* Explicit test compiling with system elf.h header plus libelf header.
|
|
||||||
+
|
|
||||||
+ Copyright (C) 2016 Red Hat, Inc.
|
|
||||||
+ This file is part of elfutils.
|
|
||||||
+
|
|
||||||
+ This file is free software; you can redistribute it and/or modify
|
|
||||||
+ it under the terms of the GNU General Public License as published by
|
|
||||||
+ the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+ (at your option) any later version.
|
|
||||||
+
|
|
||||||
+ elfutils is distributed in the hope that it will be useful, but
|
|
||||||
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+ GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+ You should have received a copy of the GNU General Public License
|
|
||||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
+
|
|
||||||
+#include <elf.h>
|
|
||||||
+#include <stddef.h>
|
|
||||||
+#include "../libelf/libelf.h"
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
+{
|
|
||||||
+ /* Trivial test, this is really a compile test anyway. */
|
|
||||||
+ if (elf_version (EV_CURRENT) == EV_NONE)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ /* This will obviously fail. It is just to check that Elf32_Chdr and
|
|
||||||
+ elf32_getchdr are available (both at compile time and runtime). */
|
|
||||||
+ Elf32_Chdr *chdr = elf32_getchdr (NULL);
|
|
||||||
+
|
|
||||||
+ return chdr == NULL ? 0 : -1;
|
|
||||||
+}
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
Loading…
Reference in a new issue