configure: Add new --enable-install-elfh option.

We explicitly test (with system-elf-libelf) that our include headers
work with the system elf.h header. But it might be helpful to install
the elf.h file for a private install. Our elf.h header really is just
a copy of the latest glibc elf.h. But it might be newer and include
more constants than the system installed elf.h.

Add a new configure option --enable-install-elfh to install elf.h.
But warn when it is enabled for the default /usr or /usr/local prefix
because it might clash with the glibc/system elf.h header in that case.

Signed-off-by: Mark Wielaard <mark@klomp.org>
This commit is contained in:
Mark Wielaard
2019-01-18 14:18:22 +01:00
parent fe7d3f3635
commit b63007ed58
6 changed files with 41 additions and 4 deletions
+4
View File
@@ -1,3 +1,7 @@
2019-01-18 Mark Wielaard <mark@klomp.org>
* configure.ac: Add new --enable-install-elfh.
2018-07-04 Ross Burton <ross.burton@intel.com>
* configure.ac: Check for gawk.
+12
View File
@@ -323,6 +323,11 @@ if test "$use_valgrind" = yes; then
fi
AM_CONDITIONAL(USE_VALGRIND, test "$use_valgrind" = yes)
AC_ARG_ENABLE([install-elfh],
AS_HELP_STRING([--enable-install-elfh],[install elf.h in include dir]),
[install_elfh=$enableval], [install_elfh=no])
AM_CONDITIONAL(INSTALL_ELFH, test "$install_elfh" = yes)
AM_CONDITIONAL(BUILD_STATIC, [dnl
test "$use_gprof" = yes -o "$use_gcov" = yes])
@@ -658,6 +663,7 @@ AC_MSG_NOTICE([
NOT RECOMMENDED FEATURES (should all be no)
Experimental thread safety : ${use_locks}
install elf.h : ${install_elfh}
OTHER FEATURES
Deterministic archives by default : ${default_ar_deterministic}
@@ -673,3 +679,9 @@ AC_MSG_NOTICE([
use rpath in tests : ${tests_use_rpath}
test biarch : ${utrace_cv_cc_biarch}
])
if test "$install_elfh" = yes; then
if test "${prefix}" = "/usr/local" -o "${prefix}" = "/usr"; then
AC_MSG_WARN([installing elf.h in ${includedir} might conflict with glibc/system elf.h])
fi
fi
+5
View File
@@ -1,3 +1,8 @@
2019-01-18 Mark Wielaard <mark@klomp.org>
* Makefile.am (INSTALL_ELFH): Add elf.h to include_HEADERS when
defined, otherwise (the default) add elf.h to noinst_HEADERS.
2019-01-16 Mark Wielaard <mark@klomp.org>
* note_xlate.h (elf_cvt_note): Check n_namesz and n_descsz don't
+10 -3
View File
@@ -39,6 +39,16 @@ noinst_LIBRARIES = libelf_pic.a
noinst_PROGRAMS = $(noinst_LIBRARIES:_pic.a=.so)
include_HEADERS = libelf.h gelf.h nlist.h
noinst_HEADERS = abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h \
chdr_xlate.h
if INSTALL_ELFH
include_HEADERS += elf.h
else
noinst_HEADERS += elf.h
endif
pkginclude_HEADERS = elf-knowledge.h
libelf_a_SOURCES = elf_version.c elf_hash.c elf_error.c elf_fill.c \
@@ -123,9 +133,6 @@ uninstall: uninstall-am
rm -f $(DESTDIR)$(libdir)/libelf.so.$(VERSION)
rm -f $(DESTDIR)$(libdir)/libelf.so
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 \
chdr_xlate.h
EXTRA_DIST = libelf.map
CLEANFILES += $(am_libelf_pic_a_OBJECTS) libelf.so.$(VERSION)
+5
View File
@@ -1,3 +1,8 @@
2019-01-24 Mark Wielaard <mark@klomp.org>
* Makefile.am (system_elf_libelf_test_CPPFLAGS): Guard by
!INSTALL_ELFH.
2019-01-31 Mark Wielaard <mark@klomp.org>
* backtrace-child.c (stdarg): Remove assert (errno == 0).
+5 -1
View File
@@ -595,8 +595,12 @@ elfcopy_LDADD = $(libelf)
addsections_LDADD = $(libelf)
# We want to test the libelf header against the system elf.h header.
# Don't include any -I CPPFLAGS.
# Don't include any -I CPPFLAGS. Except when we install our own elf.h.
if !INSTALL_ELFH
system_elf_libelf_test_CPPFLAGS =
else
system_elf_libelf_test_CPPFLAGS = -I$(top_srcdir)/libelf
endif
system_elf_libelf_test_LDADD = $(libelf)
# A lock file used to make sure only one test dumps core at a time