| Allow the usage of an external implementation of the argp functions |
| |
| uClibc lack the argp family of functions that glibc has. Therefore, we |
| add a check in the configure script to see if argp_parse is available |
| in the C library. If not, we look if it is available in the additional |
| 'argp' library. If so, we link against that library. If not, we error |
| out. |
| |
| This allows to build elfutils against uClibc with an external argp |
| library. |
| |
| Based on the former patch by Thomas Petazzoni. |
| |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> |
| |
| diff -rup a/configure.ac b/configure.ac |
| --- a/configure.ac 2015-01-06 11:30:02.170052875 +0000 |
| +++ b/configure.ac 2015-01-06 11:31:10.122219826 +0000 |
| @@ -253,6 +253,13 @@ AC_SUBST([LIBEBL_SUBDIR]) |
| AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR") |
| AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.]) |
| |
| +AC_CHECK_FUNC([argp_parse]) |
| +if test "$ac_cv_func_argp_parse" != yes; then |
| + AC_CHECK_LIB([argp],[argp_parse],ARGP_LIBS=-largp, |
| + AC_MSG_ERROR([No argp_parse function available.])) |
| +fi |
| +AC_SUBST(ARGP_LIBS) |
| + |
| dnl Test for zlib and bzlib, gives ZLIB/BZLIB .am |
| dnl conditional and config.h USE_ZLIB/USE_BZLIB #define. |
| save_LIBS="$LIBS" |
| diff -rup a/libdw/Makefile.am b/libdw/Makefile.am |
| --- a/libdw/Makefile.am 2014-12-19 20:43:11.000000000 +0000 |
| +++ b/libdw/Makefile.am 2015-01-06 11:32:21.075438524 +0000 |
| @@ -112,7 +112,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l |
| -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \ |
| -Wl,--version-script,$<,--no-undefined \ |
| -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\ |
| - -ldl $(zip_LIBS) |
| + -ldl $(zip_LIBS) $(ARGP_LIBS) |
| @$(textrel_check) |
| ln -fs $@ $@.$(VERSION) |
| |
| diff -rup a/src/Makefile.am b/src/Makefile.am |
| --- a/src/Makefile.am 2015-01-06 11:30:02.430057339 +0000 |
| +++ b/src/Makefile.am 2015-01-06 11:34:53.061049752 +0000 |
| @@ -94,27 +94,29 @@ readelf_no_Werror = yes |
| strings_no_Werror = yes |
| addr2line_no_Wformat = yes |
| |
| -readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl |
| +readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) |
| nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) -ldl \ |
| - $(demanglelib) |
| -size_LDADD = $(libelf) $(libeu) |
| -strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl |
| -ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl |
| + $(demanglelib) $(ARGP_LIBS) |
| +size_LDADD = $(libelf) $(libeu) $(ARGP_LIBS) |
| +strip_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) |
| +ld_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) |
| if NATIVE_LD |
| # -ldl is always needed for libebl. |
| ld_LDADD += libld_elf.a |
| endif |
| ld_LDFLAGS = -rdynamic |
| -elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl |
| -findtextrel_LDADD = $(libdw) $(libelf) |
| -addr2line_LDADD = $(libdw) $(libelf) |
| -elfcmp_LDADD = $(libebl) $(libelf) -ldl |
| -objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl |
| -ranlib_LDADD = libar.a $(libelf) $(libeu) |
| -strings_LDADD = $(libelf) $(libeu) |
| -ar_LDADD = libar.a $(libelf) $(libeu) |
| -unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl |
| -stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(demanglelib) |
| +elflint_LDADD = $(libebl) $(libelf) $(libeu) -ldl $(ARGP_LIBS) |
| +findtextrel_LDADD = $(libdw) $(libelf) $(ARGP_LIBS) |
| +addr2line_LDADD = $(libdw) $(libelf) $(ARGP_LIBS) |
| +elfcmp_LDADD = $(libebl) $(libelf) -ldl $(ARGP_LIBS) |
| +objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) -ldl \ |
| + $(ARGP_LIBS) |
| +ranlib_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS) |
| +strings_LDADD = $(libelf) $(libeu) $(ARGP_LIBS) |
| +ar_LDADD = libar.a $(libelf) $(libeu) $(ARGP_LIBS) |
| +unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl $(ARGP_LIBS) |
| +stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) -ldl \ |
| + $(demanglelib) $(ARGP_LIBS) |
| |
| ldlex.o: ldscript.c |
| ldlex_no_Werror = yes |