From a534db92af850d889bc76b2df359849b8990a9df Mon Sep 17 00:00:00 2001 From: Guenther Meyer Date: Tue, 19 Dec 2023 10:31:18 +0100 Subject: [PATCH 1/2] remove go from meta-leda backports in favour of meta-lts-mixins Signed-off-by: Guenther Meyer --- .config.yaml | 5 +- .gitignore | 3 +- conf/layer.conf | 2 +- kas/.config-components.yaml | 5 +- kas/.config-kirkstone-rpi4.yaml | 5 +- kas/.config-kirkstone.yaml | 5 +- kas/.config-master.yaml | 5 +- meta-leda-backports/conf/layer.conf | 2 - .../recipes-devtools/go-1.20.1/go-1.20.1.inc | 21 -- .../go-1.20.1/go-binary-native_1.20.1.bb | 50 ---- .../recipes-devtools/go-1.20.1/go-common.inc | 47 --- .../go-1.20.1/go-cross-canadian.inc | 61 ---- .../go-1.20.1/go-cross-canadian_1.20.1.bb | 2 - .../recipes-devtools/go-1.20.1/go-cross.inc | 52 ---- .../go-1.20.1/go-cross_1.20.1.bb | 2 - .../go-1.20.1/go-crosssdk.inc | 44 --- .../go-1.20.1/go-crosssdk_1.20.1.bb | 2 - .../go-1.20.1/go-native_1.20.1.bb | 58 ---- .../recipes-devtools/go-1.20.1/go-runtime.inc | 94 ------ .../go-1.20.1/go-runtime_1.20.1.bb | 3 - .../recipes-devtools/go-1.20.1/go-target.inc | 55 ---- ...ent-based-hash-generation-less-pedan.patch | 167 ----------- ...OOLDIR-to-be-overridden-in-the-envir.patch | 55 ---- ...3-ld-add-soname-to-shareable-objects.patch | 50 ---- ...de-CC-when-building-dist-and-go_boot.patch | 44 --- ...dist-separate-host-and-target-builds.patch | 282 ------------------ ...d-go-make-GOROOT-precious-by-default.patch | 113 ------- ...not-write-linker-flags-into-buildids.patch | 41 --- ...ldgo.go-do-not-hardcode-host-compile.patch | 44 --- ...uild-paths-on-staticly-linked-arches.patch | 60 ---- ...ompile-instantiated-generic-methods-.patch | 90 ------ .../go-1.20.1/go/CVE-2023-24532.patch | 208 ------------- .../go-1.20.1/go/CVE-2023-24537.patch | 89 ------ .../recipes-devtools/go-1.20.1/go_1.20.1.bb | 18 -- meta-leda-components/conf/layer.conf | 4 +- 35 files changed, 25 insertions(+), 1763 deletions(-) delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-1.20.1.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-binary-native_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-common.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-cross.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-cross_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-native_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime_1.20.1.bb delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go-target.inc delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0003-ld-add-soname-to-shareable-objects.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0005-cmd-dist-separate-host-and-target-builds.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0006-cmd-go-make-GOROOT-precious-by-default.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/0010-cmd-compile-re-compile-instantiated-generic-methods-.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24532.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24537.patch delete mode 100644 meta-leda-backports/recipes-devtools/go-1.20.1/go_1.20.1.bb diff --git a/.config.yaml b/.config.yaml index e1d0f52b..0d85d68d 100644 --- a/.config.yaml +++ b/.config.yaml @@ -53,9 +53,12 @@ repos: meta: meta-poky: meta-yocto-bsp: - meta-lts-mixins: + meta-lts-mixins-rust: url: "https://git.yoctoproject.org/git/meta-lts-mixins" refspec: kirkstone/rust-1.68 + meta-lts-mixins-go: + url: "https://git.yoctoproject.org/git/meta-lts-mixins" + refspec: kirkstone/go meta-clang: url: https://github.com/kraj/meta-clang refspec: kirkstone diff --git a/.gitignore b/.gitignore index 067c9d10..cacf1c53 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,8 @@ build/ # Metalayer folders are created by running "kas build" and we don't # want to commit them as git submodules. meta-kanto -meta-lts-mixins +meta-lts-mixins-rust +meta-lts-mixins-go meta-openembedded meta-rauc meta-rauc-community diff --git a/conf/layer.conf b/conf/layer.conf index 2b74109f..7950e4fa 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -21,5 +21,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILE_COLLECTIONS += "meta-leda" BBFILE_PATTERN_meta-leda := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-leda = "7" -LAYERDEPENDS_meta-leda += "core meta-leda-bsp meta-leda-components meta-leda-distro meta-leda-backports" +LAYERDEPENDS_meta-leda += "core meta-leda-bsp meta-leda-components meta-leda-distro" LAYERSERIES_COMPAT_meta-leda = "kirkstone" diff --git a/kas/.config-components.yaml b/kas/.config-components.yaml index 71f401ec..f11e13dd 100644 --- a/kas/.config-components.yaml +++ b/kas/.config-components.yaml @@ -38,9 +38,12 @@ repos: meta: meta-poky: meta-yocto-bsp: - meta-lts-mixins: + meta-lts-mixins-rust: url: "https://git.yoctoproject.org/git/meta-lts-mixins" refspec: kirkstone/rust-1.68 + meta-lts-mixins-go: + url: "https://git.yoctoproject.org/git/meta-lts-mixins" + refspec: kirkstone/go meta-clang: url: https://github.com/kraj/meta-clang refspec: kirkstone diff --git a/kas/.config-kirkstone-rpi4.yaml b/kas/.config-kirkstone-rpi4.yaml index d4d92c3e..6bd43b77 100644 --- a/kas/.config-kirkstone-rpi4.yaml +++ b/kas/.config-kirkstone-rpi4.yaml @@ -53,9 +53,12 @@ repos: meta: meta-poky: meta-yocto-bsp: - meta-lts-mixins: + meta-lts-mixins-rust: url: "https://git.yoctoproject.org/git/meta-lts-mixins" refspec: kirkstone/rust-1.68 + meta-lts-mixins-go: + url: "https://git.yoctoproject.org/git/meta-lts-mixins" + refspec: kirkstone/go meta-clang: url: https://github.com/kraj/meta-clang refspec: kirkstone diff --git a/kas/.config-kirkstone.yaml b/kas/.config-kirkstone.yaml index 26015d04..91404b91 100644 --- a/kas/.config-kirkstone.yaml +++ b/kas/.config-kirkstone.yaml @@ -53,9 +53,12 @@ repos: meta: meta-poky: meta-yocto-bsp: - meta-lts-mixins: + meta-lts-mixins-rust: url: "https://git.yoctoproject.org/git/meta-lts-mixins" refspec: kirkstone/rust-1.68 + meta-lts-mixins-go: + url: "https://git.yoctoproject.org/git/meta-lts-mixins" + refspec: kirkstone/go meta-clang: url: https://github.com/kraj/meta-clang refspec: kirkstone diff --git a/kas/.config-master.yaml b/kas/.config-master.yaml index b876361f..3f2c674e 100644 --- a/kas/.config-master.yaml +++ b/kas/.config-master.yaml @@ -53,9 +53,12 @@ repos: meta: meta-poky: meta-yocto-bsp: - meta-lts-mixins: + meta-lts-mixins-rust: url: "https://git.yoctoproject.org/git/meta-lts-mixins" refspec: kirkstone/rust-1.68 + meta-lts-mixins-go: + url: "https://git.yoctoproject.org/git/meta-lts-mixins" + refspec: kirkstone/go meta-clang: url: https://github.com/kraj/meta-clang refspec: kirkstone diff --git a/meta-leda-backports/conf/layer.conf b/meta-leda-backports/conf/layer.conf index 211c82ba..f6a5cb1c 100644 --- a/meta-leda-backports/conf/layer.conf +++ b/meta-leda-backports/conf/layer.conf @@ -18,8 +18,6 @@ BBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" -GOVERSION ?= "1.20%" - BBFILE_COLLECTIONS += "meta-leda-backports" BBFILE_PATTERN_meta-leda-backports := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-leda-backports = "7" diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-1.20.1.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-1.20.1.inc deleted file mode 100644 index 179f0e29..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-1.20.1.inc +++ /dev/null @@ -1,21 +0,0 @@ -require go-common.inc - -FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go:" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -SRC_URI += "\ - file://0001-cmd-go-make-content-based-hash-generation-less-pedan.patch \ - file://0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch \ - file://0003-ld-add-soname-to-shareable-objects.patch \ - file://0004-make.bash-override-CC-when-building-dist-and-go_boot.patch \ - file://0005-cmd-dist-separate-host-and-target-builds.patch \ - file://0006-cmd-go-make-GOROOT-precious-by-default.patch \ - file://0007-exec.go-do-not-write-linker-flags-into-buildids.patch \ - file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \ - file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \ - file://0010-cmd-compile-re-compile-instantiated-generic-methods-.patch \ - file://CVE-2023-24532.patch \ - file://CVE-2023-24537.patch \ -" -SRC_URI[main.sha256sum] = "b5c1a3af52c385a6d1c76aed5361cf26459023980d0320de7658bae3915831a2" diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-binary-native_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-binary-native_1.20.1.bb deleted file mode 100644 index 23933455..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-binary-native_1.20.1.bb +++ /dev/null @@ -1,50 +0,0 @@ -# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. - -SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" -HOMEPAGE = " http://golang.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -PROVIDES = "go-native" - -# Checksums available at https://go.dev/dl/ -SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" -SRC_URI[go_linux_amd64.sha256sum] = "000a5b1fca4f75895f78befeb2eecf10bfff3c428597f3f1e69133b63b911b02" -SRC_URI[go_linux_arm64.sha256sum] = "5e5e2926733595e6f3c5b5ad1089afac11c1490351855e87849d0e7702b1ec2e" -SRC_URI[go_linux_ppc64le.sha256sum] = "85cfd4b89b48c94030783b6e9e619e35557862358b846064636361421d0b0c52" - -UPSTREAM_CHECK_URI = "https://golang.org/dl/" -UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" - -CVE_PRODUCT = "go" - -S = "${WORKDIR}/go" - -inherit goarch native - -do_compile() { - : -} - -make_wrapper() { - rm -f ${D}${bindir}/$1 - cat <${D}${bindir}/$1 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$1 -} - -do_install() { - find ${S} -depth -type d -name testdata -exec rm -rf {} + - - install -d ${D}${bindir} ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ - - for f in ${S}/bin/* - do - make_wrapper `basename $f` - done -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-common.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-common.inc deleted file mode 100644 index 96e32eeb..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-common.inc +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Go programming language compiler" -DESCRIPTION = " The Go programming language is an open source project to make \ - programmers more productive. Go is expressive, concise, clean, and\ - efficient. Its concurrency mechanisms make it easy to write programs\ - that get the most out of multicore and networked machines, while its\ - novel type system enables flexible and modular program construction.\ - Go compiles quickly to machine code yet has the convenience of\ - garbage collection and the power of run-time reflection. It's a\ - fast, statically typed, compiled language that feels like a\ - dynamically typed, interpreted language." - -HOMEPAGE = " http://golang.org/" -LICENSE = "BSD-3-Clause" - -inherit goarch - -SRC_URI = "https://golang.org/dl/go${PV}.src.tar.gz;name=main" -S = "${WORKDIR}/go" -B = "${S}" -UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.src\.tar" - -# all recipe variants are created from the same product -CVE_PRODUCT = "go" - -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" -SSTATE_SCAN_CMD = "true" - -export GOROOT_OVERRIDE = "1" -export GOTMPDIR ?= "${WORKDIR}/build-tmp" -GOTMPDIR[vardepvalue] = "" -export CGO_ENABLED = "1" - -export GOHOSTOS ?= "${BUILD_GOOS}" -export GOHOSTARCH ?= "${BUILD_GOARCH}" -export GOROOT_BOOTSTRAP ?= "${STAGING_LIBDIR_NATIVE}/go" -export GOOS ?= "${TARGET_GOOS}" -export GOARCH ?= "${TARGET_GOARCH}" -export GOARM ?= "${TARGET_GOARM}" -export GO386 ?= "${TARGET_GO386}" -export GOMIPS ?= "${TARGET_GOMIPS}" -export GOROOT_FINAL ?= "${libdir}/go" - -export GODEBUG = "gocachehash=1" - -do_compile:prepend() { - BUILD_CC=${BUILD_CC} -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian.inc deleted file mode 100644 index 5a80ceff..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian.inc +++ /dev/null @@ -1,61 +0,0 @@ -inherit cross-canadian - -DEPENDS = "go-native virtual/${HOST_PREFIX}go-crosssdk virtual/nativesdk-${HOST_PREFIX}go-runtime \ - virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-libc \ - virtual/nativesdk-${HOST_PREFIX}compilerlibs" -PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" - -# it uses gcc on build machine during go-cross-canadian bootstrap, but -# the gcc version may be old and not support option '-fmacro-prefix-map' -# which is one of default values of DEBUG_PREFIX_MAP -DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ - " - -export GOTOOLDIR_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/${HOST_SYS}/go/pkg/tool/${BUILD_GOTUPLE}" -export CGO_CFLAGS = "${CFLAGS}" -export CGO_LDFLAGS = "${LDFLAGS}" -export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "--sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS} ${HOST_CC_ARCH} ${LDFLAGS}"' - -do_configure[noexec] = "1" - -do_compile() { - export CC_FOR_${HOST_GOTUPLE}="${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS}" - export CXX_FOR_${HOST_GOTUPLE}="${HOST_PREFIX}gxx --sysroot=${STAGING_DIR_HOST} ${SECURITY_NOPIE_CFLAGS}" - cd src - ./make.bash --target-only --no-banner - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" - - -make_wrapper() { - rm -f ${D}${bindir}/$2 - cat <${D}${bindir}/$2 -#!/bin/sh -here=\`dirname \$0\` -native_goroot=\`readlink -f \$here/../../lib/${TARGET_SYS}/go\` -export GOARCH="${TARGET_GOARCH}" -export GOOS="${TARGET_GOOS}" -test -n "\$GOARM" || export GOARM="${TARGET_GOARM}" -test -n "\$GO386" || export GO386="${TARGET_GO386}" -test -n "\$GOMIPS" || export GOMIPS="${TARGET_GOMIPS}" -export GOTOOLDIR="\$native_goroot/pkg/tool/${HOST_GOTUPLE}" -test -n "\$GOROOT" || export GOROOT="\$OECORE_TARGET_SYSROOT/${target_libdir}/go" -\$here/../../lib/${TARGET_SYS}/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go/pkg/tool - cp --preserve=mode,timestamps -R ${B}/pkg/tool/${HOST_GOTUPLE} ${D}${libdir}/go/pkg/tool/ - install -d ${D}${bindir} ${D}${libdir}/go/bin - for f in ${B}/${GO_BUILD_BINDIR}/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base ${TARGET_PREFIX}$base - done -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian_1.20.1.bb deleted file mode 100644 index 7ac9449e..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross-canadian_1.20.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross-canadian.inc -require go-${PV}.inc diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross.inc deleted file mode 100644 index a0fbdbe3..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross.inc +++ /dev/null @@ -1,52 +0,0 @@ -inherit cross - -PROVIDES = "virtual/${TUNE_PKGARCH}-go" -DEPENDS = "go-native" - -PN = "go-cross-${TUNE_PKGARCH}" - -export GOCACHE = "${B}/.cache" -CC = "${@d.getVar('BUILD_CC').strip()}" - -do_configure[noexec] = "1" - -do_compile() { - export CC_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" - export CXX_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" - cd src - ./make.bash --host-only --no-banner - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" - -make_wrapper() { - rm -f ${D}${bindir}/$2 - cat <${D}${bindir}/$2 -#!/bin/bash -here=\`dirname \$0\` -export GOARCH="${TARGET_GOARCH}" -export GOOS="${TARGET_GOOS}" -export GOARM="\${GOARM:-${TARGET_GOARM}}" -export GO386="\${GO386:-${TARGET_GO386}}" -export GOMIPS="\${GOMIPS:-${TARGET_GOMIPS}}" -\$here/../../lib/${CROSS_TARGET_SYS_DIR}/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ - install -d ${D}${libdir}/go/src - (cd ${S}/src; for d in *; do \ - [ ! -d $d ] || cp --preserve=mode,timestamps -R ${S}/src/$d ${D}${libdir}/go/src/; \ - done) - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - install -d ${D}${bindir} ${D}${libdir}/go/bin - for f in ${B}/bin/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base ${TARGET_PREFIX}$base - done -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross_1.20.1.bb deleted file mode 100644 index 80b5a03f..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-cross_1.20.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross.inc -require go-${PV}.inc diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk.inc deleted file mode 100644 index 76693867..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk.inc +++ /dev/null @@ -1,44 +0,0 @@ -inherit crosssdk - -DEPENDS = "go-native virtual/${TARGET_PREFIX}gcc-crosssdk virtual/nativesdk-${TARGET_PREFIX}compilerlibs virtual/${TARGET_PREFIX}binutils-crosssdk" -PN = "go-crosssdk-${SDK_SYS}" -PROVIDES = "virtual/${TARGET_PREFIX}go-crosssdk" - -export GOCACHE = "${B}/.cache" - -do_configure[noexec] = "1" - -do_compile() { - export CC_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}" - export CXX_FOR_${TARGET_GOTUPLE}="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}${SDKPATHNATIVE}" - cd src - ./make.bash --host-only --no-banner - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" - -make_wrapper() { - rm -f ${D}${bindir}/$2 - cat <${D}${bindir}/$2 -#!/bin/bash -here=\`dirname \$0\` -export GOARCH="${TARGET_GOARCH}" -export GOOS="${TARGET_GOOS}" -\$here/../../lib/${CROSS_TARGET_SYS_DIR}/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go - install -d ${D}${libdir}/go/bin - install -d ${D}${libdir}/go/pkg/tool - install -d ${D}${bindir} - cp --preserve=mode,timestamps -R ${S}/pkg/tool/${BUILD_GOTUPLE} ${D}${libdir}/go/pkg/tool/ - for f in ${B}/bin/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base ${TARGET_PREFIX}$base - done -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk_1.20.1.bb deleted file mode 100644 index 1857c8a5..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-crosssdk_1.20.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-crosssdk.inc -require go-${PV}.inc diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-native_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-native_1.20.1.bb deleted file mode 100644 index ddf25b2c..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-native_1.20.1.bb +++ /dev/null @@ -1,58 +0,0 @@ -# This recipe builds a native Go (written in Go) by first building an old Go 1.4 -# (written in C). However this old Go does not support all hosts platforms. - -require go-${PV}.inc - -inherit native - -SRC_URI += "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" -SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" - -export GOOS = "${BUILD_GOOS}" -export GOARCH = "${BUILD_GOARCH}" -CC = "${@d.getVar('BUILD_CC').strip()}" - -GOMAKEARGS ?= "--no-banner" - -do_configure() { - cd ${WORKDIR}/go1.4/go/src - CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash -} - -do_compile() { - export GOROOT_FINAL="${libdir_native}/go" - export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" - - cd src - ./make.bash ${GOMAKEARGS} - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin" - -make_wrapper() { - rm -f ${D}${bindir}/$2$3 - cat <${D}${bindir}/$2$3 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ - install -d ${D}${libdir}/go/src - (cd ${S}/src; for d in *; do \ - [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ - done) - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - install -d ${D}${bindir} ${D}${libdir}/go/bin - for f in ${B}/bin/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base $base - done -} diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime.inc deleted file mode 100644 index 02601f79..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime.inc +++ /dev/null @@ -1,94 +0,0 @@ -DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native" -DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk" -PROVIDES = "virtual/${TARGET_PREFIX}go-runtime" - -DEBUG_PREFIX_MAP = "\ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ -" - -export CGO_CFLAGS = "${CFLAGS}" -export CGO_CPPFLAGS = "${CPPFLAGS}" -export CGO_CXXFLAGS = "${CXXFLAGS}" -# Filter out -fdebug-prefix-map options as they clash with the GO's build system -export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }" -export GOCACHE = "${B}/.cache" - -GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}" -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags '${GO_EXTLDFLAGS}'"' - -do_configure() { - : -} - -do_configure:libc-musl() { - rm -f ${S}/src/runtime/race/*.syso -} - -do_compile() { - export CC_FOR_${TARGET_GOTUPLE}="${CC}" - export CXX_FOR_${TARGET_GOTUPLE}="${CXX}" - - cd src - ./make.bash --target-only --no-banner std - if [ -n "${GO_DYNLINK}" ]; then - export GOTOOLDIR="${B}/pkg/tool/native_native" - CC="$CC_FOR_${TARGET_GOTUPLE}" GOARCH="${TARGET_GOARCH}" GOOS="${TARGET_GOOS}" GOROOT=${B} \ - $GOTOOLDIR/go_bootstrap install -linkshared -buildmode=shared ${GO_SHLIB_LDFLAGS} std - fi - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" - -do_install() { - install -d ${D}${libdir}/go/src - cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ - if [ "${BUILD_GOTUPLE}" != "${TARGET_GOTUPLE}" ]; then - rm -rf ${D}${libdir}/go/pkg/${BUILD_GOTUPLE} - rm -rf ${D}${libdir}/go/pkg/obj/${BUILD_GOTUPLE} - fi - rm -rf ${D}${libdir}/go/pkg/tool - rm -rf ${D}${libdir}/go/pkg/obj - rm -rf ${D}${libdir}/go/pkg/bootstrap - # the cmd directory is built for the native arch so if BUILD == TARGET - rm -rf ${D}${libdir}/go/pkg/${BUILD_GOTUPLE}/cmd - find src -mindepth 1 -maxdepth 1 -type d | while read srcdir; do - cp --preserve=mode,timestamps -R $srcdir ${D}${libdir}/go/src/ - done - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - rm -f ${D}${libdir}/go/src/cmd/dist/dist - rm -f ${D}${libdir}/go/src/cmd/cgo/zdefaultcc.go - rm -f ${D}${libdir}/go/src/cmd/go/internal/cfg/zdefaultcc.go - -} - -ALLOW_EMPTY:${PN} = "1" -FILES:${PN} = "${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*${SOLIBSDEV}" -FILES:${PN}-dev = "${libdir}/go/src ${libdir}/go/pkg/include \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*/*/*.shlibname \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*/*.a \ - ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink/*/*/*/*/*/*/*.a \ -" -FILES:${PN}-staticdev = "${libdir}/go/pkg/${TARGET_GOTUPLE}" - -# Go sources include some scripts and pre-built binaries for -# multiple architectures. The static .a files for dynamically-linked -# runtime are also required in -dev. -INSANE_SKIP:${PN}-dev = "staticdev file-rdeps arch" - -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" -INHIBIT_SYSROOT_STRIP = "1" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime_1.20.1.bb deleted file mode 100644 index 63464a15..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-runtime_1.20.1.bb +++ /dev/null @@ -1,3 +0,0 @@ -require go-${PV}.inc -require go-runtime.inc - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go-target.inc b/meta-leda-backports/recipes-devtools/go-1.20.1/go-target.inc deleted file mode 100644 index ed09cfe8..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go-target.inc +++ /dev/null @@ -1,55 +0,0 @@ -DEPENDS = "virtual/${TUNE_PKGARCH}-go go-native" -DEPENDS:class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native" - -DEBUG_PREFIX_MAP = "\ - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ -" - -export CGO_CFLAGS = "${CFLAGS}" -export CGO_CPPFLAGS = "${CPPFLAGS}" -export CGO_CXXFLAGS = "${CXXFLAGS}" -# Filter out -fdebug-prefix-map options as they clash with the GO's build system -export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-prefix-map'), d.getVar('LDFLAGS').split())) }" - -export GOCACHE = "${B}/.cache" -GO_LDFLAGS = "" -GO_LDFLAGS:class-nativesdk = " -linkmode external" -export GO_LDFLAGS -export GOBUILDFLAGS = "-gcflags=-trimpath=$GOPATH -asmflags=-trimpath=$GOPATH -trimpath" -CC:append:class-nativesdk = " ${SECURITY_NOPIE_CFLAGS}" - -do_configure[noexec] = "1" - -do_compile() { - export CC_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CC}" - export CXX_FOR_${TARGET_GOOS}_${TARGET_GOARCH}="${CXX}" - - cd src - ./make.bash --target-only --no-banner - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin ${B}/pkg" - -do_install() { - install -d ${D}${libdir}/go/pkg/tool - cp --preserve=mode,timestamps -R ${B}/pkg/tool/${TARGET_GOTUPLE} ${D}${libdir}/go/pkg/tool/ - install -d ${D}${libdir}/go/src - cp --preserve=mode,timestamps -R ${S}/src/cmd ${D}${libdir}/go/src/ - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - install -d ${D}${libdir}/go/bin - install -d ${D}${bindir} - for f in ${B}/${GO_BUILD_BINDIR}/*; do - name=`basename $f` - install -m 0755 $f ${D}${libdir}/go/bin/ - ln -sf ../${baselib}/go/bin/$name ${D}${bindir}/ - done - rm -rf ${D}${libdir}/go/src -} - -PACKAGES = "${PN} ${PN}-dev" -FILES:${PN} = "${libdir}/go/bin ${libdir}/go/pkg/tool/${TARGET_GOTUPLE} ${bindir}" -RDEPENDS:${PN} = "go-runtime" -INSANE_SKIP:${PN} = "ldflags" - -BBCLASSEXTEND = "nativesdk" diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch deleted file mode 100644 index 56487e34..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 10766ca6f4007b96e3f6bf4fb496e5df74397eb9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 28 Mar 2022 10:59:03 -0700 -Subject: [PATCH 1/9] cmd/go: make content-based hash generation less pedantic - -Go 1.10's build tool now uses content-based hashes to -determine when something should be built or re-built. -This same mechanism is used to maintain a built-artifact -cache for speeding up builds. - -However, the hashes it generates include information that -doesn't work well with OE, nor with using a shared runtime -library. - -First, it embeds path names to source files, unless -building within GOROOT. This prevents the building -of a package in GOPATH for later staging into GOROOT. - -This patch adds support for the environment variable -GOPATH_OMIT_IN_ACTIONID. If present, path name -embedding is disabled. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Alex Kube -Signed-off-by: Matt Madison -Signed-off-by: Khem Raj ---- - src/cmd/go/internal/envcmd/env.go | 2 +- - src/cmd/go/internal/work/exec.go | 44 ++++++++++++++++++++++++------- - 2 files changed, 36 insertions(+), 10 deletions(-) - -diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go -index 66ef5ce..fb7448a 100644 ---- a/src/cmd/go/internal/envcmd/env.go -+++ b/src/cmd/go/internal/envcmd/env.go -@@ -183,7 +183,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar { - } - }() - -- cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}) -+ cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false) - if err != nil { - // Should not happen - b.CFlags was given an empty package. - fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err) -diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go -index d6fa847..7e4fcb3 100644 ---- a/src/cmd/go/internal/work/exec.go -+++ b/src/cmd/go/internal/work/exec.go -@@ -223,6 +223,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) { - writeActionGraph() - } - -+var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != "" -+ - // buildActionID computes the action ID for a build action. - func (b *Builder) buildActionID(a *Action) cache.ActionID { - p := a.Package -@@ -244,7 +246,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { - if p.Module != nil { - fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version) - } -- } else if p.Goroot { -+ } else if p.Goroot || omitGopath { - // The Go compiler always hides the exact value of $GOROOT - // when building things in GOROOT. - // -@@ -276,9 +278,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { - } - if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 { - fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo")) -- cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p) -+ cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true) - -- ccExe := b.ccExe() -+ ccExe := filterCompilerFlags(b.ccExe(), true) - fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags) - // Include the C compiler tool ID so that if the C - // compiler changes we rebuild the package. -@@ -286,14 +288,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { - fmt.Fprintf(h, "CC ID=%q\n", ccID) - } - if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 { -- cxxExe := b.cxxExe() -+ cxxExe := filterCompilerFlags(b.cxxExe(), true) - fmt.Fprintf(h, "CXX=%q %q\n", cxxExe, cxxflags) - if cxxID, _, err := b.gccToolID(cxxExe[0], "c++"); err == nil { - fmt.Fprintf(h, "CXX ID=%q\n", cxxID) - } - } - if len(p.FFiles) > 0 { -- fcExe := b.fcExe() -+ fcExe := filterCompilerFlags(b.fcExe(), true) - fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags) - if fcID, _, err := b.gccToolID(fcExe[0], "f95"); err == nil { - fmt.Fprintf(h, "FC ID=%q\n", fcID) -@@ -310,7 +312,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID { - } - } - if p.Internal.BuildInfo != "" { -- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo) -+ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo) - } - - // Configuration specific to compiler toolchain. -@@ -2970,8 +2972,25 @@ func envList(key, def string) []string { - return args - } - -+var filterFlags = os.Getenv("CGO_PEDANTIC") == "" -+ -+func filterCompilerFlags(flags []string, keepfirst bool) []string { -+ var newflags []string -+ var realkeepfirst bool = keepfirst -+ if !filterFlags { -+ return flags -+ } -+ for _, flag := range flags { -+ if strings.HasPrefix(flag, "-m") || realkeepfirst { -+ newflags = append(newflags, flag) -+ realkeepfirst = false -+ } -+ } -+ return newflags -+} -+ - // CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo. --func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) { -+func (b *Builder) CFlags(p *load.Package, filtered bool) (cppflags, cflags, cxxflags, fflags, ldflags []string, err error) { - if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil { - return - } -@@ -2987,6 +3006,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l - if ldflags, err = buildFlags("LDFLAGS", defaultCFlags, p.CgoLDFLAGS, checkLinkerFlags); err != nil { - return - } -+ if filtered { -+ cppflags = filterCompilerFlags(cppflags, false) -+ cflags = filterCompilerFlags(cflags, false) -+ cxxflags = filterCompilerFlags(cxxflags, false) -+ fflags = filterCompilerFlags(fflags, false) -+ ldflags = filterCompilerFlags(ldflags, false) -+ } - - return - } -@@ -3002,7 +3028,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`) - - func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) { - p := a.Package -- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p) -+ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false) - if err != nil { - return nil, nil, err - } -@@ -3510,7 +3536,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) { - - // Run SWIG on one SWIG input file. - func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) { -- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p) -+ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false) - if err != nil { - return "", "", err - } --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch deleted file mode 100644 index 6abd4247..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 5cca2fa5997292a87302bdc7e7ed3231371e98bd Mon Sep 17 00:00:00 2001 -From: Alex Kube -Date: Wed, 23 Oct 2019 21:15:37 +0430 -Subject: [PATCH 2/9] cmd/go: Allow GOTOOLDIR to be overridden in the - environment - -to allow for split host/target build roots - -Adapted to Go 1.13 from patches originally submitted to -the meta/recipes-devtools/go tree by -Matt Madison . - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Alexander J Kube ---- - src/cmd/dist/build.go | 4 +++- - src/cmd/go/internal/cfg/cfg.go | 6 +++++- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go -index c36a12e..5d31718 100644 ---- a/src/cmd/dist/build.go -+++ b/src/cmd/dist/build.go -@@ -264,7 +264,9 @@ func xinit() { - } - xatexit(rmworkdir) - -- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) -+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { -+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) -+ } - } - - // compilerEnv returns a map from "goos/goarch" to the -diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go -index 3257140..bb46253 100644 ---- a/src/cmd/go/internal/cfg/cfg.go -+++ b/src/cmd/go/internal/cfg/cfg.go -@@ -229,7 +229,11 @@ func SetGOROOT(goroot string, isTestGo bool) { - // This matches the initialization of ToolDir in go/build, except for - // using ctxt.GOROOT and the installed GOOS and GOARCH rather than the - // GOROOT, GOOS, and GOARCH reported by the runtime package. -- build.ToolDir = filepath.Join(GOROOTpkg, "tool", installedGOOS+"_"+installedGOARCH) -+ if s := os.Getenv("GOTOOLDIR"); s != "" { -+ build.ToolDir = filepath.Clean(s) -+ } else { -+ build.ToolDir = filepath.Join(GOROOTpkg, "tool", installedGOOS+"_"+installedGOARCH) -+ } - } - } - } --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0003-ld-add-soname-to-shareable-objects.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0003-ld-add-soname-to-shareable-objects.patch deleted file mode 100644 index 2bc7d194..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0003-ld-add-soname-to-shareable-objects.patch +++ /dev/null @@ -1,50 +0,0 @@ -From c7536a820f713013ab1d4acef74a4c8bd970bf8f Mon Sep 17 00:00:00 2001 -From: Alex Kube -Date: Wed, 23 Oct 2019 21:16:32 +0430 -Subject: [PATCH 3/9] ld: add soname to shareable objects - -so that OE's shared library dependency handling -can find them. - -Adapted to Go 1.13 from patches originally submitted to -the meta/recipes-devtools/go tree by -Matt Madison . - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Alexander J Kube ---- - src/cmd/link/internal/ld/lib.go | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go -index c073017..e60d39a 100644 ---- a/src/cmd/link/internal/ld/lib.go -+++ b/src/cmd/link/internal/ld/lib.go -@@ -1491,6 +1491,7 @@ func (ctxt *Link) hostlink() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - if ctxt.HeadType == objabi.Hwindows { - argv = addASLRargs(argv, *flagAslr) - } else { -@@ -1506,6 +1507,7 @@ func (ctxt *Link) hostlink() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - case BuildModePlugin: - if ctxt.HeadType == objabi.Hdarwin { - argv = append(argv, "-dynamiclib") -@@ -1514,6 +1516,7 @@ func (ctxt *Link) hostlink() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - } - } - --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch deleted file mode 100644 index 85e42f76..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 31ff609cc3d3bfcc2f2257fda1dbaafaec31eb0b Mon Sep 17 00:00:00 2001 -From: Alex Kube -Date: Wed, 23 Oct 2019 21:17:16 +0430 -Subject: [PATCH 4/9] make.bash: override CC when building dist and - go_bootstrap - -for handling OE cross-canadian builds. - -Adapted to Go 1.13 from patches originally submitted to -the meta/recipes-devtools/go tree by -Matt Madison . - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Alexander J Kube ---- - src/make.bash | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/make.bash b/src/make.bash -index c07f39b..6ca7242 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -194,7 +194,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then - exit 1 - fi - rm -f cmd/dist/dist --GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist -+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist - - # -e doesn't propagate out of eval, so check success by hand. - eval $(./cmd/dist/dist env -p || echo FAIL=true) -@@ -219,7 +219,7 @@ fi - # Run dist bootstrap to complete make.bash. - # Bootstrap installs a proper cmd/dist, built with the new toolchain. - # Throw ours, built with the bootstrap toolchain, away after bootstrap. --./cmd/dist/dist bootstrap -a $vflag $GO_DISTFLAGS "$@" -+CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap -a $vflag $GO_DISTFLAGS "$@" - rm -f ./cmd/dist/dist - - # DO NOT ADD ANY NEW CODE HERE. --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0005-cmd-dist-separate-host-and-target-builds.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0005-cmd-dist-separate-host-and-target-builds.patch deleted file mode 100644 index 29598449..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0005-cmd-dist-separate-host-and-target-builds.patch +++ /dev/null @@ -1,282 +0,0 @@ -From 7a191e5191c8b813e929caedb3f3918bb08692a1 Mon Sep 17 00:00:00 2001 -From: Alex Kube -Date: Wed, 23 Oct 2019 21:18:12 +0430 -Subject: [PATCH 5/9] cmd/dist: separate host and target builds - -Upstream-Status: Inappropriate [OE specific] - -Change the dist tool to allow for OE-style cross- -and cross-canadian builds: - - - command flags --host-only and --target only are added; - if one is present, the other changes mentioned below - take effect, and arguments may also be specified on - the command line to enumerate the package(s) to be - built. - - - for OE cross builds, go_bootstrap is always built for - the current build host, and is moved, along with the supporting - toolchain (asm, compile, etc.) to a separate 'native_native' - directory under GOROOT/pkg/tool. - - - go_bootstrap is not automatically removed after the build, - so it can be reused later (e.g., building both static and - shared runtime). - -Note that for --host-only builds, it would be nice to specify -just the "cmd" package to build only the go commands/tools, -the staleness checks in the dist tool will fail if the "std" -library has not also been built. So host-only builds have to -build everything anyway. - -Adapted to Go 1.13 from patches originally submitted to -the meta/recipes-devtools/go tree by -Matt Madison . - -Signed-off-by: Alexander J Kube ---- - src/cmd/dist/build.go | 152 +++++++++++++++++++++++++++++++----------- - 1 file changed, 113 insertions(+), 39 deletions(-) - -diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go -index 5d31718..1c7f308 100644 ---- a/src/cmd/dist/build.go -+++ b/src/cmd/dist/build.go -@@ -44,6 +44,7 @@ var ( - goexperiment string - workdir string - tooldir string -+ build_tooldir string - oldgoos string - oldgoarch string - exe string -@@ -55,6 +56,7 @@ var ( - rebuildall bool - defaultclang bool - noOpt bool -+ crossBuild bool - - vflag int // verbosity - ) -@@ -267,6 +269,8 @@ func xinit() { - if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" { - tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) - } -+ -+ build_tooldir = pathf("%s/pkg/tool/native_native", goroot) - } - - // compilerEnv returns a map from "goos/goarch" to the -@@ -468,8 +472,10 @@ func setup() { - goosGoarch := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch) - if rebuildall { - xremoveall(goosGoarch) -+ xremoveall(build_tooldir) - } - xmkdirall(goosGoarch) -+ xmkdirall(build_tooldir) - xatexit(func() { - if files := xreaddir(goosGoarch); len(files) == 0 { - xremove(goosGoarch) -@@ -1276,17 +1282,35 @@ func cmdbootstrap() { - - var noBanner, noClean bool - var debug bool -+ var hostOnly bool -+ var targetOnly bool -+ var toBuild = []string{"std", "cmd"} -+ - flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all") - flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process") - flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner") - flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning") -+ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target") -+ flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host") - -- xflagparse(0) -+ xflagparse(-1) - - if noClean { - xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n") - } - -+ if hostOnly && targetOnly { -+ fatalf("specify only one of --host-only or --target-only\n") -+ } -+ crossBuild = hostOnly || targetOnly -+ if flag.NArg() > 0 { -+ if crossBuild { -+ toBuild = flag.Args() -+ } else { -+ fatalf("package names not permitted without --host-only or --target-only\n") -+ } -+ } -+ - // Set GOPATH to an internal directory. We shouldn't actually - // need to store files here, since the toolchain won't - // depend on modules outside of vendor directories, but if -@@ -1354,9 +1378,14 @@ func cmdbootstrap() { - xprintf("\n") - } - -- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now -- setNoOpt() -- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now -+ // For split host/target cross/cross-canadian builds, we don't -+ // want to be setting these flags until after we have compiled -+ // the toolchain that runs on the build host. -+ if !crossBuild { -+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now -+ setNoOpt() -+ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now -+ } - goBootstrap := pathf("%s/go_bootstrap", tooldir) - cmdGo := pathf("%s/go", gorootBin) - if debug { -@@ -1385,7 +1414,11 @@ func cmdbootstrap() { - xprintf("\n") - } - xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n") -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ if crossBuild { -+ os.Setenv("CC", defaultcc[""]) -+ } else { -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ } - // Now that cmd/go is in charge of the build process, enable GOEXPERIMENT. - os.Setenv("GOEXPERIMENT", goexperiment) - goInstall(goBootstrap, toolchain...) -@@ -1421,46 +1454,84 @@ func cmdbootstrap() { - copyfile(pathf("%s/compile3", tooldir), pathf("%s/compile", tooldir), writeExec) - } - -- if goos == oldgoos && goarch == oldgoarch { -- // Common case - not setting up for cross-compilation. -- timelog("build", "toolchain") -- if vflag > 0 { -- xprintf("\n") -+ if crossBuild { -+ gogcflags = os.Getenv("GO_GCFLAGS") -+ goldflags = os.Getenv("GO_LDFLAGS") -+ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir)) -+ for _, f := range tool_files { -+ copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec) -+ xremove(f) -+ } -+ os.Setenv("GOTOOLDIR", build_tooldir) -+ goBootstrap = pathf("%s/go_bootstrap", build_tooldir) -+ if hostOnly { -+ timelog("build", "host toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) -+ goInstall(goBootstrap, toBuild...) -+ checkNotStale(goBootstrap, toBuild...) -+ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary -+ -+ timelog("build", "target toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ } else if targetOnly { -+ goos = oldgoos -+ goarch = oldgoarch -+ os.Setenv("GOOS", goos) -+ os.Setenv("GOARCH", goarch) -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) -+ goInstall(goBootstrap, toBuild...) -+ checkNotStale(goBootstrap, toBuild...) -+ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary - } -- xprintf("Building packages and commands for %s/%s.\n", goos, goarch) - } else { -- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. -- // Finish GOHOSTOS/GOHOSTARCH installation and then -- // run GOOS/GOARCH installation. -- timelog("build", "host toolchain") -- if vflag > 0 { -- xprintf("\n") -+ -+ if goos == oldgoos && goarch == oldgoarch { -+ // Common case - not setting up for cross-compilation. -+ timelog("build", "toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building packages and commands for %s/%s.\n", goos, goarch) -+ } else { -+ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. -+ // Finish GOHOSTOS/GOHOSTARCH installation and then -+ // run GOOS/GOARCH installation. -+ timelog("build", "host toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) -+ goInstall(goBootstrap, "std", "cmd") -+ checkNotStale(goBootstrap, "std", "cmd") -+ checkNotStale(cmdGo, "std", "cmd") -+ -+ timelog("build", "target toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ goos = oldgoos -+ goarch = oldgoarch -+ os.Setenv("GOOS", goos) -+ os.Setenv("GOARCH", goarch) -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) - } -- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) - goInstall(goBootstrap, "std", "cmd") - checkNotStale(goBootstrap, "std", "cmd") - checkNotStale(cmdGo, "std", "cmd") - -- timelog("build", "target toolchain") -- if vflag > 0 { -- xprintf("\n") -+ if debug { -+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") -+ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) -+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) -+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) - } -- goos = oldgoos -- goarch = oldgoarch -- os.Setenv("GOOS", goos) -- os.Setenv("GOARCH", goarch) -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) -- } -- targets := []string{"std", "cmd"} -- goInstall(goBootstrap, targets...) -- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) -- checkNotStale(goBootstrap, targets...) -- checkNotStale(cmdGo, targets...) -- if debug { -- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") -- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) -- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) - } - - // Check that there are no new files in $GOROOT/bin other than -@@ -1477,8 +1548,11 @@ func cmdbootstrap() { - } - } - -- // Remove go_bootstrap now that we're done. -- xremove(pathf("%s/go_bootstrap", tooldir)) -+ // Except that for split host/target cross-builds, we need to -+ // keep it. -+ if !crossBuild { -+ xremove(pathf("%s/go_bootstrap", tooldir)) -+ } - - if goos == "android" { - // Make sure the exec wrapper will sync a fresh $GOROOT to the device. --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0006-cmd-go-make-GOROOT-precious-by-default.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0006-cmd-go-make-GOROOT-precious-by-default.patch deleted file mode 100644 index 38b28b98..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0006-cmd-go-make-GOROOT-precious-by-default.patch +++ /dev/null @@ -1,113 +0,0 @@ -From efab470498bb0a30ee2d00455a0c8c10459f6347 Mon Sep 17 00:00:00 2001 -From: Alex Kube -Date: Wed, 23 Oct 2019 21:18:56 +0430 -Subject: [PATCH 6/9] cmd/go: make GOROOT precious by default - -Upstream-Status: Inappropriate [OE specific] - -The go build tool normally rebuilds whatever it detects is -stale. This can be a problem when GOROOT is intended to -be read-only and the go runtime has been built as a shared -library, since we don't want every application to be rebuilding -the shared runtime - particularly in cross-build/packaging -setups, since that would lead to 'abi mismatch' runtime errors. - -This patch prevents the install and linkshared actions from -installing to GOROOT unless overridden with the GOROOT_OVERRIDE -environment variable. - -Adapted to Go 1.13 from patches originally submitted to -the meta/recipes-devtools/go tree by -Matt Madison . - -Signed-off-by: Alexander J Kube ---- - src/cmd/go/internal/work/action.go | 3 +++ - src/cmd/go/internal/work/build.go | 6 ++++++ - src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++ - 3 files changed, 34 insertions(+) - -diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go -index 8beb134..68a8cfe 100644 ---- a/src/cmd/go/internal/work/action.go -+++ b/src/cmd/go/internal/work/action.go -@@ -718,6 +718,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) { - if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] { - continue - } -+ if goRootPrecious && (p1.Standard || p1.Goroot) { -+ continue -+ } - haveShlib[filepath.Base(p1.Shlib)] = true - // TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild, - // we'll end up building an overall library or executable that depends at runtime -diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go -index 2f2860a..8cc6166 100644 ---- a/src/cmd/go/internal/work/build.go -+++ b/src/cmd/go/internal/work/build.go -@@ -217,6 +217,8 @@ See also: go install, go get, go clean. - - const concurrentGCBackendCompilationEnabledByDefault = true - -+var goRootPrecious bool = true -+ - func init() { - // break init cycle - CmdBuild.Run = runBuild -@@ -230,6 +232,10 @@ func init() { - AddCoverFlags(CmdBuild, nil) - AddCoverFlags(CmdInstall, nil) - } -+ -+ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" { -+ goRootPrecious = false -+ } - } - - // Note that flags consulted by other parts of the code -diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go -index 7e4fcb3..d83b31b 100644 ---- a/src/cmd/go/internal/work/exec.go -+++ b/src/cmd/go/internal/work/exec.go -@@ -527,6 +527,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) { - return errors.New("binary-only packages are no longer supported") - } - -+ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) { -+ _, err := os.Stat(a.Package.Target) -+ if err == nil { -+ a.built = a.Package.Target -+ a.Target = a.Package.Target -+ a.buildID = b.fileHash(a.Package.Target) -+ a.Package.Stale = false -+ a.Package.StaleReason = "GOROOT-resident package" -+ return nil -+ } -+ a.Package.Stale = true -+ a.Package.StaleReason = "missing or invalid GOROOT-resident package" -+ if b.IsCmdList { -+ return nil -+ } -+ } -+ - if err := b.Mkdir(a.Objdir); err != nil { - return err - } -@@ -1624,6 +1641,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) { - return err - } - -+ if goRootPrecious && a.Package != nil { -+ p := a.Package -+ if p.Standard || p.Goroot { -+ err := fmt.Errorf("attempting to install package %s into read-only GOROOT", p.ImportPath) -+ return err -+ } -+ } -+ - if err := b.Mkdir(a.Objdir); err != nil { - return err - } --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch deleted file mode 100644 index a821cf02..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0ba747e6a4b251a0d9eed0cfd8f8c491bb508040 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 23 Nov 2020 19:22:04 +0000 -Subject: [PATCH 7/9] exec.go: do not write linker flags into buildids - -The flags can contain build-specific paths, breaking reproducibility. - -To make this acceptable to upstream, we probably need to trim the flags, -removing those known to be buildhost-specific. - -Upstream-Status: Inappropriate [needs upstream discussion] -Signed-off-by: Alexander Kanavin ---- - src/cmd/go/internal/work/exec.go | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go -index d83b31b..a646fbb 100644 ---- a/src/cmd/go/internal/work/exec.go -+++ b/src/cmd/go/internal/work/exec.go -@@ -1312,7 +1312,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID { - } - - // Toolchain-dependent configuration, shared with b.linkSharedActionID. -- b.printLinkerConfig(h, p) -+ //b.printLinkerConfig(h, p) - - // Input files. - for _, a1 := range a.Deps { -@@ -1607,7 +1607,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID { - fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch) - - // Toolchain-dependent configuration, shared with b.linkActionID. -- b.printLinkerConfig(h, nil) -+ //b.printLinkerConfig(h, nil) - - // Input files. - for _, a1 := range a.Deps { --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch deleted file mode 100644 index fe830ce3..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1cbb416538a9c7c3fbedcb23f4d90d5c48becca8 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 10 Nov 2020 16:33:27 +0000 -Subject: [PATCH 8/9] src/cmd/dist/buildgo.go: do not hardcode host compilers - into target binaries - -These come from $CC/$CXX on the build host and are not useful on targets; -additionally as they contain host specific paths, this helps reproducibility. - -Upstream-Status: Inappropriate [needs upstream discussion] -Signed-off-by: Alexander Kanavin ---- - src/cmd/dist/buildgo.go | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go -index 29b0167..63a49f0 100644 ---- a/src/cmd/dist/buildgo.go -+++ b/src/cmd/dist/buildgo.go -@@ -33,8 +33,8 @@ func mkzdefaultcc(dir, file string) { - fmt.Fprintf(&buf, "package cfg\n") - fmt.Fprintln(&buf) - fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig) -- buf.WriteString(defaultCCFunc("DefaultCC", defaultcc)) -- buf.WriteString(defaultCCFunc("DefaultCXX", defaultcxx)) -+ buf.WriteString(defaultCCFunc("DefaultCC", map[string]string{"":"gcc"})) -+ buf.WriteString(defaultCCFunc("DefaultCXX", map[string]string{"":"g++"})) - writefile(buf.String(), file, writeSkipSame) - return - } -@@ -45,8 +45,8 @@ func mkzdefaultcc(dir, file string) { - fmt.Fprintf(&buf, "package main\n") - fmt.Fprintln(&buf) - fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig) -- buf.WriteString(defaultCCFunc("defaultCC", defaultcc)) -- buf.WriteString(defaultCCFunc("defaultCXX", defaultcxx)) -+ buf.WriteString(defaultCCFunc("defaultCC", map[string]string{"":"gcc"})) -+ buf.WriteString(defaultCCFunc("defaultCXX", map[string]string{"":"g++"})) - writefile(buf.String(), file, writeSkipSame) - } - --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch deleted file mode 100644 index 705c9221..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Sat, 2 Jul 2022 23:08:13 +0100 -Subject: [PATCH 9/9] go: Filter build paths on staticly linked arches - -Filter out build time paths from ldflags and other flags variables when they're -embedded in the go binary so that builds are reproducible regardless of build -location. This codepath is hit for statically linked go binaries such as those -on mips/ppc. - -Upstream-Status: Submitted [https://github.com/golang/go/pull/56410] - -Signed-off-by: Richard Purdie ---- - src/cmd/go/internal/load/pkg.go | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go -index 56a4e5e..22edbdb 100644 ---- a/src/cmd/go/internal/load/pkg.go -+++ b/src/cmd/go/internal/load/pkg.go -@@ -2266,6 +2266,17 @@ func (p *Package) collectDeps() { - // to their VCS information (vcsStatusError). - var vcsStatusCache par.Cache - -+func filterCompilerFlags(flags string) string { -+ var newflags []string -+ for _, flag := range strings.Fields(flags) { -+ if strings.HasPrefix(flag, "--sysroot") || strings.HasPrefix(flag, "-fmacro-prefix-map") || strings.HasPrefix(flag, "-fdebug-prefix-map") { -+ continue -+ } -+ newflags = append(newflags, flag) -+ } -+ return strings.Join(newflags, " ") -+} -+ - // setBuildInfo gathers build information, formats it as a string to be - // embedded in the binary, then sets p.Internal.BuildInfo to that string. - // setBuildInfo should only be called on a main package with no errors. -@@ -2372,7 +2383,7 @@ func (p *Package) setBuildInfo(autoVCS bool) { - if gcflags := BuildGcflags.String(); gcflags != "" && cfg.BuildContext.Compiler == "gc" { - appendSetting("-gcflags", gcflags) - } -- if ldflags := BuildLdflags.String(); ldflags != "" { -+ if ldflags := filterCompilerFlags(BuildLdflags.String()); ldflags != "" { - // https://go.dev/issue/52372: only include ldflags if -trimpath is not set, - // since it can include system paths through various linker flags (notably - // -extar, -extld, and -extldflags). -@@ -2418,7 +2429,7 @@ func (p *Package) setBuildInfo(autoVCS bool) { - // subset of flags that are known not to be paths? - if cfg.BuildContext.CgoEnabled && !cfg.BuildTrimpath { - for _, name := range []string{"CGO_CFLAGS", "CGO_CPPFLAGS", "CGO_CXXFLAGS", "CGO_LDFLAGS"} { -- appendSetting(name, cfg.Getenv(name)) -+ appendSetting(name, filterCompilerFlags(cfg.Getenv(name))) - } - } - appendSetting("GOARCH", cfg.BuildContext.GOARCH) --- -2.30.2 - diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0010-cmd-compile-re-compile-instantiated-generic-methods-.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/0010-cmd-compile-re-compile-instantiated-generic-methods-.patch deleted file mode 100644 index f9ac2024..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/0010-cmd-compile-re-compile-instantiated-generic-methods-.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 7a3bb16b43efba73674629eae4369f9004e37f22 Mon Sep 17 00:00:00 2001 -From: Cuong Manh Le -Date: Sat, 18 Mar 2023 00:53:07 +0700 -Subject: [PATCH] cmd/compile: re-compile instantiated generic methods in - linkshared mode - -For G[T] that was seen and compiled in imported package, it is not added -to typecheck.Target.Decls, prevent wasting compile time re-creating -DUPOKS symbols. However, the linker do not support a type symbol -referencing a method symbol across DSO boundary. That causes unreachable -sym error when building under -linkshared mode. - -To fix it, always re-compile generic methods in linkshared mode. - -Fixes #58966 - -Change-Id: I894b417cfe8234ae1fe809cc975889345df22cef -Reviewed-on: https://go-review.googlesource.com/c/go/+/477375 -Run-TryBot: Cuong Manh Le -Reviewed-by: Cherry Mui -Reviewed-by: Matthew Dempsky -TryBot-Result: Gopher Robot - -Upstream-Status: Backport [https://github.com/golang/go/commit/bcd82125f85c7c552493e863fa1bb14e6c444557] - -Signed-off-by: Jose Quaresma ---- - misc/cgo/testshared/shared_test.go | 7 ++++++- - misc/cgo/testshared/testdata/issue58966/main.go | 15 +++++++++++++++ - src/cmd/compile/internal/noder/unified.go | 6 +++++- - 3 files changed, 26 insertions(+), 2 deletions(-) - create mode 100644 misc/cgo/testshared/testdata/issue58966/main.go - -diff --git a/misc/cgo/testshared/shared_test.go b/misc/cgo/testshared/shared_test.go -index b14fb1cb3a..03da8f9435 100644 ---- a/misc/cgo/testshared/shared_test.go -+++ b/misc/cgo/testshared/shared_test.go -@@ -1112,8 +1112,13 @@ func TestStd(t *testing.T) { - t.Skip("skip in short mode") - } - t.Parallel() -+ tmpDir := t.TempDir() - // Use a temporary pkgdir to not interfere with other tests, and not write to GOROOT. - // Cannot use goCmd as it runs with cloned GOROOT which is incomplete. - runWithEnv(t, "building std", []string{"GOROOT=" + oldGOROOT}, -- filepath.Join(oldGOROOT, "bin", "go"), "install", "-buildmode=shared", "-pkgdir="+t.TempDir(), "std") -+ filepath.Join(oldGOROOT, "bin", "go"), "install", "-buildmode=shared", "-pkgdir="+tmpDir, "std") -+ -+ // Issue #58966. -+ runWithEnv(t, "testing issue #58966", []string{"GOROOT=" + oldGOROOT}, -+ filepath.Join(oldGOROOT, "bin", "go"), "run", "-linkshared", "-pkgdir="+tmpDir, "./issue58966/main.go") - } -diff --git a/misc/cgo/testshared/testdata/issue58966/main.go b/misc/cgo/testshared/testdata/issue58966/main.go -new file mode 100644 -index 0000000000..2d923c3607 ---- /dev/null -+++ b/misc/cgo/testshared/testdata/issue58966/main.go -@@ -0,0 +1,15 @@ -+// Copyright 2023 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package main -+ -+import "crypto/elliptic" -+ -+var curve elliptic.Curve -+ -+func main() { -+ switch curve { -+ case elliptic.P224(): -+ } -+} -diff --git a/src/cmd/compile/internal/noder/unified.go b/src/cmd/compile/internal/noder/unified.go -index ed97a09302..25136e6aad 100644 ---- a/src/cmd/compile/internal/noder/unified.go -+++ b/src/cmd/compile/internal/noder/unified.go -@@ -158,7 +158,11 @@ func readBodies(target *ir.Package, duringInlining bool) { - // Instantiated generic function: add to Decls for typechecking - // and compilation. - if fn.OClosure == nil && len(pri.dict.targs) != 0 { -- if duringInlining { -+ // cmd/link does not support a type symbol referencing a method symbol -+ // across DSO boundary, so force re-compiling methods on a generic type -+ // even it was seen from imported package in linkshared mode, see #58966. -+ canSkipNonGenericMethod := !(base.Ctxt.Flag_linkshared && ir.IsMethod(fn)) -+ if duringInlining && canSkipNonGenericMethod { - inlDecls = append(inlDecls, fn) - } else { - target.Decls = append(target.Decls, fn) diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24532.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24532.patch deleted file mode 100644 index 22f080db..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24532.patch +++ /dev/null @@ -1,208 +0,0 @@ -From 602eeaab387f24a4b28c5eccbb50fa934f3bc3c4 Mon Sep 17 00:00:00 2001 -From: Filippo Valsorda -Date: Mon, 13 Feb 2023 15:16:27 +0100 -Subject: [PATCH] [release-branch.go1.20] crypto/internal/nistec: reduce P-256 - scalar - -Unlike the rest of nistec, the P-256 assembly doesn't use complete -addition formulas, meaning that p256PointAdd[Affine]Asm won't return the -correct value if the two inputs are equal. - -This was (undocumentedly) ignored in the scalar multiplication loops -because as long as the input point is not the identity and the scalar is -lower than the order of the group, the addition inputs can't be the same. - -As part of the math/big rewrite, we went however from always reducing -the scalar to only checking its length, under the incorrect assumption -that the scalar multiplication loop didn't require reduction. - -Added a reduction, and while at it added it in P256OrdInverse, too, to -enforce a universal reduction invariant on p256OrdElement values. - -Note that if the input point is the infinity, the code currently still -relies on undefined behavior, but that's easily tested to behave -acceptably, and will be addressed in a future CL. - -Updates #58647 -Fixes #58720 -Fixes CVE-2023-24532 - -(Filed with the "safe APIs like complete addition formulas are good" dept.) - -Change-Id: I7b2c75238440e6852be2710fad66ff1fdc4e2b24 -Reviewed-on: https://go-review.googlesource.com/c/go/+/471255 -TryBot-Result: Gopher Robot -Reviewed-by: Roland Shoemaker -Run-TryBot: Filippo Valsorda -Auto-Submit: Filippo Valsorda -Reviewed-by: Damien Neil -(cherry picked from commit 203e59ad41bd288e1d92b6f617c2f55e70d3c8e3) -Reviewed-on: https://go-review.googlesource.com/c/go/+/471695 -Reviewed-by: Dmitri Shuralyov -Auto-Submit: Dmitri Shuralyov -Reviewed-by: Filippo Valsorda -Run-TryBot: Roland Shoemaker - -CVE: CVE-2023-24532 -Upstream-Status: Backport [602eeaab387f24a4b28c5eccbb50fa934f3bc3c4] -Signed-off-by: Ross Burton - ---- - src/crypto/internal/nistec/nistec_test.go | 81 +++++++++++++++++++++++ - src/crypto/internal/nistec/p256_asm.go | 17 +++++ - src/crypto/internal/nistec/p256_ordinv.go | 1 + - 3 files changed, 99 insertions(+) - -diff --git a/src/crypto/internal/nistec/nistec_test.go b/src/crypto/internal/nistec/nistec_test.go -index 309f68be16a9f..9103608c18a0f 100644 ---- a/src/crypto/internal/nistec/nistec_test.go -+++ b/src/crypto/internal/nistec/nistec_test.go -@@ -8,6 +8,7 @@ import ( - "bytes" - "crypto/elliptic" - "crypto/internal/nistec" -+ "fmt" - "internal/testenv" - "math/big" - "math/rand" -@@ -165,6 +166,86 @@ func testEquivalents[P nistPoint[P]](t *testing.T, newPoint func() P, c elliptic - } - } - -+func TestScalarMult(t *testing.T) { -+ t.Run("P224", func(t *testing.T) { -+ testScalarMult(t, nistec.NewP224Point, elliptic.P224()) -+ }) -+ t.Run("P256", func(t *testing.T) { -+ testScalarMult(t, nistec.NewP256Point, elliptic.P256()) -+ }) -+ t.Run("P384", func(t *testing.T) { -+ testScalarMult(t, nistec.NewP384Point, elliptic.P384()) -+ }) -+ t.Run("P521", func(t *testing.T) { -+ testScalarMult(t, nistec.NewP521Point, elliptic.P521()) -+ }) -+} -+ -+func testScalarMult[P nistPoint[P]](t *testing.T, newPoint func() P, c elliptic.Curve) { -+ G := newPoint().SetGenerator() -+ checkScalar := func(t *testing.T, scalar []byte) { -+ p1, err := newPoint().ScalarBaseMult(scalar) -+ fatalIfErr(t, err) -+ p2, err := newPoint().ScalarMult(G, scalar) -+ fatalIfErr(t, err) -+ if !bytes.Equal(p1.Bytes(), p2.Bytes()) { -+ t.Error("[k]G != ScalarBaseMult(k)") -+ } -+ -+ d := new(big.Int).SetBytes(scalar) -+ d.Sub(c.Params().N, d) -+ d.Mod(d, c.Params().N) -+ g1, err := newPoint().ScalarBaseMult(d.FillBytes(make([]byte, len(scalar)))) -+ fatalIfErr(t, err) -+ g1.Add(g1, p1) -+ if !bytes.Equal(g1.Bytes(), newPoint().Bytes()) { -+ t.Error("[N - k]G + [k]G != ∞") -+ } -+ } -+ -+ byteLen := len(c.Params().N.Bytes()) -+ bitLen := c.Params().N.BitLen() -+ t.Run("0", func(t *testing.T) { checkScalar(t, make([]byte, byteLen)) }) -+ t.Run("1", func(t *testing.T) { -+ checkScalar(t, big.NewInt(1).FillBytes(make([]byte, byteLen))) -+ }) -+ t.Run("N-1", func(t *testing.T) { -+ checkScalar(t, new(big.Int).Sub(c.Params().N, big.NewInt(1)).Bytes()) -+ }) -+ t.Run("N", func(t *testing.T) { checkScalar(t, c.Params().N.Bytes()) }) -+ t.Run("N+1", func(t *testing.T) { -+ checkScalar(t, new(big.Int).Add(c.Params().N, big.NewInt(1)).Bytes()) -+ }) -+ t.Run("all1s", func(t *testing.T) { -+ s := new(big.Int).Lsh(big.NewInt(1), uint(bitLen)) -+ s.Sub(s, big.NewInt(1)) -+ checkScalar(t, s.Bytes()) -+ }) -+ if testing.Short() { -+ return -+ } -+ for i := 0; i < bitLen; i++ { -+ t.Run(fmt.Sprintf("1<<%d", i), func(t *testing.T) { -+ s := new(big.Int).Lsh(big.NewInt(1), uint(i)) -+ checkScalar(t, s.FillBytes(make([]byte, byteLen))) -+ }) -+ } -+ // Test N+1...N+32 since they risk overlapping with precomputed table values -+ // in the final additions. -+ for i := int64(2); i <= 32; i++ { -+ t.Run(fmt.Sprintf("N+%d", i), func(t *testing.T) { -+ checkScalar(t, new(big.Int).Add(c.Params().N, big.NewInt(i)).Bytes()) -+ }) -+ } -+} -+ -+func fatalIfErr(t *testing.T, err error) { -+ t.Helper() -+ if err != nil { -+ t.Fatal(err) -+ } -+} -+ - func BenchmarkScalarMult(b *testing.B) { - b.Run("P224", func(b *testing.B) { - benchmarkScalarMult(b, nistec.NewP224Point().SetGenerator(), 28) -diff --git a/src/crypto/internal/nistec/p256_asm.go b/src/crypto/internal/nistec/p256_asm.go -index 6ea161eb49953..99a22b833f028 100644 ---- a/src/crypto/internal/nistec/p256_asm.go -+++ b/src/crypto/internal/nistec/p256_asm.go -@@ -364,6 +364,21 @@ func p256PointDoubleAsm(res, in *P256Point) - // Montgomery domain (with R 2²⁵⁶) as four uint64 limbs in little-endian order. - type p256OrdElement [4]uint64 - -+// p256OrdReduce ensures s is in the range [0, ord(G)-1]. -+func p256OrdReduce(s *p256OrdElement) { -+ // Since 2 * ord(G) > 2²⁵⁶, we can just conditionally subtract ord(G), -+ // keeping the result if it doesn't underflow. -+ t0, b := bits.Sub64(s[0], 0xf3b9cac2fc632551, 0) -+ t1, b := bits.Sub64(s[1], 0xbce6faada7179e84, b) -+ t2, b := bits.Sub64(s[2], 0xffffffffffffffff, b) -+ t3, b := bits.Sub64(s[3], 0xffffffff00000000, b) -+ tMask := b - 1 // zero if subtraction underflowed -+ s[0] ^= (t0 ^ s[0]) & tMask -+ s[1] ^= (t1 ^ s[1]) & tMask -+ s[2] ^= (t2 ^ s[2]) & tMask -+ s[3] ^= (t3 ^ s[3]) & tMask -+} -+ - // Add sets q = p1 + p2, and returns q. The points may overlap. - func (q *P256Point) Add(r1, r2 *P256Point) *P256Point { - var sum, double P256Point -@@ -393,6 +408,7 @@ func (r *P256Point) ScalarBaseMult(scalar []byte) (*P256Point, error) { - } - scalarReversed := new(p256OrdElement) - p256OrdBigToLittle(scalarReversed, (*[32]byte)(scalar)) -+ p256OrdReduce(scalarReversed) - - r.p256BaseMult(scalarReversed) - return r, nil -@@ -407,6 +423,7 @@ func (r *P256Point) ScalarMult(q *P256Point, scalar []byte) (*P256Point, error) - } - scalarReversed := new(p256OrdElement) - p256OrdBigToLittle(scalarReversed, (*[32]byte)(scalar)) -+ p256OrdReduce(scalarReversed) - - r.Set(q).p256ScalarMult(scalarReversed) - return r, nil -diff --git a/src/crypto/internal/nistec/p256_ordinv.go b/src/crypto/internal/nistec/p256_ordinv.go -index 86a7a230bdce8..1274fb7fd3f5c 100644 ---- a/src/crypto/internal/nistec/p256_ordinv.go -+++ b/src/crypto/internal/nistec/p256_ordinv.go -@@ -25,6 +25,7 @@ func P256OrdInverse(k []byte) ([]byte, error) { - - x := new(p256OrdElement) - p256OrdBigToLittle(x, (*[32]byte)(k)) -+ p256OrdReduce(x) - - // Inversion is implemented as exponentiation by n - 2, per Fermat's little theorem. - // diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24537.patch b/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24537.patch deleted file mode 100644 index 6b5dc2c8..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go/CVE-2023-24537.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 110e4fb1c2e3a21631704bbfaf672230b9ba2492 Mon Sep 17 00:00:00 2001 -From: Damien Neil -Date: Wed, 22 Mar 2023 09:33:22 -0700 -Subject: [PATCH] go/scanner: reject large line and column numbers in //line - directives - -Setting a large line or column number using a //line directive can cause -integer overflow even in small source files. - -Limit line and column numbers in //line directives to 2^30-1, which -is small enough to avoid int32 overflow on all reasonbly-sized files. - -For #59180 -Fixes CVE-2023-24537 - -Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1802456 -Reviewed-by: Julie Qiu -Reviewed-by: Roland Shoemaker -Run-TryBot: Damien Neil -Change-Id: I149bf34deca532af7994203fa1e6aca3c890ea14 -Reviewed-on: https://go-review.googlesource.com/c/go/+/482078 -Reviewed-by: Matthew Dempsky -TryBot-Bypass: Michael Knyszek -Run-TryBot: Michael Knyszek -Auto-Submit: Michael Knyszek - -CVE: CVE-2023-24537 -Upstream-Status: Backport -Signed-off-by: Ross Burton ---- - src/go/parser/parser_test.go | 16 ++++++++++++++++ - src/go/scanner/scanner.go | 7 +++++-- - 2 files changed, 21 insertions(+), 2 deletions(-) - -diff --git a/src/go/parser/parser_test.go b/src/go/parser/parser_test.go -index 153562df75068..22b11a0cc4535 100644 ---- a/src/go/parser/parser_test.go -+++ b/src/go/parser/parser_test.go -@@ -764,3 +764,19 @@ func TestRangePos(t *testing.T) { - }) - } - } -+ -+// TestIssue59180 tests that line number overflow doesn't cause an infinite loop. -+func TestIssue59180(t *testing.T) { -+ testcases := []string{ -+ "package p\n//line :9223372036854775806\n\n//", -+ "package p\n//line :1:9223372036854775806\n\n//", -+ "package p\n//line file:9223372036854775806\n\n//", -+ } -+ -+ for _, src := range testcases { -+ _, err := ParseFile(token.NewFileSet(), "", src, ParseComments) -+ if err == nil { -+ t.Errorf("ParseFile(%s) succeeded unexpectedly", src) -+ } -+ } -+} -diff --git a/src/go/scanner/scanner.go b/src/go/scanner/scanner.go -index 16958d22ce299..0cd9f5901d0bb 100644 ---- a/src/go/scanner/scanner.go -+++ b/src/go/scanner/scanner.go -@@ -253,13 +253,16 @@ func (s *Scanner) updateLineInfo(next, offs int, text []byte) { - return - } - -+ // Put a cap on the maximum size of line and column numbers. -+ // 30 bits allows for some additional space before wrapping an int32. -+ const maxLineCol = 1<<30 - 1 - var line, col int - i2, n2, ok2 := trailingDigits(text[:i-1]) - if ok2 { - //line filename:line:col - i, i2 = i2, i - line, col = n2, n -- if col == 0 { -+ if col == 0 || col > maxLineCol { - s.error(offs+i2, "invalid column number: "+string(text[i2:])) - return - } -@@ -269,7 +272,7 @@ func (s *Scanner) updateLineInfo(next, offs int, text []byte) { - line = n - } - -- if line == 0 { -+ if line == 0 || line > maxLineCol { - s.error(offs+i, "invalid line number: "+string(text[i:])) - return - } diff --git a/meta-leda-backports/recipes-devtools/go-1.20.1/go_1.20.1.bb b/meta-leda-backports/recipes-devtools/go-1.20.1/go_1.20.1.bb deleted file mode 100644 index 587ee559..00000000 --- a/meta-leda-backports/recipes-devtools/go-1.20.1/go_1.20.1.bb +++ /dev/null @@ -1,18 +0,0 @@ -require go-${PV}.inc -require go-target.inc - -inherit linuxloader - -CGO_LDFLAGS:append:mips = " -no-pie" - -export GO_LDSO = "${@get_linuxloader(d)}" -export CC_FOR_TARGET = "gcc" -export CXX_FOR_TARGET = "g++" - -# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv32 and its -# variants. -python() { - if 'mips' in d.getVar('TARGET_ARCH') or 'riscv32' in d.getVar('TARGET_ARCH'): - d.appendVar('INSANE_SKIP:%s' % d.getVar('PN'), " textrel") -} - diff --git a/meta-leda-components/conf/layer.conf b/meta-leda-components/conf/layer.conf index 93ec8b59..65ac8f4d 100644 --- a/meta-leda-components/conf/layer.conf +++ b/meta-leda-components/conf/layer.conf @@ -20,12 +20,12 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBFILES_DYNAMIC += " \ meta-rauc-raspberrypi:${LAYERDIR}/dynamic-layers/raspberry-pi/*.bb \ - meta-rauc-raspberrypi:${LAYERDIR}/dynamic-layers/raspberry-pi/*.bbappend" + meta-rauc-raspberrypi:${LAYERDIR}/dynamic-layers/raspberry-pi/*.bbappend" BBFILE_COLLECTIONS += "meta-leda-components" BBFILE_PATTERN_meta-leda-components := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-leda-components = "7" -LAYERDEPENDS_meta-leda-components += "core rauc clang-layer virtualization-layer meta-leda-backports" +LAYERDEPENDS_meta-leda-components += "core rauc clang-layer virtualization-layer" LAYERSERIES_COMPAT_meta-leda-components = "kirkstone" From 13b4f6c76b64df0d52529dfb8d8cd65fa0cea75c Mon Sep 17 00:00:00 2001 From: Guenther Meyer Date: Tue, 19 Dec 2023 16:09:04 +0100 Subject: [PATCH 2/2] remove the rest of the layer meta-leda-backports - remove llvm from backports layer (the correct version required by meta-clang is already present there.) - add BBMASK to poky llvm to avoid build time warnings Signed-off-by: Guenther Meyer --- .config.yaml | 4 +- kas/.config-components.yaml | 4 +- kas/.config-kirkstone-rpi4.yaml | 4 +- kas/.config-kirkstone.yaml | 4 +- kas/.config-master.yaml | 4 +- meta-leda-backports/conf/layer.conf | 25 --- .../recipes-devtools/COPYING.MIT | 17 -- ...r-sort-ClassInfo-lists-by-name-as-we.patch | 31 ---- ...-llvm-allow-env-override-of-exe-path.patch | 37 ---- .../recipes-devtools/llvm/llvm/llvm-config | 51 ----- .../recipes-devtools/llvm/llvm_git.bb | 174 ------------------ 11 files changed, 15 insertions(+), 340 deletions(-) delete mode 100644 meta-leda-backports/conf/layer.conf delete mode 100644 meta-leda-backports/recipes-devtools/COPYING.MIT delete mode 100644 meta-leda-backports/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch delete mode 100644 meta-leda-backports/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch delete mode 100644 meta-leda-backports/recipes-devtools/llvm/llvm/llvm-config delete mode 100644 meta-leda-backports/recipes-devtools/llvm/llvm_git.bb diff --git a/.config.yaml b/.config.yaml index 0d85d68d..a90a11a7 100644 --- a/.config.yaml +++ b/.config.yaml @@ -41,6 +41,9 @@ local_conf_header: RAUC_CERT_FILE = "${TOPDIR}/../examples/rauc/development-1.cert.pem" RAUC_KEYRING_URI = "file://${TOPDIR}/../examples/rauc/ca.cert.pem" RAUC_KEYRING_FILE = "${TOPDIR}/../examples/rauc/ca.cert.pem" + meta-clang: | + # mask the llvm recipe provided by kirkstone to avoid warnings: + BBMASK += "/poky/meta/recipes-devtools/llvm/" repos: # This entry includes the repository where the config file is located # to the bblayers.conf: @@ -88,7 +91,6 @@ repos: path: ./ layers: meta-leda-bsp: - meta-leda-backports: meta-leda-components: meta-leda-distro: meta-leda-distro-container: diff --git a/kas/.config-components.yaml b/kas/.config-components.yaml index f11e13dd..c43319fc 100644 --- a/kas/.config-components.yaml +++ b/kas/.config-components.yaml @@ -30,6 +30,9 @@ local_conf_header: needed-features: | DISTRO_FEATURES += " sdv rauc virtualization" INHERIT += " rm_work" + meta-clang: | + # mask the llvm recipe provided by kirkstone to avoid warnings: + BBMASK += "/poky/meta/recipes-devtools/llvm/" repos: poky: url: "https://git.yoctoproject.org/git/poky" @@ -67,5 +70,4 @@ repos: meta-leda: path: ./ layers: - meta-leda-backports: meta-leda-components: \ No newline at end of file diff --git a/kas/.config-kirkstone-rpi4.yaml b/kas/.config-kirkstone-rpi4.yaml index 6bd43b77..13c91f5c 100644 --- a/kas/.config-kirkstone-rpi4.yaml +++ b/kas/.config-kirkstone-rpi4.yaml @@ -41,6 +41,9 @@ local_conf_header: RAUC_CERT_FILE = "${COREBASE}/../examples/rauc/development-1.cert.pem" RAUC_KEYRING_URI = "file://${TOPDIR}/../examples/rauc/ca.cert.pem" RAUC_KEYRING_FILE = "${TOPDIR}/../examples/rauc/ca.cert.pem" + meta-clang: | + # mask the llvm recipe provided by kirkstone to avoid warnings: + BBMASK += "/poky/meta/recipes-devtools/llvm/" repos: # This entry includes the repository where the config file is located # to the bblayers.conf: @@ -91,7 +94,6 @@ repos: path: ./ layers: meta-leda-bsp: - meta-leda-backports: meta-leda-components: meta-leda-distro: meta-leda-distro-container: \ No newline at end of file diff --git a/kas/.config-kirkstone.yaml b/kas/.config-kirkstone.yaml index 91404b91..67a45ad2 100644 --- a/kas/.config-kirkstone.yaml +++ b/kas/.config-kirkstone.yaml @@ -41,6 +41,9 @@ local_conf_header: RAUC_CERT_FILE = "${TOPDIR}/../examples/rauc/development-1.cert.pem" RAUC_KEYRING_URI = "file://${TOPDIR}/../examples/rauc/ca.cert.pem" RAUC_KEYRING_FILE = "${TOPDIR}/../examples/rauc/ca.cert.pem" + meta-clang: | + # mask the llvm recipe provided by kirkstone to avoid warnings: + BBMASK += "/poky/meta/recipes-devtools/llvm/" repos: # This entry includes the repository where the config file is located # to the bblayers.conf: @@ -88,7 +91,6 @@ repos: path: ./ layers: meta-leda-bsp: - meta-leda-backports: meta-leda-components: meta-leda-distro: meta-leda-distro-container: \ No newline at end of file diff --git a/kas/.config-master.yaml b/kas/.config-master.yaml index 3f2c674e..7690dd6b 100644 --- a/kas/.config-master.yaml +++ b/kas/.config-master.yaml @@ -41,6 +41,9 @@ local_conf_header: RAUC_CERT_FILE = "${TOPDIR}/../examples/rauc/development-1.cert.pem" RAUC_KEYRING_URI = "file://${TOPDIR}/../examples/rauc/ca.cert.pem" RAUC_KEYRING_FILE = "${TOPDIR}/../examples/rauc/ca.cert.pem" + meta-clang: | + # mask the llvm recipe provided by kirkstone to avoid warnings: + BBMASK += "/poky/meta/recipes-devtools/llvm/" repos: # This entry includes the repository where the config file is located # to the bblayers.conf: @@ -88,7 +91,6 @@ repos: path: ./ layers: meta-leda-bsp: - meta-leda-backports: meta-leda-components: meta-leda-distro: meta-leda-distro-container: \ No newline at end of file diff --git a/meta-leda-backports/conf/layer.conf b/meta-leda-backports/conf/layer.conf deleted file mode 100644 index f6a5cb1c..00000000 --- a/meta-leda-backports/conf/layer.conf +++ /dev/null @@ -1,25 +0,0 @@ -# /******************************************************************************** -# * Copyright (c) 2022 Contributors to the Eclipse Foundation -# * -# * See the NOTICE file(s) distributed with this work for additional -# * information regarding copyright ownership. -# * -# * This program and the accompanying materials are made available under the -# * terms of the Apache License 2.0 which is available at -# * https://www.apache.org/licenses/LICENSE-2.0 -# * -# * SPDX-License-Identifier: Apache-2.0 -# ********************************************************************************/ - -# We have a conf and classes directory, add to BBPATH -BBPATH .= ":${LAYERDIR}" - -# We have recipes-* directories, add to BBFILES -BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ - ${LAYERDIR}/recipes-*/*/*.bbappend" - -BBFILE_COLLECTIONS += "meta-leda-backports" -BBFILE_PATTERN_meta-leda-backports := "^${LAYERDIR}/" -BBFILE_PRIORITY_meta-leda-backports = "7" - -LAYERSERIES_COMPAT_meta-leda-backports = "kirkstone" diff --git a/meta-leda-backports/recipes-devtools/COPYING.MIT b/meta-leda-backports/recipes-devtools/COPYING.MIT deleted file mode 100644 index fb950dc6..00000000 --- a/meta-leda-backports/recipes-devtools/COPYING.MIT +++ /dev/null @@ -1,17 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/meta-leda-backports/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch b/meta-leda-backports/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch deleted file mode 100644 index 48af6fc2..00000000 --- a/meta-leda-backports/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 86940d87026432683fb6741cd8a34d3b9b18e40d Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 27 Nov 2020 10:11:08 +0000 -Subject: [PATCH] AsmMatcherEmitter: sort ClassInfo lists by name as well - -Otherwise, there are instances which are identical in -every other field and therefore sort non-reproducibly -(which breaks binary and source reproducibiliy). - -Upstream-Status: Submitted [https://reviews.llvm.org/D97477] -Signed-off-by: Alexander Kanavin ---- - llvm/utils/TableGen/AsmMatcherEmitter.cpp | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp -index ccf0959389b..1f801e83b7d 100644 ---- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp -+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp -@@ -359,7 +359,10 @@ public: - // name of a class shouldn't be significant. However, some of the backends - // accidentally rely on this behaviour, so it will have to stay like this - // until they are fixed. -- return ValueName < RHS.ValueName; -+ if (ValueName != RHS.ValueName) -+ return ValueName < RHS.ValueName; -+ // All else being equal, we should sort by name, for source and binary reproducibility -+ return Name < RHS.Name; - } - }; - diff --git a/meta-leda-backports/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta-leda-backports/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch deleted file mode 100644 index b01b8647..00000000 --- a/meta-leda-backports/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch +++ /dev/null @@ -1,37 +0,0 @@ -Upstream-Status: Pending -Signed-off-by: Khem Raj - -From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001 -From: Martin Kelly -Date: Fri, 19 May 2017 00:22:57 -0700 -Subject: [PATCH] llvm: allow env override of exe path - -When using a native llvm-config from inside a sysroot, we need llvm-config to -return the libraries, include directories, etc. from inside the sysroot rather -than from the native sysroot. Thus provide an env override for calling -llvm-config from a target sysroot. - -Signed-off-by: Martin Kelly -Signed-off-by: Khem Raj ---- - llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp -index 7ef7c46a262..a4f7ed82c7b 100644 ---- a/llvm/tools/llvm-config/llvm-config.cpp -+++ b/llvm/tools/llvm-config/llvm-config.cpp -@@ -225,6 +225,13 @@ Typical components:\n\ - - /// Compute the path to the main executable. - std::string GetExecutablePath(const char *Argv0) { -+ // Hack for Yocto: we need to override the root path when we are using -+ // llvm-config from within a target sysroot. -+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); -+ if (Sysroot != nullptr) { -+ return Sysroot; -+ } -+ - // This just needs to be some symbol in the binary; C++ doesn't - // allow taking the address of ::main however. - void *P = (void *)(intptr_t)GetExecutablePath; diff --git a/meta-leda-backports/recipes-devtools/llvm/llvm/llvm-config b/meta-leda-backports/recipes-devtools/llvm/llvm/llvm-config deleted file mode 100644 index 5e4ded2d..00000000 --- a/meta-leda-backports/recipes-devtools/llvm/llvm/llvm-config +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# -# Copyright OpenEmbedded Contributors -# -# SPDX-License-Identifier: MIT -# -# Wrap llvm-config since the native llvm-config will remap some values correctly -# if placed in the target sysroot but for flags, it would provide the native ones. -# Provide ours from the environment instead. - -NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)" -if [[ $# == 0 ]]; then - exec "$NEXT_LLVM_CONFIG" -fi - -remain="" -output="" -for arg in "$@"; do - case "$arg" in - --cppflags) - output="${output} ${CPPFLAGS}" - ;; - --cflags) - output="${output} ${CFLAGS}" - ;; - --cxxflags) - output="${output} ${CXXFLAGS}" - ;; - --ldflags) - output="${output} ${LDFLAGS}" - ;; - --shared-mode) - output="${output} shared" - ;; - --libs) - output="${output} -lLLVM" - ;; - --link-shared) - break - ;; - *) - remain="${remain} ${arg}" - ;; - esac -done - -if [ "${remain}" != "" ]; then - output="${output} "$("$NEXT_LLVM_CONFIG" ${remain}) -fi - -echo "${output}" diff --git a/meta-leda-backports/recipes-devtools/llvm/llvm_git.bb b/meta-leda-backports/recipes-devtools/llvm/llvm_git.bb deleted file mode 100644 index 25c0a433..00000000 --- a/meta-leda-backports/recipes-devtools/llvm/llvm_git.bb +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright (C) 2017 Khem Raj -# Released under the MIT license (see COPYING.MIT for the terms) - -DESCRIPTION = "The LLVM Compiler Infrastructure" -HOMEPAGE = "http://llvm.org" -LICENSE = "Apache-2.0-with-LLVM-exception" -SECTION = "devel" - -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" - -DEPENDS = "libffi libxml2 zlib libedit ninja-native llvm-native" - -COMPATIBLE_HOST:riscv64 = "null" -COMPATIBLE_HOST:riscv32 = "null" - -RDEPENDS:${PN}:append:class-target = " ncurses-terminfo" - -inherit cmake pkgconfig - -PROVIDES += "llvm${PV}" - -PV = "14.0.6" - -MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" - -LLVM_RELEASE = "${PV}" - -BRANCH = "release/${MAJOR_VERSION}.x" -SRCREV = "f28c006a5895fc0e329fe15fead81e37457cb1d1" -SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \ - file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ - file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \ - file://llvm-config \ - " - -UPSTREAM_CHECK_GITTAGREGEX = "llvmorg-(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git/llvm" - -LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" - -def get_llvm_arch(bb, d, arch_var): - import re - a = d.getVar(arch_var) - if re.match(r'(i.86|athlon|x86.64)$', a): return 'X86' - elif re.match(r'arm$', a): return 'ARM' - elif re.match(r'armeb$', a): return 'ARM' - elif re.match(r'aarch64$', a): return 'AArch64' - elif re.match(r'aarch64_be$', a): return 'AArch64' - elif re.match(r'mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' - elif re.match(r'riscv(32|64)(eb|)$', a): return 'RISCV' - elif re.match(r'p(pc|owerpc)(|64)', a): return 'PowerPC' - else: - raise bb.parse.SkipRecipe("Cannot map '%s' to a supported LLVM architecture" % a) - -def get_llvm_host_arch(bb, d): - return get_llvm_arch(bb, d, 'HOST_ARCH') - -PACKAGECONFIG ??= "" -# if optviewer OFF, force the modules to be not found or the ones on the host would be found -PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" - -# -# Default to build all OE-Core supported target arches (user overridable). -# -LLVM_TARGETS ?= "AMDGPU;${@get_llvm_host_arch(bb, d)}" - -ARM_INSTRUCTION_SET:armv5 = "arm" -ARM_INSTRUCTION_SET:armv4t = "arm" - -EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ - -DLLVM_ENABLE_PIC=ON \ - -DLLVM_BINDINGS_LIST='' \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_FFI=ON \ - -DLLVM_ENABLE_RTTI=ON \ - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ - -DLLVM_OPTIMIZED_TABLEGEN=ON \ - -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ - -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ - -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ - -G Ninja" - -EXTRA_OECMAKE:append:class-target = "\ - -DCMAKE_CROSSCOMPILING:BOOL=ON \ - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ - " - -EXTRA_OECMAKE:append:class-nativesdk = "\ - -DCMAKE_CROSSCOMPILING:BOOL=ON \ - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ - " - -# patch out build host paths for reproducibility -do_compile:prepend:class-target() { - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc -} - -do_compile() { - ninja -v ${PARALLEL_MAKE} -} - -do_compile:class-native() { - ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen -} - -do_install() { - DESTDIR=${D} ninja -v install - - # llvm harcodes usr/lib as install path, so this corrects it to actual libdir - mv -T -n ${D}/${prefix}/lib ${D}/${libdir} || true - - # Remove opt-viewer: https://llvm.org/docs/Remarks.html - rm -rf ${D}${datadir}/opt-viewer - rmdir ${D}${datadir} - - # reproducibility - sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake -} - -do_install:class-native() { - install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV} - install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV} - ln -sf llvm-config${PV} ${D}${bindir}/llvm-config -} - -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" - -llvm_sysroot_preprocess() { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 0755 ${WORKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} -} - -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto" - -RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" - -FILES:${PN}-bugpointpasses = "\ - ${libdir}/BugpointPasses.so \ -" - -FILES:${PN}-libllvm = "\ - ${libdir}/libLLVM-${MAJOR_VERSION}.so \ -" - -FILES:${PN}-liblto += "\ - ${libdir}/libLTO.so.* \ -" - -FILES:${PN}-liboptremarks += "\ - ${libdir}/libRemarks.so.* \ -" - -FILES:${PN}-llvmhello = "\ - ${libdir}/LLVMHello.so \ -" - -FILES:${PN}-dev += " \ - ${libdir}/llvm-config \ - ${libdir}/libRemarks.so \ - ${libdir}/libLLVM-${PV}.so \ -" - -FILES:${PN}-staticdev += "\ - ${libdir}/*.a \ -" - -INSANE_SKIP:${PN}-libllvm += "dev-so" - -BBCLASSEXTEND = "native nativesdk"