mirror of
https://git.yoctoproject.org/poky
synced 2026-02-23 18:09:40 +01:00
Re-organize the musl patches in three different areas namely libs, utils and tests, this will help maintain them in future version bumps Add obstack dependency on musl targets which is needed for eu-* PN and PN-binutils is not empty anymore on musl (From OE-Core rev: a747239978e63f22d4107e6e12c75b5f78043cce) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
106 lines
3.7 KiB
Diff
106 lines
3.7 KiB
Diff
Look for libfts and libobstack during configure, these
|
|
libraries are external to libc when using musl, whereas
|
|
on glibc these libraries are provided in libc itself.
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Upstream-Status: Inappropriate [workaround for musl]
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -494,6 +494,60 @@ else
|
|
fi
|
|
AC_SUBST([argp_LDADD])
|
|
|
|
+dnl Check if we have fts available from our libc
|
|
+AC_LINK_IFELSE(
|
|
+ [AC_LANG_PROGRAM(
|
|
+ [#if !defined(__x86_64__)
|
|
+ #undef _FILE_OFFSET_BITS
|
|
+ #define _FILE_OFFSET_BITS 32
|
|
+ #endif
|
|
+ #include <fts.h>],
|
|
+ [FTS* fts = 0; return fts_close(fts); return 0;]
|
|
+ )],
|
|
+ [libc_has_fts="true"],
|
|
+ [libc_has_fts="false"]
|
|
+)
|
|
+
|
|
+dnl If our libc doesn't provide fts, then test for libfts
|
|
+if test "$libc_has_fts" = "false" ; then
|
|
+ AC_MSG_WARN("libc does not have fts")
|
|
+ AC_CHECK_LIB([fts], [fts_close], [have_fts="true"], [have_fts="false"])
|
|
+
|
|
+ if test "$have_fts" = "false"; then
|
|
+ AC_MSG_ERROR("no libfts found")
|
|
+ else
|
|
+ fts_LDADD="-lfts"
|
|
+ fi
|
|
+else
|
|
+ fts_LDADD=""
|
|
+fi
|
|
+AC_SUBST([fts_LDADD])
|
|
+
|
|
+dnl Check if we have obstack available from our libc
|
|
+AC_LINK_IFELSE(
|
|
+ [AC_LANG_PROGRAM(
|
|
+ [#include <obstack.h>],
|
|
+ [_obstack_begin(0, 0, 0, NULL, NULL); return 0;]
|
|
+ )],
|
|
+ [libc_has_obstack="true"],
|
|
+ [libc_has_obstack="false"]
|
|
+)
|
|
+
|
|
+dnl If our libc doesn't provide obstack, then test for libobstack
|
|
+if test "$libc_has_obstack" = "false" ; then
|
|
+ AC_MSG_WARN("libc does not have obstack")
|
|
+ AC_CHECK_LIB([obstack], [_obstack_begin], [have_obstack="true"], [have_obstack="false"])
|
|
+
|
|
+ if test "$have_obstack" = "false"; then
|
|
+ AC_MSG_ERROR("no libobstack found")
|
|
+ else
|
|
+ obstack_LDADD="-lobstack"
|
|
+ fi
|
|
+else
|
|
+ obstack_LDADD=""
|
|
+fi
|
|
+AC_SUBST([obstack_LDADD])
|
|
+
|
|
dnl The directories with content.
|
|
|
|
dnl Documentation.
|
|
--- a/libdw/Makefile.am
|
|
+++ b/libdw/Makefile.am
|
|
@@ -108,7 +108,7 @@ am_libdw_pic_a_OBJECTS = $(libdw_a_SOURC
|
|
libdw_so_LIBS = libdw_pic.a ../libdwelf/libdwelf_pic.a \
|
|
../libdwfl/libdwfl_pic.a ../libebl/libebl.a
|
|
libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so
|
|
-libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS)
|
|
+libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(fts_LDADD) $(zip_LIBS)
|
|
libdw_so_SOURCES =
|
|
libdw.so$(EXEEXT): $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS)
|
|
# The rpath is necessary for libebl because its $ORIGIN use will
|
|
--- a/src/Makefile.am
|
|
+++ b/src/Makefile.am
|
|
@@ -68,8 +68,8 @@ ar_no_Wstack_usage = yes
|
|
unstrip_no_Wstack_usage = yes
|
|
|
|
readelf_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
|
|
-nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \
|
|
- $(demanglelib)
|
|
+nm_LDADD = $(libdw) $(libebl) $(libelf) $(libeu) $(argp_LDADD) \
|
|
+ $(obstack_LDADD) -ldl $(demanglelib)
|
|
size_LDADD = $(libelf) $(libeu) $(argp_LDADD)
|
|
strip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
|
|
elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
|
|
@@ -77,9 +77,9 @@ findtextrel_LDADD = $(libdw) $(libelf) $
|
|
addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib)
|
|
elfcmp_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
|
|
objdump_LDADD = $(libasm) $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
|
|
-ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
|
|
+ranlib_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD)
|
|
strings_LDADD = $(libelf) $(libeu) $(argp_LDADD)
|
|
-ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD)
|
|
+ar_LDADD = libar.a $(libelf) $(libeu) $(argp_LDADD) $(obstack_LDADD)
|
|
unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl
|
|
stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) -ldl $(demanglelib)
|
|
elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD)
|