summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-core/musl
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-core/musl')
-rw-r--r--poky/meta/recipes-core/musl/libucontext_git.bb63
-rw-r--r--poky/meta/recipes-core/musl/musl.inc6
-rw-r--r--poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch48
-rw-r--r--poky/meta/recipes-core/musl/musl_git.bb36
4 files changed, 84 insertions, 69 deletions
diff --git a/poky/meta/recipes-core/musl/libucontext_git.bb b/poky/meta/recipes-core/musl/libucontext_git.bb
new file mode 100644
index 000000000..ec988f192
--- /dev/null
+++ b/poky/meta/recipes-core/musl/libucontext_git.bb
@@ -0,0 +1,63 @@
+# Copyright (C) 2019 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "ucontext implementation featuring glibc-compatible ABI"
+HOMEPAGE = "https://github.com/kaniini/libucontext"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6eed01fa0e673c76f5a5715438f65b1d"
+SECTION = "libs"
+DEPENDS = ""
+
+PV = "0.10+${SRCPV}"
+SRCREV = "19fa1bbfc26efb92147b5e85cc0ca02a0e837561"
+SRC_URI = "git://github.com/kaniini/libucontext \
+"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = ".*-musl.*"
+
+valid_archs = " \
+ x86 x86_64 \
+ ppc ppc64 \
+ mips mips64 \
+ arm aarch64 \
+ s390x \
+"
+
+def map_kernel_arch(a, d):
+ import re
+
+ valid_archs = d.getVar('valid_archs').split()
+
+ if a in valid_archs: return a
+ elif re.match('(i.86|athlon)$', a): return 'x86'
+ elif re.match('x86.64$', a): return 'x86_64'
+ elif re.match('armeb$', a): return 'arm'
+ elif re.match('aarch64$', a): return 'aarch64'
+ elif re.match('aarch64_be$', a): return 'aarch64'
+ elif re.match('aarch64_ilp32$', a): return 'aarch64'
+ elif re.match('aarch64_be_ilp32$', a): return 'aarch64'
+ elif re.match('mips(isa|)(32|)(r6|)(el|)$', a): return 'mips'
+ elif re.match('mips(isa|)64(r6|)(el|)$', a): return 'mips64'
+ elif re.match('p(pc|owerpc)', a): return 'ppc'
+ elif re.match('p(pc64|owerpc64)', a): return 'ppc64'
+ elif re.match('riscv64$', a): return 'riscv64'
+ else:
+ if not d.getVar("TARGET_OS").startswith("linux"):
+ return a
+ bb.error("cannot map '%s' to a linux kernel architecture" % a)
+
+export ARCH = "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
+
+CFLAGS += "-Iarch/${ARCH} -Iarch/common"
+
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' LIBDIR='${base_libdir}'"
+
+do_compile() {
+ oe_runmake ARCH=${ARCH}
+}
+
+do_install() {
+ oe_runmake ARCH="${ARCH}" DESTDIR="${D}" install
+}
diff --git a/poky/meta/recipes-core/musl/musl.inc b/poky/meta/recipes-core/musl/musl.inc
index 0683bf85e..bdce41216 100644
--- a/poky/meta/recipes-core/musl/musl.inc
+++ b/poky/meta/recipes-core/musl/musl.inc
@@ -9,7 +9,7 @@ standards-conformance and safety."
HOMEPAGE = "http://www.musl-libc.org/"
LICENSE = "MIT"
SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d0fe2be17bc45ff4a42ade1c13ed6340"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01"
INHIBIT_DEFAULT_DEPS = "1"
@@ -25,3 +25,7 @@ MIPS_INSTRUCTION_SET = "mips"
ARM_INSTRUCTION_SET_armv5 = "arm"
ARM_INSTRUCTION_SET_armv4 = "arm"
+# Enable out of tree build
+B = "${WORKDIR}/build"
+
+do_configure[cleandirs] = "${B}"
diff --git a/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch b/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch
deleted file mode 100644
index fcb324e15..000000000
--- a/poky/meta/recipes-core/musl/musl/0001-riscv-Define-sigcontext-again.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-commit a0993f8f0f161423ecdcb754f282ffd2fe47a7b5
-Author: Rich Felker <dalias@aerifal.cx>
-Date: Wed Oct 2 09:28:03 2019 -0400
-
- reintroduce riscv64 struct sigcontext
-
- commit ab3eb89a8b83353cdaab12ed017a67a7730f90e9 removed it as part of
- correcting the mcontext_t definition, but there is still code using
- struct sigcontext and expecting the member names present in it, most
- notably libgcc_eh. almost all such usage is incorrect, but bring back
- struct sigcontext at least for now so as not to introduce regressions.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h
-index 03fe48c1..2ff4be30 100644
---- a/arch/riscv64/bits/signal.h
-+++ b/arch/riscv64/bits/signal.h
-@@ -6,12 +6,6 @@
- # define SIGSTKSZ 8192
- #endif
-
--#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
--typedef unsigned long greg_t;
--typedef unsigned long gregset_t[32];
--typedef union __riscv_mc_fp_state fpregset_t;
--#endif
--
- typedef unsigned long __riscv_mc_gp_state[32];
-
- struct __riscv_mc_f_ext_state {
-@@ -41,6 +35,16 @@ typedef struct mcontext_t {
- union __riscv_mc_fp_state __fpregs;
- } mcontext_t;
-
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+typedef unsigned long greg_t;
-+typedef unsigned long gregset_t[32];
-+typedef union __riscv_mc_fp_state fpregset_t;
-+struct sigcontext {
-+ gregset_t gregs;
-+ fpregset_t fpregs;
-+};
-+#endif
-+
- struct sigaltstack {
- void *ss_sp;
- int ss_flags;
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index aacff79f7..6aa69985d 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,9 +4,9 @@
require musl.inc
inherit linuxloader
-SRCREV = "2c2477da9a553c0b9b2fa18073a5dcdbe6d395af"
+SRCREV = "1b4e84c56df0f8ca30f6bc05962a860f869e71df"
-BASEVER = "1.1.23"
+BASEVER = "1.2.0"
PV = "${BASEVER}+git${SRCPV}"
@@ -15,7 +15,6 @@ PV = "${BASEVER}+git${SRCPV}"
SRC_URI = "git://git.musl-libc.org/musl \
file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
- file://0001-riscv-Define-sigcontext-again.patch \
"
S = "${WORKDIR}/git"
@@ -30,6 +29,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \
libssp-nonshared \
"
GLIBC_LDSO = "${@get_glibc_loader(d)}"
+MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}"
export CROSS_COMPILE="${TARGET_PREFIX}"
@@ -49,7 +49,7 @@ CONFIGUREOPTS = " \
--bindir=${bindir} \
--libdir=${libdir} \
--includedir=${includedir} \
- --syslibdir=${base_libdir} \
+ --syslibdir=/lib \
"
do_configure() {
@@ -62,32 +62,28 @@ do_compile() {
do_install() {
oe_runmake install DESTDIR='${D}'
-
- install -d ${D}${bindir}
+ install -d ${D}${bindir} ${D}${base_libdir} ${D}${sysconfdir}
+ echo "${base_libdir}" > ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
+ echo "${libdir}" >> ${D}${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path
rm -f ${D}${bindir}/ldd ${D}${GLIBC_LDSO}
lnr ${D}${libdir}/libc.so ${D}${bindir}/ldd
lnr ${D}${libdir}/libc.so ${D}${GLIBC_LDSO}
- for l in crypt dl m pthread resolv rt util xnet
- do
- ln -sf libc.so ${D}${libdir}/lib$l.so
- done
- for i in libc.so.6 libcrypt.so.1 libdl.so.2 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1 libutil.so.1; do
- ln -sf libc.so ${D}${libdir}/$i
- done
}
PACKAGES =+ "${PN}-glibc-compat"
-FILES_${PN}-glibc-compat += "\
- ${libdir}/libc.so.6 ${libdir}/libcrypt.so.1 \
- ${libdir}/libdl.so.2 ${libdir}/libm.so.6 \
- ${libdir}/libpthread.so.0 ${libdir}/libresolv.so.2 \
- ${libdir}/librt.so.1 ${libdir}/libutil.so.1 \
- ${GLIBC_LDSO} \
- "
+FILES_${PN} += "/lib/ld-musl-${MUSL_LDSO_ARCH}.so.1 ${sysconfdir}/ld-musl-${MUSL_LDSO_ARCH}.path"
+FILES_${PN}-glibc-compat += "${GLIBC_LDSO}"
+FILES_${PN}-staticdev = "${libdir}/libc.a"
+FILES_${PN}-dev =+ "${libdir}/libcrypt.a ${libdir}/libdl.a ${libdir}/libm.a \
+ ${libdir}/libpthread.a ${libdir}/libresolv.a \
+ ${libdir}/librt.a ${libdir}/libutil.a ${libdir}/libxnet.a \
+ "
RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
LEAD_SONAME = "libc.so"
+INSANE_SKIP_${PN}-dev = "staticdev"
+INSANE_SKIP_${PN} = "libdir"