diff options
author | Mark Wielaard <mjw@redhat.com> | 2016-01-13 17:16:48 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2016-01-14 14:26:22 +0100 |
commit | 344ca0775da729e1bfdd61bb88ba4c64befece07 (patch) | |
tree | 4982fb56b1ad079386a8672e84d698abb4de8433 /tests | |
parent | 9b4bce40709611875754cf4931eb91d394042122 (diff) | |
download | elfutils-344ca0775da729e1bfdd61bb88ba4c64befece07.tar.gz |
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>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ChangeLog | 8 | ||||
-rw-r--r-- | tests/Makefile.am | 9 | ||||
-rw-r--r-- | tests/system-elf-libelf-test.c | 35 |
3 files changed, 50 insertions, 2 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 366aea9c..234ae562 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 d09a6d7b..7b9e1083 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 00000000..7dfe4989 --- /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; +} |