From 0e5a16529ad3c04877dbb91b0e88ae55851e3ba9 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 9 Jun 2023 14:47:22 -0500 Subject: [PATCH] merge in thead-V1.1.2 changes Signed-off-by: Robert Nelson --- classes/external-toolchain-cross-canadian.bbclass | 2 +- classes/external_global.bbclass | 2 ++ conf/distro/include/tcmode-external.inc | 10 +++++----- conf/layer.conf | 2 +- .../binutils/binutils-external-cross-canadian.bb | 2 ++ recipes-external/gcc/gcc-runtime-external.bb | 2 +- recipes-external/gdb/gdb-external-cross-canadian.bb | 11 ++++++----- recipes-external/glibc/glibc-external.bb | 12 ++++++++++-- recipes-external/glibc/glibc-external/SUPPORTED | 3 +-- recipes-external/glibc/glibc-sysroot-setup.inc | 10 +++++++++- recipes-external/libxcrypt/libxcrypt-external.bb | 4 ++-- 11 files changed, 40 insertions(+), 20 deletions(-) diff --git a/classes/external-toolchain-cross-canadian.bbclass b/classes/external-toolchain-cross-canadian.bbclass index ffc411f..b02acd2 100644 --- a/classes/external-toolchain-cross-canadian.bbclass +++ b/classes/external-toolchain-cross-canadian.bbclass @@ -33,7 +33,7 @@ do_install:append () { for i in ${D}${bindir}/${EXTERNAL_TARGET_SYS}-*; do if [ -e "$i" ]; then j="$(basename "$i")" - ln -sv "$j" "${D}${bindir}/${TARGET_PREFIX}${j#${EXTERNAL_TARGET_SYS}-}" + #ln -sv "$j" "${D}${bindir}/${TARGET_PREFIX}${j#${EXTERNAL_TARGET_SYS}-}" fi done } diff --git a/classes/external_global.bbclass b/classes/external_global.bbclass index 1662d20..4858c3f 100644 --- a/classes/external_global.bbclass +++ b/classes/external_global.bbclass @@ -86,6 +86,8 @@ def external_run(d, *args): import oe.external return oe.external.run(d, *args) +external_run[vardepsexclude] += "LAYERDIR_external-toolchain" + def external_get_kernel_version(d, p): if (not d.getVar('TCMODE', True).startswith('external') or not d.getVar('EXTERNAL_TOOLCHAIN', True)): diff --git a/conf/distro/include/tcmode-external.inc b/conf/distro/include/tcmode-external.inc index 1e0f8ab..475284e 100644 --- a/conf/distro/include/tcmode-external.inc +++ b/conf/distro/include/tcmode-external.inc @@ -24,14 +24,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs ?= "gcc-runtime-external PREFERRED_PROVIDER_gcc-runtime = "gcc-runtime-external" PREFERRED_PROVIDER_gcc-sanitizers ?= "gcc-sanitizers-external" PREFERRED_PROVIDER_libgcc-initial = "libgcc-external" -PREFERRED_PROVIDER_libnsl2 = "libnsl2-external" -PREFERRED_PROVIDER_libtirpc = "libtirpc-external" -PREFERRED_PROVIDER_libgfortran = "libgfortran-external" +PREFERRED_PROVIDER_libnsl2 = "libnsl2" +PREFERRED_PROVIDER_libtirpc = "libtirpc" +# PREFERRED_PROVIDER_libgfortran = "libgfortran-external" PREFERRED_PROVIDER_glibc ?= "glibc-external" PREFERRED_PROVIDER_virtual/libc ?= "glibc-external" PREFERRED_PROVIDER_virtual/libintl ?= "glibc-external" PREFERRED_PROVIDER_virtual/libiconv ?= "glibc-external" -PREFERRED_PROVIDER_virtual/crypt ?= "libxcrypt-external" +PREFERRED_PROVIDER_virtual/crypt ?= "libxcrypt" PREFERRED_PROVIDER_gdb-cross-${TARGET_ARCH} ?= "gdb-external-cross-${TARGET_ARCH}" PREFERRED_PROVIDER_oprofile ??= "oprofile" # Work around bug where the implicitly created mlprefix preference isn't being @@ -105,7 +105,7 @@ TUNE_LDARGS += "${@'-m ${LDEMULATION}' if '${LDEMULATION}' else ''}" # Additional search path for compiler component programs, to let us rebuild # binutils if necessary. gcc_bindir = "${STAGING_BINDIR_TOOLCHAIN}/gcc" -TUNE_CCARGS .= "${@' -B${gcc_bindir}' if d.getVar('PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils') != 'binutils-external-cross-${TARGET_ARCH}' else ''}" +TARGET_CC_ARCH .= "${@' -B${gcc_bindir}' if d.getVar('PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils') != 'binutils-external-cross-${TARGET_ARCH}' else ''}" # Align the external toolchain ldflags with the internal TARGET_LDFLAGS_BUILD_ID = "-Wl,--build-id=sha1" diff --git a/conf/layer.conf b/conf/layer.conf index d4a59bc..41b9b10 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -6,7 +6,7 @@ BBFILE_PRIORITY_external-toolchain = "1" BBFILE_PATTERN_external-toolchain = "^${LAYERDIR}/" LAYERDEPENDS_external-toolchain = "core" -LAYERSERIES_COMPAT_external-toolchain = "kirkstone" +LAYERSERIES_COMPAT_external-toolchain = "kirkstone langdale" LAYERDIR_external-toolchain = "${LAYERDIR}" BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.%s' % (layer, ext) \ diff --git a/recipes-external/binutils/binutils-external-cross-canadian.bb b/recipes-external/binutils/binutils-external-cross-canadian.bb index 579bdf8..9e08053 100644 --- a/recipes-external/binutils/binutils-external-cross-canadian.bb +++ b/recipes-external/binutils/binutils-external-cross-canadian.bb @@ -11,6 +11,8 @@ FILES:${PN} = "\ do_install:append () { if [ ! -e ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd ]; then + rm -rf ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd + echo "ln -s ${EXTERNAL_TARGET_SYS}-ld ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd" ln -s ${EXTERNAL_TARGET_SYS}-ld ${D}${bindir}/${EXTERNAL_TARGET_SYS}-ld.bfd fi } diff --git a/recipes-external/gcc/gcc-runtime-external.bb b/recipes-external/gcc/gcc-runtime-external.bb index 1ec75e0..7aea980 100644 --- a/recipes-external/gcc/gcc-runtime-external.bb +++ b/recipes-external/gcc/gcc-runtime-external.bb @@ -29,7 +29,7 @@ FILES_MIRRORS =. "\ # The do_install:append in gcc-runtime.inc doesn't do well if the links # already exist, as it causes a recursion that breaks traversal. python () { - adjusted = d.getVar('do_install_added').replace('ln -s', 'link_if_no_dest') + adjusted = d.getVar('do_install_added', expand=False).replace('ln -s', 'link_if_no_dest') adjusted = adjusted.replace('mkdir', 'mkdir_if_no_dest') d.setVar('do_install_added', adjusted) } diff --git a/recipes-external/gdb/gdb-external-cross-canadian.bb b/recipes-external/gdb/gdb-external-cross-canadian.bb index 181d90c..c7422d3 100644 --- a/recipes-external/gdb/gdb-external-cross-canadian.bb +++ b/recipes-external/gdb/gdb-external-cross-canadian.bb @@ -7,9 +7,10 @@ FILES_MIRRORS =. "\ ${exec_prefix}|${target_exec_prefix}/${EXTERNAL_TARGET_SYS}\n \ " -FILES:${PN} += "\ - ${@' '.join('${bindir}/${EXTERNAL_TARGET_SYS}-' + i for i in '${gdb_binaries}'.split())} \ - ${exec_prefix}/share/gdb \ -" +#FILES:${PN} += "\ +# ${@' '.join('${bindir}/${EXTERNAL_TARGET_SYS}-' + i for i in '${gdb_binaries}'.split())} \ +# ${exec_prefix}/share/gdb \ +#" -INSANE_SKIP:${PN} += "dev-so staticdev" +INSANE_SKIP:${PN} += "dev-so staticdev installed-vs-shipped" +#INSANE_SKIP:${PN} += "dev-so staticdev" diff --git a/recipes-external/glibc/glibc-external.bb b/recipes-external/glibc/glibc-external.bb index 872a119..d60c633 100644 --- a/recipes-external/glibc/glibc-external.bb +++ b/recipes-external/glibc/glibc-external.bb @@ -170,6 +170,7 @@ python () { baselibs = d.getVar('libc_baselibs', False) baselibs = baselibs.replace('${base_libdir}/libm*.so.*', '${base_libdir}/libm.so.* ${base_libdir}/libmvec.so.*') baselibs = baselibs.replace('${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so', '') + print(baselibs) d.setVar('libc_baselibs', baselibs) } @@ -196,6 +197,7 @@ FILES:${PN} += "\ ${libdir}/locale \ ${datadir}/locale \ ${datadir}/i18n \ + ${prefix}/lib64xthead/lp64d \ " FILES:${PN}-dev:remove := "${datadir}/aclocal" @@ -231,6 +233,7 @@ FILES:${PN}-dev += "\ ${includedir}/fpu_control.h \ ${includedir}/stdc-predef.h \ ${includedir}/uchar.h \ + ${includedir}/features-time64.h \ " FILES:${PN}-dev[file-checksums] += "${libc_headers_file}:True" @@ -243,9 +246,14 @@ do_package_write_rpm[depends] += "${MLPREFIX}libgcc:do_packagedata" # glibc may need libssp for -fstack-protector builds do_packagedata[depends] += "gcc-runtime:do_packagedata" +python do_package:append() { + bb.utils.mkdirhier(pkgdest + '/' + pn + '/lib64xthead') + os.symlink("../lib", pkgdest + '/' + pn + '/lib64xthead/lp64d') +} + # We don't need linux-libc-headers LINUX_LIBC_RDEP_REMOVE ?= "linux-libc-headers-dev" RDEPENDS:${PN}-dev:remove = "${LINUX_LIBC_RDEP_REMOVE}" -FILES:${PN}-dev:remove = "${base_libdir}/*_nonshared.a ${libdir}/*_nonshared.a" -FILES:${PN}-dev += "${libdir}/libc_nonshared.a ${libdir}/libpthread_nonshared.a ${libdir}/libmvec_nonshared.a" +# FILES:${PN}-dev:remove = "${base_libdir}/*_nonshared.a ${libdir}/*_nonshared.a" +# FILES:${PN}-dev += "${libdir}/libc_nonshared.a ${libdir}/libpthread_nonshared.a ${libdir}/libmvec_nonshared.a" diff --git a/recipes-external/glibc/glibc-external/SUPPORTED b/recipes-external/glibc/glibc-external/SUPPORTED index 2e34dfa..aa7b3e9 100644 --- a/recipes-external/glibc/glibc-external/SUPPORTED +++ b/recipes-external/glibc/glibc-external/SUPPORTED @@ -88,7 +88,6 @@ ca_IT.UTF-8 UTF-8 ca_IT ISO-8859-15 ce_RU UTF-8 chr_US UTF-8 -ckb_IQ UTF-8 cmn_TW UTF-8 crh_UA UTF-8 cs_CZ.UTF-8 UTF-8 @@ -325,7 +324,7 @@ mk_MK ISO-8859-5 ml_IN UTF-8 mn_MN UTF-8 mni_IN UTF-8 -mnw_MM UTF-8 +# mnw_MM UTF-8 mr_IN UTF-8 ms_MY.UTF-8 UTF-8 ms_MY ISO-8859-1 diff --git a/recipes-external/glibc/glibc-sysroot-setup.inc b/recipes-external/glibc/glibc-sysroot-setup.inc index 456e4d3..1748646 100644 --- a/recipes-external/glibc/glibc-sysroot-setup.inc +++ b/recipes-external/glibc/glibc-sysroot-setup.inc @@ -1,7 +1,15 @@ # stash_locale_cleanup removes the empty /usr/lib after stashing the locale # files to avoid remnant clutter, but we need it in the sysroot -stash_locale_sysroot_cleanup:append() { + +SYSROOT_PREPROCESS_FUNCS += "external_toolchain_sysroot_adjust" +external_toolchain_sysroot_adjust() { # If the usr/lib directory doesn't exist, the toolchain fails to even # try to find crti.o in a completely different directory (usr/lib64) install -d ${SYSROOT_DESTDIR}${nonarch_libdir} + + install -d ${SYSROOT_DESTDIR}/lib64xthead/ + ln -s ../lib ${SYSROOT_DESTDIR}/lib64xthead/lp64d + + install -d ${SYSROOT_DESTDIR}/usr/lib64xthead/ + ln -s ../lib ${SYSROOT_DESTDIR}/usr/lib64xthead/lp64d } diff --git a/recipes-external/libxcrypt/libxcrypt-external.bb b/recipes-external/libxcrypt/libxcrypt-external.bb index ead8299..df9bcf4 100644 --- a/recipes-external/libxcrypt/libxcrypt-external.bb +++ b/recipes-external/libxcrypt/libxcrypt-external.bb @@ -7,12 +7,12 @@ PROVIDES = "virtual/crypt" inherit external-toolchain -EXTERNAL_PROVIDE_PATTERN = "${libdir}/libcrypt*.so.*" +EXTERNAL_PROVIDE_PATTERN = "${libdir}/libcrypt.so.*" libc_rdep = "${@'${PREFERRED_PROVIDER_virtual/libc}' if '${PREFERRED_PROVIDER_virtual/libc}' else '${TCLIBC}'}" RDEPENDS:${PN} += "${libc_rdep}" -FILES:${PN} = "${libdir}/libcrypt*.so.* \ +FILES:${PN} = "${libdir}/libcrypt.so.* \ ${libdir}/libcrypt-*.so \ ${libdir}/libowcrypt*.so.* \ ${libdir}/libowcrypt-*.so \