diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/poky/meta/recipes-core/musl | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/poky/meta/recipes-core/musl')
6 files changed, 174 insertions, 35 deletions
diff --git a/external/poky/meta/recipes-core/musl/libssp-nonshared.bb b/external/poky/meta/recipes-core/musl/libssp-nonshared.bb index 458eafef..bae8c81c 100644 --- a/external/poky/meta/recipes-core/musl/libssp-nonshared.bb +++ b/external/poky/meta/recipes-core/musl/libssp-nonshared.bb @@ -8,15 +8,10 @@ SECTION = "libs" SRC_URI = "file://ssp-local.c" -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" - INHIBIT_DEFAULT_DEPS = "1" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" - DEPENDS = "virtual/${TARGET_PREFIX}binutils \ - virtual/${TARGET_PREFIX}gcc-initial \ + virtual/${TARGET_PREFIX}gcc \ " do_configure[noexec] = "1" diff --git a/external/poky/meta/recipes-core/musl/libucontext_git.bb b/external/poky/meta/recipes-core/musl/libucontext_git.bb new file mode 100644 index 00000000..ec988f19 --- /dev/null +++ b/external/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/external/poky/meta/recipes-core/musl/musl-obstack.bb b/external/poky/meta/recipes-core/musl/musl-obstack.bb new file mode 100644 index 00000000..3003935f --- /dev/null +++ b/external/poky/meta/recipes-core/musl/musl-obstack.bb @@ -0,0 +1,22 @@ +# Copyright (C) 2019 Khem Raj <raj.khem@gmail.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A standalone library to implement GNU libc's obstack" +DESCRIPTION = "copy + paste of the obstack functions and macros found in GNU gcc libiberty library for use with musl libc" +HOMEPAGE = "https://github.com/pullmoll/musl-obstack" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3d23e4eef8243efcaab6f0a438078932" +SECTION = "libs" + +PV = "1.1" +SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4" +SRC_URI = "git://github.com/pullmoll/musl-obstack" + +UPSTREAM_CHECK_COMMITS = "1" + +inherit autotools pkgconfig + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = ".*-musl.*" + diff --git a/external/poky/meta/recipes-core/musl/musl.inc b/external/poky/meta/recipes-core/musl/musl.inc index 319709b3..bdce4121 100644 --- a/external/poky/meta/recipes-core/musl/musl.inc +++ b/external/poky/meta/recipes-core/musl/musl.inc @@ -9,16 +9,10 @@ standards-conformance and safety." HOMEPAGE = "http://www.musl-libc.org/" LICENSE = "MIT" SECTION = "libs" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8a4bb28f771c817fe57d3a7c4240e3aa" - -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01" INHIBIT_DEFAULT_DEPS = "1" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" - - FILES_SOLIBSDEV = "" FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}" INSANE_SKIP_${PN} = "dev-so" @@ -31,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/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch new file mode 100644 index 00000000..6a875a71 --- /dev/null +++ b/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch @@ -0,0 +1,61 @@ +From 5a2886f81dbca3f2ed28eebe7d27d471da278db8 Mon Sep 17 00:00:00 2001 +From: Serhey Popovych <serhe.popovych@gmail.com> +Date: Tue, 11 Dec 2018 05:44:20 -0500 +Subject: [PATCH] ldso: Use syslibdir and libdir as default pathes to libdirs + +In absence of /etc/ld-musl-$(ARCH).path ldso uses default path to search +libraries /lib:/usr/local/lib:/usr/lib. + +However this path isn't relevant in case when library is put in dirs +like lib64 or libx32. + +Adjust CFLAGS_ALL to pass syslibdir as SYSLIBDIR and libdir as LIBDIR +preprocessor macroses to construct default ldso library search path +in ldso/dynlink.c::SYS_PATH_DFLT. + +Upstream-Status: Pending +Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> +--- + Makefile | 3 ++- + ldso/dynlink.c | 4 +++- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index b46f8ca4..c07e4ae8 100644 +--- a/Makefile ++++ b/Makefile +@@ -46,7 +46,8 @@ CFLAGS_AUTO = -Os -pipe + CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc + + CFLAGS_ALL = $(CFLAGS_C99FSE) +-CFLAGS_ALL += -D_XOPEN_SOURCE=700 -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/include -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include ++CFLAGS_ALL += -D_XOPEN_SOURCE=700 -DSYSLIBDIR='"$(syslibdir)"' -DLIBDIR='"$(libdir)"' ++CFLAGS_ALL += -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/include -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include + CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS) + + LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS) +diff --git a/ldso/dynlink.c b/ldso/dynlink.c +index ec921dfd..7c119c55 100644 +--- a/ldso/dynlink.c ++++ b/ldso/dynlink.c +@@ -22,6 +22,8 @@ + #include "dynlink.h" + #include "malloc_impl.h" + ++#define SYS_PATH_DFLT SYSLIBDIR ":" LIBDIR ++ + static void error(const char *, ...); + + #define MAXP2(a,b) (-(-(a)&-(b))) +@@ -1038,7 +1040,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) + sys_path = ""; + } + } +- if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib"; ++ if (!sys_path) sys_path = SYS_PATH_DFLT; + fd = path_open(name, sys_path, buf, sizeof buf); + } + pathname = buf; +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/musl/musl_git.bb b/external/poky/meta/recipes-core/musl/musl_git.bb index 0d8f8eb2..82379fd1 100644 --- a/external/poky/meta/recipes-core/musl/musl_git.bb +++ b/external/poky/meta/recipes-core/musl/musl_git.bb @@ -4,28 +4,32 @@ require musl.inc inherit linuxloader -SRCREV = "c50985d5c8e316c5c464f352e79eeebfed1121a9" +SRCREV = "040c1d16b468c50c04fc94edff521f1637708328" -PV = "1.1.20+git${SRCPV}" +BASEVER = "1.2.0" + +PV = "${BASEVER}+git${SRCPV}" # mirror is at git://github.com/kraj/musl.git 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 \ " S = "${WORKDIR}/git" -PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc virtual/libiconv virtual/libintl virtual/crypt" +PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt" DEPENDS = "virtual/${TARGET_PREFIX}binutils \ - virtual/${TARGET_PREFIX}gcc-initial \ + virtual/${TARGET_PREFIX}gcc \ libgcc-initial \ linux-libc-headers \ bsd-headers \ libssp-nonshared \ " GLIBC_LDSO = "${@get_glibc_loader(d)}" +MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}" export CROSS_COMPILE="${TARGET_PREFIX}" @@ -45,7 +49,7 @@ CONFIGUREOPTS = " \ --bindir=${bindir} \ --libdir=${libdir} \ --includedir=${includedir} \ - --syslibdir=${base_libdir} \ + --syslibdir=/lib \ " do_configure() { @@ -58,32 +62,28 @@ do_compile() { do_install() { oe_runmake install DESTDIR='${D}' - - install -d ${D}${bindir} - rm -f ${D}${bindir}/ldd + 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" |