summaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorUlf Hermann <[email protected]>2017-02-23 17:22:41 +0100
committerUlf Hermann <[email protected]>2017-04-27 15:56:33 +0000
commit121d248c1da7f2130a2edde6d158f116c89ed407 (patch)
treead7a348a88db648da6e2df366d89fcb7b7436a1c /backends
parentf10810fff6fda147f9c07fea0e1b33a7c4d79ad1 (diff)
Add gnulib modules to replace missing libc functionality
This enables us to build a fully featured elfutils package on systems with reduced C libraries, such as windows. All the modules are built into libgnu.a, which is then linked into all binaries if --enable-gnulib is given on the configure line. Change-Id: I743fd22172bc85d9f10dcc3dad8eb921f462b554 Reviewed-by: Christian Kandeler <[email protected]>
Diffstat (limited to 'backends')
-rw-r--r--backends/ChangeLog4
-rw-r--r--backends/Makefile.am9
2 files changed, 11 insertions, 2 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index c6e0e08b..594aa98b 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,7 @@
+2017-04-21 Ulf Hermann <[email protected]>
+
+ * Makefile.am: Link backends against libgnu.a if requested.
+
2017-04-20 Ulf Hermann <[email protected]>
* aarch64_initreg.c: Compile register initialization only on linux.
diff --git a/backends/Makefile.am b/backends/Makefile.am
index b553ec34..5dcb3e10 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -45,6 +45,11 @@ noinst_DATA = $(libebl_pic:_pic.a=.so)
libelf = ../libelf/libelf.so
libdw = ../libdw/libdw.so
+if USE_GNULIB
+libgnu = ../libgnu/libgnu.a
+else
+libgnu =
+endif
i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \
i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \
@@ -129,14 +134,14 @@ libebl_bpf_pic_a_SOURCES = $(bpf_SRCS)
am_libebl_bpf_pic_a_OBJECTS = $(bpf_SRCS:.c=.os)
-libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw)
+libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libgnu)
@rm -f $(@:.so=.map)
$(AM_V_at)echo 'ELFUTILS_$(PACKAGE_VERSION) { global: $*_init; local: *; };' \
> $(@:.so=.map)
$(AM_V_CCLD)$(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 -Wl,--as-needed $(libelf) $(libdw) $(libgnu)
@$(textrel_check)
libebl_i386.so: $(cpu_i386)