* [PATCH v7 00/12] Revamp the Go support
@ 2017-09-11 18:28 Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 01/12] go-native: remove dependency on go-bootstrap-native Otavio Salvador
` (13 more replies)
0 siblings, 14 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
This improves the Go support on OE-Core.
We are trying to port as much as possible work done by Matt on
meta-golang back to OE-Core and also to avoid carrying old releases as
there is no need to support more versions of Go toolchain.
This fixes issues in existing support as well as add support for SDK
generation which supports Go.
Changes in v7:
- Fix Upstream-Status header typo
- Add patch header
Changes in v6:
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
- new patch
Matt Madison (12):
go-native: remove dependency on go-bootstrap-native
go-bootstrap-native: remove recipe
go: split out go-runtime into separate recipe
go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS
go.bbclass: remove some xxx_FINAL variables
go.bbclass: clean up CGO_xxx settings
go: rename go.inc -> go-target.inc
go-cross: take GOARM environment setting
go: enable nativesdk builds for the toolchain
go-crosssdk: add recipe
go.bbclass: enable nativesdk builds for Go packages
go-cross-canadian: add recipe
meta/classes/go.bbclass | 54 +++--
meta/recipes-devtools/go/go-1.4.inc | 16 --
...alignment-for-the-.rel.plt-section-on-32-.patch | 33 ---
.../go/go-1.4/016-armhf-elf-header.patch | 24 ---
...ckport-cmd-link-support-new-386-amd64-rel.patch | 225 ---------------------
meta/recipes-devtools/go/go-1.4/syslog.patch | 62 ------
meta/recipes-devtools/go/go-1.8.inc | 6 +-
.../go/go-1.8/make-goroot-precious.patch | 21 ++
.../go/go-1.8/set-gotooldir-during-bootstrap.patch | 22 ++
.../recipes-devtools/go/go-bootstrap-native_1.4.bb | 3 -
meta/recipes-devtools/go/go-common.inc | 2 +-
meta/recipes-devtools/go/go-cross-canadian.inc | 64 ++++++
meta/recipes-devtools/go/go-cross-canadian_1.8.bb | 2 +
meta/recipes-devtools/go/go-cross.inc | 61 +++++-
meta/recipes-devtools/go/go-cross_1.8.bb | 5 +-
meta/recipes-devtools/go/go-crosssdk.inc | 55 +++++
meta/recipes-devtools/go/go-crosssdk_1.8.bb | 2 +
meta/recipes-devtools/go/go-native.inc | 48 +++--
meta/recipes-devtools/go/go-native_1.8.bb | 1 -
meta/recipes-devtools/go/go-runtime.inc | 58 ++++++
meta/recipes-devtools/go/go-runtime_1.8.bb | 2 +
meta/recipes-devtools/go/go-target.inc | 54 +++++
meta/recipes-devtools/go/go.inc | 81 --------
meta/recipes-devtools/go/go_1.8.bb | 2 +-
24 files changed, 393 insertions(+), 510 deletions(-)
delete mode 100644 meta/recipes-devtools/go/go-1.4.inc
delete mode 100644 meta/recipes-devtools/go/go-1.4/0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/syslog.patch
create mode 100644 meta/recipes-devtools/go/go-1.8/make-goroot-precious.patch
create mode 100644 meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch
delete mode 100644 meta/recipes-devtools/go/go-bootstrap-native_1.4.bb
create mode 100644 meta/recipes-devtools/go/go-cross-canadian.inc
create mode 100644 meta/recipes-devtools/go/go-cross-canadian_1.8.bb
create mode 100644 meta/recipes-devtools/go/go-crosssdk.inc
create mode 100644 meta/recipes-devtools/go/go-crosssdk_1.8.bb
create mode 100644 meta/recipes-devtools/go/go-runtime.inc
create mode 100644 meta/recipes-devtools/go/go-runtime_1.8.bb
create mode 100644 meta/recipes-devtools/go/go-target.inc
delete mode 100644 meta/recipes-devtools/go/go.inc
--
2.14.1
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v7 01/12] go-native: remove dependency on go-bootstrap-native
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 02/12] go-bootstrap-native: remove recipe Otavio Salvador
` (12 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
The go1.4 toolchain is only required for bootstrapping
go-native, and should not be used for anything else,
so build it as part of the go-native build. This way,
we don't have to carry around its built artifacts in
the native sysroot.
The go-cross and target toolchains can then just depend
on go-native, using that for their 'bootstrap' toolchain.
Also removed some unnecessary package-related noexec
settings, since native recipes inherit nopackages.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/go-1.8.inc | 4 +--
meta/recipes-devtools/go/go-common.inc | 2 +-
meta/recipes-devtools/go/go-native.inc | 48 +++++++++++++++++--------------
meta/recipes-devtools/go/go-native_1.8.bb | 1 -
meta/recipes-devtools/go/go.inc | 4 +--
5 files changed, 32 insertions(+), 27 deletions(-)
diff --git a/meta/recipes-devtools/go/go-1.8.inc b/meta/recipes-devtools/go/go-1.8.inc
index 3690f310bd..bfb26de01d 100644
--- a/meta/recipes-devtools/go/go-1.8.inc
+++ b/meta/recipes-devtools/go/go-1.8.inc
@@ -15,5 +15,5 @@ SRC_URI += "\
file://split-host-and-target-build.patch \
file://gotooldir.patch \
"
-SRC_URI[md5sum] = "64e9380e07bba907e26a00cf5fcbe77e"
-SRC_URI[sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6"
+SRC_URI[main.md5sum] = "64e9380e07bba907e26a00cf5fcbe77e"
+SRC_URI[main.sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6"
diff --git a/meta/recipes-devtools/go/go-common.inc b/meta/recipes-devtools/go/go-common.inc
index f74b8b7650..ce1eb86812 100644
--- a/meta/recipes-devtools/go/go-common.inc
+++ b/meta/recipes-devtools/go/go-common.inc
@@ -14,7 +14,7 @@ LICENSE = "BSD-3-Clause"
inherit goarch
-SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz"
+SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz;name=main"
S = "${WORKDIR}/go"
B = "${S}"
diff --git a/meta/recipes-devtools/go/go-native.inc b/meta/recipes-devtools/go/go-native.inc
index c21f8fda78..9eb2b3211f 100644
--- a/meta/recipes-devtools/go/go-native.inc
+++ b/meta/recipes-devtools/go/go-native.inc
@@ -1,16 +1,28 @@
+# Use immediate assingment here to get the original (/usr/lib)
+# instead of the one rewritten by native.bbclass.
+nonstaging_libdir := "${libdir}"
+
inherit native
-BOOTSTRAP ?= ""
+SRC_URI_append = " http://golang.org/dl/go1.4.3.src.tar.gz;name=bootstrap;subdir=go1.4"
+SRC_URI[bootstrap.md5sum] = "dfb604511115dd402a77a553a5923a04"
+SRC_URI[bootstrap.sha256sum] = "9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959"
+
export GOOS = "${BUILD_GOOS}"
export GOARCH = "${BUILD_GOARCH}"
-export GOROOT_FINAL = "${STAGING_LIBDIR_NATIVE}/go${BOOTSTRAP}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go1.4"
+CC = "${@d.getVar('BUILD_CC', True).strip()}"
+
export CGO_ENABLED = "1"
-do_configure[noexec] = "1"
+do_configure() {
+ cd ${WORKDIR}/go1.4/go/src
+ CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash
+}
do_compile() {
export GOBIN="${B}/bin"
+ export GOROOT_FINAL="${nonstaging_libdir}/go"
+ export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go"
rm -rf ${GOBIN}
mkdir ${GOBIN}
@@ -18,7 +30,7 @@ do_compile() {
mkdir -p ${WORKDIR}/build-tmp
cd src
- CGO_ENABLED=0 ./make.bash --host-only
+ ./make.bash --host-only
}
make_wrapper() {
@@ -26,31 +38,25 @@ make_wrapper() {
cat <<END >${D}${bindir}/$2$3
#!/bin/bash
here=\`dirname \$0\`
-export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go$3\`}"
-\$here/../lib/go$3/bin/$1 "\$@"
+export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
+\$here/../lib/go/bin/$1 "\$@"
END
- chmod +x ${D}${bindir}/$2$3
+ chmod +x ${D}${bindir}/$2
}
do_install() {
- install -d ${D}${libdir}/go${BOOTSTRAP}
- cp -a ${B}/pkg ${D}${libdir}/go${BOOTSTRAP}/
- install -d ${D}${libdir}/go${BOOTSTRAP}/src
+ 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${BOOTSTRAP}/src/; \
+ [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
done)
- install -d ${D}${bindir} ${D}${libdir}/go${BOOTSTRAP}/bin
+ install -d ${D}${bindir} ${D}${libdir}/go/bin
for f in ${B}/bin/*
do
base=`basename $f`
- install -m755 $f ${D}${libdir}/go${BOOTSTRAP}/bin
- make_wrapper $base $base ${BOOTSTRAP}
+ install -m755 $f ${D}${libdir}/go/bin
+ make_wrapper $base $base
done
}
-
-do_package[noexec] = "1"
-do_packagedata[noexec] = "1"
-do_package_write_ipk[noexec] = "1"
-do_package_write_deb[noexec] = "1"
-do_package_write_rpm[noexec] = "1"
diff --git a/meta/recipes-devtools/go/go-native_1.8.bb b/meta/recipes-devtools/go/go-native_1.8.bb
index 182fca27a0..bbf3c0dd73 100644
--- a/meta/recipes-devtools/go/go-native_1.8.bb
+++ b/meta/recipes-devtools/go/go-native_1.8.bb
@@ -1,3 +1,2 @@
require ${PN}.inc
require go-${PV}.inc
-DEPENDS += "go-bootstrap-native"
diff --git a/meta/recipes-devtools/go/go.inc b/meta/recipes-devtools/go/go.inc
index 52abbebd7e..9efbd275bd 100644
--- a/meta/recipes-devtools/go/go.inc
+++ b/meta/recipes-devtools/go/go.inc
@@ -1,5 +1,5 @@
inherit goarch
-DEPENDS += "go-bootstrap-native"
+DEPENDS += "go-native"
# libgcc is required for the target specific libraries to build
# properly, but apparently not for go-cross and, more importantly,
@@ -17,7 +17,7 @@ export GOHOSTARCH = "${BUILD_GOARCH}"
export GOOS = "${TARGET_GOOS}"
export GOARCH = "${TARGET_GOARCH}"
export GOARM = "${TARGET_GOARM}"
-export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go1.4"
+export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
export GOROOT_FINAL = "${libdir}/go"
export CGO_ENABLED = "1"
export CC_FOR_TARGET = "${CC}"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 02/12] go-bootstrap-native: remove recipe
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 01/12] go-native: remove dependency on go-bootstrap-native Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 03/12] go: split out go-runtime into separate recipe Otavio Salvador
` (11 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
No longer needed, with go-native handling its own
bootstrap phase.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/go-1.4.inc | 16 --
...alignment-for-the-.rel.plt-section-on-32-.patch | 33 ---
| 24 ---
...ckport-cmd-link-support-new-386-amd64-rel.patch | 225 ---------------------
meta/recipes-devtools/go/go-1.4/syslog.patch | 62 ------
.../recipes-devtools/go/go-bootstrap-native_1.4.bb | 3 -
6 files changed, 363 deletions(-)
delete mode 100644 meta/recipes-devtools/go/go-1.4.inc
delete mode 100644 meta/recipes-devtools/go/go-1.4/0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
delete mode 100644 meta/recipes-devtools/go/go-1.4/syslog.patch
delete mode 100644 meta/recipes-devtools/go/go-bootstrap-native_1.4.bb
diff --git a/meta/recipes-devtools/go/go-1.4.inc b/meta/recipes-devtools/go/go-1.4.inc
deleted file mode 100644
index 2f500f32b9..0000000000
--- a/meta/recipes-devtools/go/go-1.4.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-require go-common.inc
-
-PV = "1.4.3"
-GO_BASEVERSION = "1.4"
-FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
-
-SRC_URI += "\
- file://016-armhf-elf-header.patch \
- file://go-cross-backport-cmd-link-support-new-386-amd64-rel.patch \
- file://syslog.patch \
- file://0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch \
-"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81"
-SRC_URI[md5sum] = "dfb604511115dd402a77a553a5923a04"
-SRC_URI[sha256sum] = "9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959"
diff --git a/meta/recipes-devtools/go/go-1.4/0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch b/meta/recipes-devtools/go/go-1.4/0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch
deleted file mode 100644
index f2adc200b1..0000000000
--- a/meta/recipes-devtools/go/go-1.4/0001-cmd-ld-set-alignment-for-the-.rel.plt-section-on-32-.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 855145d5c03c4b4faf60736c38d7a299c682af4a Mon Sep 17 00:00:00 2001
-From: Shenghou Ma <minux@golang.org>
-Date: Sat, 7 Feb 2015 14:06:02 -0500
-Subject: [PATCH] cmd/ld: set alignment for the .rel.plt section on 32-bit
- architectures
-
-Fixes #9802.
-
-Change-Id: I22c52a37bdb23a14cc4615c9519431bb14ca81ca
-Reviewed-on: https://go-review.googlesource.com/4170
-Reviewed-by: Ian Lance Taylor <iant@golang.org>
----
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- src/cmd/ld/elf.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/cmd/ld/elf.c b/src/cmd/ld/elf.c
-index 12ced98..97ed4bd 100644
---- a/src/cmd/ld/elf.c
-+++ b/src/cmd/ld/elf.c
-@@ -1363,6 +1363,7 @@ asmbelf(vlong symo)
- sh->type = SHT_REL;
- sh->flags = SHF_ALLOC;
- sh->entsize = ELF32RELSIZE;
-+ sh->addralign = 4;
- sh->link = elfshname(".dynsym")->shnum;
- shsym(sh, linklookup(ctxt, ".rel.plt", 0));
-
---
-1.9.1
-
diff --git a/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
deleted file mode 100644
index e6e414e52f..0000000000
--- a/meta/recipes-devtools/go/go-1.4/016-armhf-elf-header.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Description: Use correct ELF header for armhf binaries.
-Author: Adam Conrad <adconrad@ubuntu.com>
-Last-Update: 2013-07-08
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: go/src/cmd/ld/elf.c
-===================================================================
---- go.orig/src/cmd/ld/elf.c 2015-02-20 10:49:58.763451586 -0800
-+++ go/src/cmd/ld/elf.c 2015-02-20 10:49:27.895478521 -0800
-@@ -57,7 +57,11 @@
- case '5':
- // we use EABI on both linux/arm and freebsd/arm.
- if(HEADTYPE == Hlinux || HEADTYPE == Hfreebsd)
-- hdr.flags = 0x5000002; // has entry point, Version5 EABI
-+#ifdef __ARM_PCS_VFP
-+ hdr.flags = 0x5000402; // has entry point, Version5 EABI, hard-float ABI
-+#else
-+ hdr.flags = 0x5000202; // has entry point, Version5 EABI, soft-float ABI
-+#endif
- // fallthrough
- default:
- hdr.phoff = ELF32HDRSIZE; /* Must be be ELF32HDRSIZE: first PHdr must follow ELF header */
diff --git a/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch b/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
deleted file mode 100644
index 95ca9d3aa9..0000000000
--- a/meta/recipes-devtools/go/go-1.4/go-cross-backport-cmd-link-support-new-386-amd64-rel.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-From d6eefad445831c161fca130f9bdf7b3848aac23c Mon Sep 17 00:00:00 2001
-From: Paul Gortmaker <paul.gortmaker@windriver.com>
-Date: Tue, 29 Mar 2016 21:14:33 -0400
-Subject: [PATCH] go-cross: backport "cmd/link: support new 386/amd64
- relocations"
-
-Newer binutils won't support building older go-1.4.3 as per:
-
-https://github.com/golang/go/issues/13114
-
-Upstream commit 914db9f060b1fd3eb1f74d48f3bd46a73d4ae9c7 (see subj)
-was identified as the fix and nominated for 1.4.4 but that release
-never happened. The paths in 1.4.3 aren't the same as go1.6beta1~662
-where this commit appeared, but the NetBSD folks indicated what a
-1.4.3 backport would look like here: https://gnats.netbsd.org/50777
-
-This is based on that, but without the BSD wrapper infrastructure
-layer that makes things look like patches of patches.
-
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-
-Upstream-Status: Backport [ Partial ]
-
-diff --git a/src/cmd/6l/asm.c b/src/cmd/6l/asm.c
-index 18b5aa311981..2e9d339aef87 100644
---- a/src/cmd/6l/asm.c
-+++ b/src/cmd/6l/asm.c
-@@ -118,6 +118,8 @@ adddynrel(LSym *s, Reloc *r)
- return;
-
- case 256 + R_X86_64_GOTPCREL:
-+ case 256 + R_X86_64_GOTPCRELX:
-+ case 256 + R_X86_64_REX_GOTPCRELX:
- if(targ->type != SDYNIMPORT) {
- // have symbol
- if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
-diff --git a/src/cmd/8l/asm.c b/src/cmd/8l/asm.c
-index 98c04240374f..cff29488e8af 100644
---- a/src/cmd/8l/asm.c
-+++ b/src/cmd/8l/asm.c
-@@ -115,6 +115,7 @@ adddynrel(LSym *s, Reloc *r)
- return;
-
- case 256 + R_386_GOT32:
-+ case 256 + R_386_GOT32X:
- if(targ->type != SDYNIMPORT) {
- // have symbol
- if(r->off >= 2 && s->p[r->off-2] == 0x8b) {
-diff --git a/src/cmd/ld/elf.h b/src/cmd/ld/elf.h
-index e84d996f2596..bbf2cfaa3cc0 100644
---- a/src/cmd/ld/elf.h
-+++ b/src/cmd/ld/elf.h
-@@ -478,32 +478,47 @@ typedef struct {
- * Relocation types.
- */
-
--#define R_X86_64_NONE 0 /* No relocation. */
--#define R_X86_64_64 1 /* Add 64 bit symbol value. */
--#define R_X86_64_PC32 2 /* PC-relative 32 bit signed sym value. */
--#define R_X86_64_GOT32 3 /* PC-relative 32 bit GOT offset. */
--#define R_X86_64_PLT32 4 /* PC-relative 32 bit PLT offset. */
--#define R_X86_64_COPY 5 /* Copy data from shared object. */
--#define R_X86_64_GLOB_DAT 6 /* Set GOT entry to data address. */
--#define R_X86_64_JMP_SLOT 7 /* Set GOT entry to code address. */
--#define R_X86_64_RELATIVE 8 /* Add load address of shared object. */
--#define R_X86_64_GOTPCREL 9 /* Add 32 bit signed pcrel offset to GOT. */
--#define R_X86_64_32 10 /* Add 32 bit zero extended symbol value */
--#define R_X86_64_32S 11 /* Add 32 bit sign extended symbol value */
--#define R_X86_64_16 12 /* Add 16 bit zero extended symbol value */
--#define R_X86_64_PC16 13 /* Add 16 bit signed extended pc relative symbol value */
--#define R_X86_64_8 14 /* Add 8 bit zero extended symbol value */
--#define R_X86_64_PC8 15 /* Add 8 bit signed extended pc relative symbol value */
--#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
--#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */
--#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */
--#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */
--#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */
--#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
--#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */
--#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */
--
--#define R_X86_64_COUNT 24 /* Count of defined relocation types. */
-+#define R_X86_64_NONE 0
-+#define R_X86_64_64 1
-+#define R_X86_64_PC32 2
-+#define R_X86_64_GOT32 3
-+#define R_X86_64_PLT32 4
-+#define R_X86_64_COPY 5
-+#define R_X86_64_GLOB_DAT 6
-+#define R_X86_64_JMP_SLOT 7
-+#define R_X86_64_RELATIVE 8
-+#define R_X86_64_GOTPCREL 9
-+#define R_X86_64_32 10
-+#define R_X86_64_32S 11
-+#define R_X86_64_16 12
-+#define R_X86_64_PC16 13
-+#define R_X86_64_8 14
-+#define R_X86_64_PC8 15
-+#define R_X86_64_DTPMOD64 16
-+#define R_X86_64_DTPOFF64 17
-+#define R_X86_64_TPOFF64 18
-+#define R_X86_64_TLSGD 19
-+#define R_X86_64_TLSLD 20
-+#define R_X86_64_DTPOFF32 21
-+#define R_X86_64_GOTTPOFF 22
-+#define R_X86_64_TPOFF32 23
-+#define R_X86_64_PC64 24
-+#define R_X86_64_GOTOFF64 25
-+#define R_X86_64_GOTPC32 26
-+#define R_X86_64_GOT64 27
-+#define R_X86_64_GOTPCREL64 28
-+#define R_X86_64_GOTPC64 29
-+#define R_X86_64_GOTPLT64 30
-+#define R_X86_64_PLTOFF64 31
-+#define R_X86_64_SIZE32 32
-+#define R_X86_64_SIZE64 33
-+#define R_X86_64_GOTPC32_TLSDEC 34
-+#define R_X86_64_TLSDESC_CALL 35
-+#define R_X86_64_TLSDESC 36
-+#define R_X86_64_IRELATIVE 37
-+#define R_X86_64_PC32_BND 40
-+#define R_X86_64_GOTPCRELX 41
-+#define R_X86_64_REX_GOTPCRELX 42
-
-
- #define R_ALPHA_NONE 0 /* No reloc */
-@@ -581,39 +596,42 @@ typedef struct {
- #define R_ARM_COUNT 38 /* Count of defined relocation types. */
-
-
--#define R_386_NONE 0 /* No relocation. */
--#define R_386_32 1 /* Add symbol value. */
--#define R_386_PC32 2 /* Add PC-relative symbol value. */
--#define R_386_GOT32 3 /* Add PC-relative GOT offset. */
--#define R_386_PLT32 4 /* Add PC-relative PLT offset. */
--#define R_386_COPY 5 /* Copy data from shared object. */
--#define R_386_GLOB_DAT 6 /* Set GOT entry to data address. */
--#define R_386_JMP_SLOT 7 /* Set GOT entry to code address. */
--#define R_386_RELATIVE 8 /* Add load address of shared object. */
--#define R_386_GOTOFF 9 /* Add GOT-relative symbol address. */
--#define R_386_GOTPC 10 /* Add PC-relative GOT table address. */
--#define R_386_TLS_TPOFF 14 /* Negative offset in static TLS block */
--#define R_386_TLS_IE 15 /* Absolute address of GOT for -ve static TLS */
--#define R_386_TLS_GOTIE 16 /* GOT entry for negative static TLS block */
--#define R_386_TLS_LE 17 /* Negative offset relative to static TLS */
--#define R_386_TLS_GD 18 /* 32 bit offset to GOT (index,off) pair */
--#define R_386_TLS_LDM 19 /* 32 bit offset to GOT (index,zero) pair */
--#define R_386_TLS_GD_32 24 /* 32 bit offset to GOT (index,off) pair */
--#define R_386_TLS_GD_PUSH 25 /* pushl instruction for Sun ABI GD sequence */
--#define R_386_TLS_GD_CALL 26 /* call instruction for Sun ABI GD sequence */
--#define R_386_TLS_GD_POP 27 /* popl instruction for Sun ABI GD sequence */
--#define R_386_TLS_LDM_32 28 /* 32 bit offset to GOT (index,zero) pair */
--#define R_386_TLS_LDM_PUSH 29 /* pushl instruction for Sun ABI LD sequence */
--#define R_386_TLS_LDM_CALL 30 /* call instruction for Sun ABI LD sequence */
--#define R_386_TLS_LDM_POP 31 /* popl instruction for Sun ABI LD sequence */
--#define R_386_TLS_LDO_32 32 /* 32 bit offset from start of TLS block */
--#define R_386_TLS_IE_32 33 /* 32 bit offset to GOT static TLS offset entry */
--#define R_386_TLS_LE_32 34 /* 32 bit offset within static TLS block */
--#define R_386_TLS_DTPMOD32 35 /* GOT entry containing TLS index */
--#define R_386_TLS_DTPOFF32 36 /* GOT entry containing TLS offset */
--#define R_386_TLS_TPOFF32 37 /* GOT entry of -ve static TLS offset */
--
--#define R_386_COUNT 38 /* Count of defined relocation types. */
-+#define R_386_NONE 0
-+#define R_386_32 1
-+#define R_386_PC32 2
-+#define R_386_GOT32 3
-+#define R_386_PLT32 4
-+#define R_386_COPY 5
-+#define R_386_GLOB_DAT 6
-+#define R_386_JMP_SLOT 7
-+#define R_386_RELATIVE 8
-+#define R_386_GOTOFF 9
-+#define R_386_GOTPC 10
-+#define R_386_TLS_TPOFF 14
-+#define R_386_TLS_IE 15
-+#define R_386_TLS_GOTIE 16
-+#define R_386_TLS_LE 17
-+#define R_386_TLS_GD 18
-+#define R_386_TLS_LDM 19
-+#define R_386_TLS_GD_32 24
-+#define R_386_TLS_GD_PUSH 25
-+#define R_386_TLS_GD_CALL 26
-+#define R_386_TLS_GD_POP 27
-+#define R_386_TLS_LDM_32 28
-+#define R_386_TLS_LDM_PUSH 29
-+#define R_386_TLS_LDM_CALL 30
-+#define R_386_TLS_LDM_POP 31
-+#define R_386_TLS_LDO_32 32
-+#define R_386_TLS_IE_32 33
-+#define R_386_TLS_LE_32 34
-+#define R_386_TLS_DTPMOD32 35
-+#define R_386_TLS_DTPOFF32 36
-+#define R_386_TLS_TPOFF32 37
-+#define R_386_TLS_GOTDESC 39
-+#define R_386_TLS_DESC_CALL 40
-+#define R_386_TLS_DESC 41
-+#define R_386_IRELATIVE 42
-+#define R_386_GOT32X 43
-
- #define R_PPC_NONE 0 /* No relocation. */
- #define R_PPC_ADDR32 1
-diff --git a/src/cmd/ld/ldelf.c b/src/cmd/ld/ldelf.c
-index dd5fa0d2a839..2e2fbd17377f 100644
---- a/src/cmd/ld/ldelf.c
-+++ b/src/cmd/ld/ldelf.c
-@@ -888,12 +888,15 @@ reltype(char *pn, int elftype, uchar *siz)
- case R('6', R_X86_64_PC32):
- case R('6', R_X86_64_PLT32):
- case R('6', R_X86_64_GOTPCREL):
-+ case R('6', R_X86_64_GOTPCRELX):
-+ case R('6', R_X86_64_REX_GOTPCRELX):
- case R('8', R_386_32):
- case R('8', R_386_PC32):
- case R('8', R_386_GOT32):
- case R('8', R_386_PLT32):
- case R('8', R_386_GOTOFF):
- case R('8', R_386_GOTPC):
-+ case R('8', R_386_GOT32X):
- *siz = 4;
- break;
- case R('6', R_X86_64_64):
---
-2.7.2
-
diff --git a/meta/recipes-devtools/go/go-1.4/syslog.patch b/meta/recipes-devtools/go/go-1.4/syslog.patch
deleted file mode 100644
index 29be06f1bd..0000000000
--- a/meta/recipes-devtools/go/go-1.4/syslog.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Add timeouts to logger
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-diff -r -u go/src/log/syslog/syslog.go /home/achang/GOCOPY/go/src/log/syslog/syslog.go
---- go/src/log/syslog/syslog.go 2013-11-28 13:38:28.000000000 -0800
-+++ /home/achang/GOCOPY/go/src/log/syslog/syslog.go 2014-10-03 11:44:37.710403200 -0700
-@@ -33,6 +33,9 @@
- const severityMask = 0x07
- const facilityMask = 0xf8
-
-+var writeTimeout = 1 * time.Second
-+var connectTimeout = 1 * time.Second
-+
- const (
- // Severity.
-
-@@ -100,6 +103,7 @@
- type serverConn interface {
- writeString(p Priority, hostname, tag, s, nl string) error
- close() error
-+ setWriteDeadline(t time.Time) error
- }
-
- type netConn struct {
-@@ -273,7 +277,11 @@
- nl = "\n"
- }
-
-- err := w.conn.writeString(p, w.hostname, w.tag, msg, nl)
-+ err := w.conn.setWriteDeadline(time.Now().Add(writeTimeout))
-+ if err != nil {
-+ return 0, err
-+ }
-+ err = w.conn.writeString(p, w.hostname, w.tag, msg, nl)
- if err != nil {
- return 0, err
- }
-@@ -305,6 +313,10 @@
- return n.conn.Close()
- }
-
-+func (n *netConn) setWriteDeadline(t time.Time) error {
-+ return n.conn.SetWriteDeadline(t)
-+}
-+
- // NewLogger creates a log.Logger whose output is written to
- // the system log service with the specified priority. The logFlag
- // argument is the flag set passed through to log.New to create
-diff -r -u go/src/log/syslog/syslog_unix.go /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go
---- go/src/log/syslog/syslog_unix.go 2013-11-28 13:38:28.000000000 -0800
-+++ /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go 2014-10-03 11:44:39.010403175 -0700
-@@ -19,7 +19,7 @@
- logPaths := []string{"/dev/log", "/var/run/syslog"}
- for _, network := range logTypes {
- for _, path := range logPaths {
-- conn, err := net.Dial(network, path)
-+ conn, err := net.DialTimeout(network, path, connectTimeout)
- if err != nil {
- continue
- } else {
diff --git a/meta/recipes-devtools/go/go-bootstrap-native_1.4.bb b/meta/recipes-devtools/go/go-bootstrap-native_1.4.bb
deleted file mode 100644
index 3d4141e879..0000000000
--- a/meta/recipes-devtools/go/go-bootstrap-native_1.4.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOTSTRAP = "1.4"
-require go-native.inc
-require go-${PV}.inc
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 03/12] go: split out go-runtime into separate recipe
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 01/12] go-native: remove dependency on go-bootstrap-native Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 02/12] go-bootstrap-native: remove recipe Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 04/12] go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS Otavio Salvador
` (10 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
Reorganize the Go toolchain build to split out
the Go standard runtime libraries into a separate
recipe. This simplifies the extension to crosssdk
and cross-canadian builds.
* Adds a patch to the go build tool to prevent it
from trying to rebuild anything in GOROOT, which
is now resident in the target sysroot.
* 'go' bb and inc files are now for building the
compiler for the target only.
* 'go-cross' bb and inc files are now just for
the cross-compiler.
* Adds virtual/<prefix> PROVIDES for the compiler
and runtime
* Removes testdata directories from the sysroot
during staging, as they are unnecessary and
can cause strip errors (some of the test files
are ELF files).
* Re-enables pacakage QA checks, adding selective
INSANE_SKIP settings where needed.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7:
- Fix Upstream-Status header typo
Changes in v6:
- new patch
meta/classes/go.bbclass | 22 +++----
meta/recipes-devtools/go/go-1.8.inc | 1 +
.../go/go-1.8/make-goroot-precious.patch | 21 +++++++
meta/recipes-devtools/go/go-cross.inc | 61 ++++++++++++++++---
meta/recipes-devtools/go/go-cross_1.8.bb | 5 +-
meta/recipes-devtools/go/go-runtime.inc | 58 ++++++++++++++++++
meta/recipes-devtools/go/go-runtime_1.8.bb | 2 +
meta/recipes-devtools/go/go.inc | 68 ++++++----------------
8 files changed, 167 insertions(+), 71 deletions(-)
create mode 100644 meta/recipes-devtools/go/go-1.8/make-goroot-precious.patch
create mode 100644 meta/recipes-devtools/go/go-runtime.inc
create mode 100644 meta/recipes-devtools/go/go-runtime_1.8.bb
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index cb1e96d88b..b3464d2105 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -20,11 +20,11 @@ def get_go_parallel_make(d):
GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
-GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
+GOROOT = "${STAGING_LIBDIR}/go"
GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
-DEPENDS_GOLANG_class-target = "go-cross-${TARGET_ARCH}"
+DEPENDS_GOLANG_class-target = "virtual/${TARGET_PREFIX}go virtual/${TARGET_PREFIX}go-runtime"
DEPENDS_GOLANG_class-native = "go-native"
DEPENDS_append = " ${DEPENDS_GOLANG}"
@@ -32,14 +32,15 @@ DEPENDS_append = " ${DEPENDS_GOLANG}"
export GOBUILDFLAGS ?= "-v"
GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} "
-export GOOS = "${TARGET_GOOS}"
-export GOARCH = "${TARGET_GOARCH}"
-export GOARM = "${TARGET_GOARM}"
+export GO = "${HOST_PREFIX}go"
+GOTOOLDIR = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go/pkg/tool/${BUILD_GOTUPLE}"
+GOTOOLDIR_class-native = "${STAGING_LIBDIR_NATIVE}/go/pkg/tool/${BUILD_GOTUPLE}"
+export GOTOOLDIR
export CGO_ENABLED = "1"
export GOROOT
-export GOROOT_FINAL = "${libdir}/${TARGET_SYS}/go"
+export GOROOT_FINAL = "${libdir}/go"
export GOBIN_FINAL
-export GOPKG_FINAL = "${GOROOT_FINAL}/pkg/${GOOS}_${GOARCH}"
+export GOPKG_FINAL = "${GOROOT_FINAL}/pkg/${TARGET_GOTUPLE}"
export GOSRC_FINAL = "${GOROOT_FINAL}/src"
export GO_GCFLAGS = "${TARGET_CFLAGS}"
export GO_LDFLAGS = "${TARGET_LDFLAGS}"
@@ -55,6 +56,7 @@ GO_INSTALL ?= "${GO_IMPORT}/..."
GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/"
B = "${WORKDIR}/build"
+export GOPATH = "${B}"
python go_do_unpack() {
src_uri = (d.getVar('SRC_URI') or "").split()
@@ -75,7 +77,7 @@ python go_do_unpack() {
}
go_list_packages() {
- GOPATH=${B}:${STAGING_LIBDIR}/${TARGET_SYS}/go go list -f '{{.ImportPath}}' ${GOBUILDFLAGS} ${GO_INSTALL} | \
+ ${GO} list -f '{{.ImportPath}}' ${GOBUILDFLAGS} ${GO_INSTALL} | \
egrep -v '${GO_INSTALL_FILTEROUT}'
}
@@ -84,9 +86,9 @@ go_do_configure() {
}
go_do_compile() {
- GOPATH=${B}:${STAGING_LIBDIR}/${TARGET_SYS}/go go env
+ ${GO} env
if [ -n "${GO_INSTALL}" ]; then
- GOPATH=${B}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install ${GOBUILDFLAGS} `go_list_packages`
+ ${GO} install ${GOBUILDFLAGS} `go_list_packages`
fi
}
do_compile[cleandirs] = "${B}/bin ${B}/pkg"
diff --git a/meta/recipes-devtools/go/go-1.8.inc b/meta/recipes-devtools/go/go-1.8.inc
index bfb26de01d..2920d06f60 100644
--- a/meta/recipes-devtools/go/go-1.8.inc
+++ b/meta/recipes-devtools/go/go-1.8.inc
@@ -14,6 +14,7 @@ SRC_URI += "\
file://fix-cc-handling.patch \
file://split-host-and-target-build.patch \
file://gotooldir.patch \
+ file://make-goroot-precious.patch \
"
SRC_URI[main.md5sum] = "64e9380e07bba907e26a00cf5fcbe77e"
SRC_URI[main.sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6"
diff --git a/meta/recipes-devtools/go/go-1.8/make-goroot-precious.patch b/meta/recipes-devtools/go/go-1.8/make-goroot-precious.patch
new file mode 100644
index 0000000000..28a7a34773
--- /dev/null
+++ b/meta/recipes-devtools/go/go-1.8/make-goroot-precious.patch
@@ -0,0 +1,21 @@
+Prevent GOROOT-resident packages from being rebuilt
+
+Signed-off-by: Matt Madison <matt@madison.systems>
+Upstream-Status: Pending
+
+--- go.orig/src/cmd/go/pkg.go
++++ go/src/cmd/go/pkg.go
+@@ -1496,6 +1496,13 @@ func isStale(p *Package) (bool, string)
+ return true, "build ID mismatch"
+ }
+
++ // For OE builds, make anything in GOROOT non-stale,
++ // to prevent a package build from overwriting the
++ // build root.
++ if p.Goroot && os.Getenv("GOROOT_OVERRIDE") != "1" {
++ return false, "GOROOT-resident packages do not get rebuilt"
++ }
++
+ // Package is stale if a dependency is.
+ for _, p1 := range p.deps {
+ if p1.Stale {
diff --git a/meta/recipes-devtools/go/go-cross.inc b/meta/recipes-devtools/go/go-cross.inc
index 1c2d9e3a3d..df3e4ea914 100644
--- a/meta/recipes-devtools/go/go-cross.inc
+++ b/meta/recipes-devtools/go/go-cross.inc
@@ -1,15 +1,60 @@
inherit cross
-DEPENDS += "gcc-cross-${TARGET_ARCH}"
+PROVIDES = "virtual/${TARGET_PREFIX}go"
+DEPENDS += "go-native"
PN = "go-cross-${TARGET_ARCH}"
-# Ignore how TARGET_ARCH is computed.
-TARGET_ARCH[vardepvalue] = "${TARGET_ARCH}"
-# Ignore target os libc for cross compiler
-#TARGET_OS[vardepexclude] = "LIBCEXTENSION"
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/go-cross:"
+export GOHOSTOS = "${BUILD_GOOS}"
+export GOHOSTARCH = "${BUILD_GOARCH}"
+export GOOS = "${TARGET_GOOS}"
+export GOARCH = "${TARGET_GOARCH}"
+export GOARM = "${TARGET_GOARM}"
+export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
+export GOROOT_FINAL = "${libdir}/go"
+export CGO_ENABLED = "1"
+export CC_FOR_TARGET="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+export CXX_FOR_TARGET="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+CC = "${@d.getVar('BUILD_CC', True).strip()}"
-GOROOT_FINAL = "${libdir}/go"
-export GOROOT_FINAL
+do_configure[noexec] = "1"
+do_compile() {
+ export GOBIN="${B}/bin"
+ rm -rf ${GOBIN} ${B}/pkg
+ mkdir ${GOBIN}
+ cd src
+ ./make.bash --host-only
+ cd ${B}
+}
+
+
+make_wrapper() {
+ rm -f ${D}${bindir}/$2
+ cat <<END >${D}${bindir}/$2
+#!/bin/bash
+here=\`dirname \$0\`
+export GOARCH="${TARGET_GOARCH}"
+export GOOS="${TARGET_GOOS}"
+export GOARM="${TARGET_GOARM}"
+\$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)
+
+ 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/recipes-devtools/go/go-cross_1.8.bb b/meta/recipes-devtools/go/go-cross_1.8.bb
index 56ee084b10..80b5a03f6c 100644
--- a/meta/recipes-devtools/go/go-cross_1.8.bb
+++ b/meta/recipes-devtools/go/go-cross_1.8.bb
@@ -1,5 +1,2 @@
require go-cross.inc
-require go_${PV}.bb
-
-# Go binaries are not understood by the strip tool.
-INHIBIT_SYSROOT_STRIP = "1"
+require go-${PV}.inc
diff --git a/meta/recipes-devtools/go/go-runtime.inc b/meta/recipes-devtools/go/go-runtime.inc
new file mode 100644
index 0000000000..e3eddda837
--- /dev/null
+++ b/meta/recipes-devtools/go/go-runtime.inc
@@ -0,0 +1,58 @@
+DEPENDS = "virtual/${TARGET_PREFIX}go go-native"
+PROVIDES = "virtual/${TARGET_PREFIX}go-runtime"
+
+export GOHOSTOS = "${BUILD_GOOS}"
+export GOHOSTARCH = "${BUILD_GOARCH}"
+export GOOS = "${TARGET_GOOS}"
+export GOARCH = "${TARGET_GOARCH}"
+export GOARM = "${TARGET_GOARM}"
+export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
+export GOROOT_FINAL = "${libdir}/go"
+export GO_TARGET_INSTALL = "std"
+export CGO_ENABLED = "1"
+export CC_FOR_TARGET="${CC}"
+export CXX_FOR_TARGET="${CXX}"
+export GOROOT_OVERRIDE = "1"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ export GOBIN="${B}/bin"
+ export CC="${@d.getVar('BUILD_CC').strip()}"
+ rm -rf ${GOBIN} ${B}/pkg
+ mkdir ${GOBIN}
+ cd src
+ GO_FLAGS="" ./make.bash
+ cd ${B}
+}
+
+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
+ find src -mindepth 1 -maxdepth 1 -type d | while read srcdir; do
+ [ "$srcdir" = "./cmd" ] || cp --preserve=mode,timestamps -R $srcdir ${D}${libdir}/go/src/
+ done
+}
+
+# These testdata directories aren't needed for builds and contain binaries
+# that can cause errors in sysroot_strip(), so just remove them.
+sysroot_stage_all_append() {
+ find ${SYSROOT_DESTDIR}${libdir}/go/src -depth -type d -name 'testdata' -exec rm -rf {} \;
+}
+
+ALLOW_EMPTY_${PN} = "1"
+FILES_${PN}-dev = "${libdir}/go/src ${libdir}/go/pkg/include"
+FILES_${PN}-staticdev = "${libdir}/go/pkg/${TARGET_GOTUPLE} ${libdir}/go/pkg/${TARGET_GOTUPLE}"
+# The testdata directories in the source tree include some binaries for various
+# architectures, scripts, and .a files
+INSANE_SKIP_${PN}-dev = "staticdev ldflags file-rdeps arch"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/meta/recipes-devtools/go/go-runtime_1.8.bb b/meta/recipes-devtools/go/go-runtime_1.8.bb
new file mode 100644
index 0000000000..43b68b4e46
--- /dev/null
+++ b/meta/recipes-devtools/go/go-runtime_1.8.bb
@@ -0,0 +1,2 @@
+require go-${PV}.inc
+require go-runtime.inc
diff --git a/meta/recipes-devtools/go/go.inc b/meta/recipes-devtools/go/go.inc
index 9efbd275bd..5984a60c28 100644
--- a/meta/recipes-devtools/go/go.inc
+++ b/meta/recipes-devtools/go/go.inc
@@ -1,16 +1,5 @@
inherit goarch
-DEPENDS += "go-native"
-
-# libgcc is required for the target specific libraries to build
-# properly, but apparently not for go-cross and, more importantly,
-# also can't be used there because go-cross cannot depend on
-# the tune-specific libgcc. Otherwise go-cross also would have
-# to be tune-specific.
-DEPENDS += "${@ 'libgcc' if not oe.utils.inherits(d, 'cross') else ''}"
-
-# Prevent runstrip from running because you get errors when the host arch != target arch
-INHIBIT_PACKAGE_STRIP = "1"
-INHIBIT_SYSROOT_STRIP = "1"
+DEPENDS = "virtual/${TARGET_PREFIX}go go-native"
export GOHOSTOS = "${BUILD_GOOS}"
export GOHOSTARCH = "${BUILD_GOARCH}"
@@ -22,13 +11,11 @@ export GOROOT_FINAL = "${libdir}/go"
export CGO_ENABLED = "1"
export CC_FOR_TARGET = "${CC}"
export CXX_FOR_TARGET = "${CXX}"
+export GO_TARGET_INSTALL = "cmd"
+export GO_FLAGS = "-a"
do_configure[noexec] = "1"
-do_compile_prepend_class-cross() {
- export CGO_ENABLED=0
-}
-
do_compile() {
export GOBIN="${B}/bin"
export CC="${@d.getVar('BUILD_CC', True).strip()}"
@@ -39,43 +26,26 @@ do_compile() {
mkdir -p ${WORKDIR}/build-tmp
cd src
- ./make.bash --host-only
- # Ensure cgo.a is built with the target toolchain
- export GOBIN="${B}/target/bin"
- rm -rf ${GOBIN}
- mkdir -p ${GOBIN}
- GO_FLAGS="-a" ./make.bash
-}
-
-do_install_class-target() {
- install -d ${D}${libdir}/go
- cp -a ${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)
- install -d ${D}${bindir}
- if [ -d ${B}/bin/${GOOS}_${GOARCH} ]
- then
- install -m 0755 ${B}/bin/${GOOS}_${GOARCH}/* ${D}${bindir}
- else
- install -m 0755 ${B}/bin/* ${D}${bindir}
- fi
+ ./make.bash
+ cd ${B}
}
-do_install_class-cross() {
- install -d ${D}${libdir}/go
- cp -a ${B}/pkg ${D}${libdir}/go/
+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
- (cd ${S}/src; for d in *; do \
- [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
- done)
+ cp --preserve=mode,timestamps -R ${S}/src/cmd ${D}${libdir}/go/src/
+ install -d ${D}${libdir}/go/bin
install -d ${D}${bindir}
- for f in ${B}/bin/go*
- do
- install -m755 $f ${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
}
-do_package_qa[noexec] = "1"
-RDEPENDS_${PN} += "perl"
+PACKAGES = "${PN} ${PN}-dev"
+FILES_${PN} = "${libdir}/go/bin ${libdir}/go/pkg/tool/${TARGET_GOTUPLE} ${bindir}"
+FILES_${PN}-dev = "${libdir}/go"
+RDEPENDS_${PN}-dev = "perl bash"
+INSANE_SKIP_${PN} = "ldflags"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 04/12] go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (2 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 03/12] go: split out go-runtime into separate recipe Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 05/12] go.bbclass: remove some xxx_FINAL variables Otavio Salvador
` (9 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
These variables are not used anywhere.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/classes/go.bbclass | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index b3464d2105..0ff82ca2bb 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -42,8 +42,6 @@ export GOROOT_FINAL = "${libdir}/go"
export GOBIN_FINAL
export GOPKG_FINAL = "${GOROOT_FINAL}/pkg/${TARGET_GOTUPLE}"
export GOSRC_FINAL = "${GOROOT_FINAL}/src"
-export GO_GCFLAGS = "${TARGET_CFLAGS}"
-export GO_LDFLAGS = "${TARGET_LDFLAGS}"
export CGO_CFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CFLAGS}"
export CGO_CPPFLAGS = "${TARGET_CPPFLAGS}"
export CGO_CXXFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CXXFLAGS}"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 05/12] go.bbclass: remove some xxx_FINAL variables
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (3 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 04/12] go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 06/12] go.bbclass: clean up CGO_xxx settings Otavio Salvador
` (8 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
GOROOT_FINAL is used by the Go linker for rewriting
source paths when the build GOROOT is not the same
as the runtime GOROOT, but the other _FINAL variables
aren't really needed.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/classes/go.bbclass | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 0ff82ca2bb..c0b117d155 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -21,8 +21,7 @@ GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
GOROOT = "${STAGING_LIBDIR}/go"
-GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
-GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
+export GOROOT_FINAL = "${libdir}/go"
DEPENDS_GOLANG_class-target = "virtual/${TARGET_PREFIX}go virtual/${TARGET_PREFIX}go-runtime"
DEPENDS_GOLANG_class-native = "go-native"
@@ -38,18 +37,11 @@ GOTOOLDIR_class-native = "${STAGING_LIBDIR_NATIVE}/go/pkg/tool/${BUILD_GOTUPLE}"
export GOTOOLDIR
export CGO_ENABLED = "1"
export GOROOT
-export GOROOT_FINAL = "${libdir}/go"
-export GOBIN_FINAL
-export GOPKG_FINAL = "${GOROOT_FINAL}/pkg/${TARGET_GOTUPLE}"
-export GOSRC_FINAL = "${GOROOT_FINAL}/src"
export CGO_CFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CFLAGS}"
export CGO_CPPFLAGS = "${TARGET_CPPFLAGS}"
export CGO_CXXFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CXXFLAGS}"
export CGO_LDFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_LDFLAGS}"
-FILES_${PN}-staticdev += "${GOSRC_FINAL}/${GO_IMPORT}"
-FILES_${PN}-staticdev += "${GOPKG_FINAL}/${GO_IMPORT}*"
-
GO_INSTALL ?= "${GO_IMPORT}/..."
GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/"
@@ -92,10 +84,10 @@ go_do_compile() {
do_compile[cleandirs] = "${B}/bin ${B}/pkg"
go_do_install() {
- install -d ${D}${GOROOT_FINAL}/src/${GO_IMPORT}
+ install -d ${D}${libdir}/go/src/${GO_IMPORT}
tar -C ${S}/src/${GO_IMPORT} -cf - --exclude-vcs . | \
- tar -C ${D}${GOROOT_FINAL}/src/${GO_IMPORT} --no-same-owner -xf -
- tar -C ${B} -cf - pkg | tar -C ${D}${GOROOT_FINAL} --no-same-owner -xf -
+ tar -C ${D}${libdir}/go/src/${GO_IMPORT} --no-same-owner -xf -
+ tar -C ${B} -cf - pkg | tar -C ${D}${libdir}/go --no-same-owner -xf -
if [ -n "`ls ${B}/${GO_BUILD_BINDIR}/`" ]; then
install -d ${D}${bindir}
@@ -104,3 +96,6 @@ go_do_install() {
}
EXPORT_FUNCTIONS do_unpack do_configure do_compile do_install
+
+FILES_${PN}-dev = "${libdir}/go/src"
+FILES_${PN}-staticdev = "${libdir}/go/pkg"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 06/12] go.bbclass: clean up CGO_xxx settings
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (4 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 05/12] go.bbclass: remove some xxx_FINAL variables Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 07/12] go: rename go.inc -> go-target.inc Otavio Salvador
` (7 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
* use conditional assignment for the CGO_xxx
variables, so they can be overridden more easily
* remove the TOOLCHAIN_OPTIONS and TARGET_CC_ARCH
references, since those are already present in
CC and CXX
* remove the TARGET_ prefix so the values are
appropriate for native, nativesdk, etc. builds
* move the GOROOT export away from the CGO settings
and closer to its definition
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/classes/go.bbclass | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index c0b117d155..8fb41e5c09 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -21,6 +21,7 @@ GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
GOROOT = "${STAGING_LIBDIR}/go"
+export GOROOT
export GOROOT_FINAL = "${libdir}/go"
DEPENDS_GOLANG_class-target = "virtual/${TARGET_PREFIX}go virtual/${TARGET_PREFIX}go-runtime"
@@ -35,12 +36,12 @@ export GO = "${HOST_PREFIX}go"
GOTOOLDIR = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go/pkg/tool/${BUILD_GOTUPLE}"
GOTOOLDIR_class-native = "${STAGING_LIBDIR_NATIVE}/go/pkg/tool/${BUILD_GOTUPLE}"
export GOTOOLDIR
-export CGO_ENABLED = "1"
-export GOROOT
-export CGO_CFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CFLAGS}"
-export CGO_CPPFLAGS = "${TARGET_CPPFLAGS}"
-export CGO_CXXFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_CXXFLAGS}"
-export CGO_LDFLAGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_LDFLAGS}"
+
+export CGO_ENABLED ?= "1"
+export CGO_CFLAGS ?= "${CFLAGS}"
+export CGO_CPPFLAGS ?= "${CPPFLAGS}"
+export CGO_CXXFLAGS ?= "${CXXFLAGS}"
+export CGO_LDFLAGS ?= "${LDFLAGS}"
GO_INSTALL ?= "${GO_IMPORT}/..."
GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 07/12] go: rename go.inc -> go-target.inc
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (5 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 06/12] go.bbclass: clean up CGO_xxx settings Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 08/12] go-cross: take GOARM environment setting Otavio Salvador
` (6 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
to make it clearer that it is only used for building
the toolchain for the target.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/{go.inc => go-target.inc} | 0
meta/recipes-devtools/go/go_1.8.bb | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
rename meta/recipes-devtools/go/{go.inc => go-target.inc} (100%)
diff --git a/meta/recipes-devtools/go/go.inc b/meta/recipes-devtools/go/go-target.inc
similarity index 100%
rename from meta/recipes-devtools/go/go.inc
rename to meta/recipes-devtools/go/go-target.inc
diff --git a/meta/recipes-devtools/go/go_1.8.bb b/meta/recipes-devtools/go/go_1.8.bb
index ef8bc14383..08ab793f86 100644
--- a/meta/recipes-devtools/go/go_1.8.bb
+++ b/meta/recipes-devtools/go/go_1.8.bb
@@ -1,4 +1,4 @@
require go-${PV}.inc
-require go.inc
+require go-target.inc
TUNE_CCARGS_remove = "-march=mips32r2"
SECURITY_PIE_CFLAGS_remove = "-fPIE -pie"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 08/12] go-cross: take GOARM environment setting
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (6 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 07/12] go: rename go.inc -> go-target.inc Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 09/12] go: enable nativesdk builds for the toolchain Otavio Salvador
` (5 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
Instead of hard-coding GOARM to ${TARGET_GOARM} in
the wrapper script, take it from an existing
environment setting if present. This allows the
same cross-compiler to be used for different ARM
targets.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/go-cross.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/go/go-cross.inc b/meta/recipes-devtools/go/go-cross.inc
index df3e4ea914..d18d9613ff 100644
--- a/meta/recipes-devtools/go/go-cross.inc
+++ b/meta/recipes-devtools/go/go-cross.inc
@@ -36,7 +36,7 @@ make_wrapper() {
here=\`dirname \$0\`
export GOARCH="${TARGET_GOARCH}"
export GOOS="${TARGET_GOOS}"
-export GOARM="${TARGET_GOARM}"
+export GOARM="\${GOARM:-${TARGET_GOARM}}"
\$here/../../lib/${CROSS_TARGET_SYS_DIR}/go/bin/$1 "\$@"
END
chmod +x ${D}${bindir}/$2
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 09/12] go: enable nativesdk builds for the toolchain
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (7 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 08/12] go-cross: take GOARM environment setting Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 10/12] go-crosssdk: add recipe Otavio Salvador
` (4 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
All that's needed is setting BBCLASSEXTEND.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/go-target.inc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/recipes-devtools/go/go-target.inc b/meta/recipes-devtools/go/go-target.inc
index 5984a60c28..0d80bf0d97 100644
--- a/meta/recipes-devtools/go/go-target.inc
+++ b/meta/recipes-devtools/go/go-target.inc
@@ -1,5 +1,6 @@
inherit goarch
DEPENDS = "virtual/${TARGET_PREFIX}go go-native"
+DEPENDS_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk go-native"
export GOHOSTOS = "${BUILD_GOOS}"
export GOHOSTARCH = "${BUILD_GOARCH}"
@@ -49,3 +50,5 @@ FILES_${PN} = "${libdir}/go/bin ${libdir}/go/pkg/tool/${TARGET_GOTUPLE} ${bindir
FILES_${PN}-dev = "${libdir}/go"
RDEPENDS_${PN}-dev = "perl bash"
INSANE_SKIP_${PN} = "ldflags"
+
+BBCLASSEXTEND = "nativesdk"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 10/12] go-crosssdk: add recipe
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (8 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 09/12] go: enable nativesdk builds for the toolchain Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 11/12] go.bbclass: enable nativesdk builds for Go packages Otavio Salvador
` (3 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
Enable crosssdk builds for the Go toolchain.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/recipes-devtools/go/go-crosssdk.inc | 55 +++++++++++++++++++++++++++++
meta/recipes-devtools/go/go-crosssdk_1.8.bb | 2 ++
2 files changed, 57 insertions(+)
create mode 100644 meta/recipes-devtools/go/go-crosssdk.inc
create mode 100644 meta/recipes-devtools/go/go-crosssdk_1.8.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk.inc b/meta/recipes-devtools/go/go-crosssdk.inc
new file mode 100644
index 0000000000..e9bc677131
--- /dev/null
+++ b/meta/recipes-devtools/go/go-crosssdk.inc
@@ -0,0 +1,55 @@
+inherit crosssdk
+
+DEPENDS = "go-native virtual/${TARGET_PREFIX}gcc-crosssdk virtual/nativesdk-${TARGET_PREFIX}compilerlibs virtual/${TARGET_PREFIX}binutils-crosssdk"
+PN = "go-crosssdk-${TARGET_ARCH}"
+PROVIDES = "virtual/${TARGET_PREFIX}go-crosssdk"
+
+export GOHOSTOS = "${BUILD_GOOS}"
+export GOHOSTARCH = "${BUILD_GOARCH}"
+export GOOS = "${TARGET_GOOS}"
+export GOARCH = "${TARGET_GOARCH}"
+export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
+export GOROOT_FINAL = "${libdir}/go"
+export CGO_ENABLED = "1"
+export CC_FOR_TARGET="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+export CXX_FOR_TARGET="${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}"
+CC = "${@d.getVar('BUILD_CC', True).strip()}"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ export GOBIN="${B}/bin"
+ rm -rf ${GOBIN} ${B}/pkg
+ mkdir ${GOBIN}
+ cd src
+ ./make.bash --host-only
+ cd ${B}
+}
+
+make_wrapper() {
+ rm -f ${D}${bindir}/$2
+ cat <<END >${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/${TARGET_GOTUPLE} ${D}${libdir}/go/pkg/tool/
+ 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
+}
+
+FILES_${PN}-staticdev = "${libdir}/go/pkg"
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.8.bb b/meta/recipes-devtools/go/go-crosssdk_1.8.bb
new file mode 100644
index 0000000000..1857c8a577
--- /dev/null
+++ b/meta/recipes-devtools/go/go-crosssdk_1.8.bb
@@ -0,0 +1,2 @@
+require go-crosssdk.inc
+require go-${PV}.inc
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 11/12] go.bbclass: enable nativesdk builds for Go packages
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (9 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 10/12] go-crosssdk: add recipe Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 12/12] go-cross-canadian: add recipe Otavio Salvador
` (2 subsequent siblings)
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
Adding the necessary overrides for nativesdk builds.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7: None
Changes in v6:
- new patch
meta/classes/go.bbclass | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 8fb41e5c09..8d363e86a2 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -20,12 +20,14 @@ def get_go_parallel_make(d):
GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
+GOROOT_class-nativesdk = "${STAGING_DIR_TARGET}${libdir}/go"
GOROOT = "${STAGING_LIBDIR}/go"
export GOROOT
export GOROOT_FINAL = "${libdir}/go"
DEPENDS_GOLANG_class-target = "virtual/${TARGET_PREFIX}go virtual/${TARGET_PREFIX}go-runtime"
DEPENDS_GOLANG_class-native = "go-native"
+DEPENDS_GOLANG_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk virtual/${TARGET_PREFIX}go-runtime"
DEPENDS_append = " ${DEPENDS_GOLANG}"
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v7 12/12] go-cross-canadian: add recipe
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (10 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 11/12] go.bbclass: enable nativesdk builds for Go packages Otavio Salvador
@ 2017-09-11 18:28 ` Otavio Salvador
2017-09-11 19:00 ` ✗ patchtest: failure for Revamp the Go support (rev7) Patchwork
2017-09-12 9:45 ` [PATCH v7 00/12] Revamp the Go support Richard Purdie
13 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 18:28 UTC (permalink / raw)
To: OpenEmbedded Core Mailing List; +Cc: Will Newton, Otavio Salvador
From: Matt Madison <matt@madison.systems>
Enable cross-canadian builds of the Go toolchain. This
requires an additional patch to the Go source to allow us
to use the native GOTOOLDIR during the bootstrap phase.
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---
Changes in v7:
- Add patch header
Changes in v6:
- new patch
meta/recipes-devtools/go/go-1.8.inc | 1 +
.../go/go-1.8/set-gotooldir-during-bootstrap.patch | 22 ++++++++
meta/recipes-devtools/go/go-cross-canadian.inc | 64 ++++++++++++++++++++++
meta/recipes-devtools/go/go-cross-canadian_1.8.bb | 2 +
4 files changed, 89 insertions(+)
create mode 100644 meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch
create mode 100644 meta/recipes-devtools/go/go-cross-canadian.inc
create mode 100644 meta/recipes-devtools/go/go-cross-canadian_1.8.bb
diff --git a/meta/recipes-devtools/go/go-1.8.inc b/meta/recipes-devtools/go/go-1.8.inc
index 2920d06f60..141c0994c3 100644
--- a/meta/recipes-devtools/go/go-1.8.inc
+++ b/meta/recipes-devtools/go/go-1.8.inc
@@ -15,6 +15,7 @@ SRC_URI += "\
file://split-host-and-target-build.patch \
file://gotooldir.patch \
file://make-goroot-precious.patch \
+ file://set-gotooldir-during-bootstrap.patch \
"
SRC_URI[main.md5sum] = "64e9380e07bba907e26a00cf5fcbe77e"
SRC_URI[main.sha256sum] = "5f5dea2447e7dcfdc50fa6b94c512e58bfba5673c039259fd843f68829d99fa6"
diff --git a/meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch b/meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch
new file mode 100644
index 0000000000..b3208e6c8a
--- /dev/null
+++ b/meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch
@@ -0,0 +1,22 @@
+Set GOTOOLDIR during bootstrap
+
+Signed-off-by: Matt Madison <matt@madison.systems>
+Upstream-status: Pending
+
+Index: go/src/make.bash
+===================================================================
+--- go.orig/src/make.bash
++++ go/src/make.bash
+@@ -172,10 +172,11 @@ if [ "$do_host_build" = "yes" ]; then
+ mv cmd/dist/dist "$GOTOOLDIR"/dist
+ echo
+
++ GOTOOLDIR_BOOTSTRAP="${GOTOOLDIR_BOOTSTRAP:-$GOTOOLDIR}"
+ echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH."
+ # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however,
+ # use the host compiler, CC, from `cmd/dist/dist env` instead.
+- CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \
++ CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH GOTOOLDIR="$GOTOOLDIR_BOOTSTRAP" \
+ "$GOTOOLDIR"/go_bootstrap install -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
+ echo
+ fi
diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc b/meta/recipes-devtools/go/go-cross-canadian.inc
new file mode 100644
index 0000000000..f0315d558a
--- /dev/null
+++ b/meta/recipes-devtools/go/go-cross-canadian.inc
@@ -0,0 +1,64 @@
+inherit cross-canadian
+
+DEPENDS = "go-native virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-${HOST_PREFIX}libc-for-gcc virtual/nativesdk-${HOST_PREFIX}compilerlibs"
+PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+
+export GOHOSTOS = "${BUILD_GOOS}"
+export GOHOSTARCH = "${BUILD_GOARCH}"
+export GOOS = "${HOST_GOOS}"
+export GOARCH = "${HOST_GOARCH}"
+export GOARM = "${HOST_GOARM}"
+export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go"
+export GOTOOLDIR_BOOTSTRAP = "${GOROOT_BOOTSTRAP}/pkg/tool/${BUILD_GOTUPLE}"
+export GOROOT_FINAL = "${libdir}/go"
+export CGO_ENABLED = "1"
+export CC_FOR_TARGET = "${HOST_CC}"
+export CXX_FOR_TARGET = "${HOST_CXX}"
+CC = "${@d.getVar('BUILD_CC', True).strip()}"
+export GO_LDFLAGS = '-linkmode external -extld ${HOST_PREFIX}gcc -extldflags "${TOOLCHAIN_OPTIONS} ${LDFLAGS}"'
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ export GOBIN="${B}/bin"
+ rm -rf ${GOBIN} ${B}/pkg
+ mkdir ${GOBIN}
+ cd src
+ ./make.bash --host-only --no-banner
+ cd ${B}
+}
+
+
+make_wrapper() {
+ rm -f ${D}${bindir}/$2
+ cat <<END >${D}${bindir}/$2
+#!/bin/bash
+here=\`dirname \$0\`
+native_goroot=\`readlink -f \$here/../../lib/${TARGET_SYS}/go\`
+export GOARCH="${TARGET_GOARCH}"
+export GOOS="${TARGET_GOOS}"
+export GOARM="\${GOARM:-${TARGET_GOARM}}"
+export GOTOOLDIR="\$native_goroot/pkg/tool/${HOST_GOTUPLE}"
+export GOROOT="\${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
+ 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)
+ 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
+}
+
+FILES_${PN}-staticdev = "${libdir}/go/pkg"
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.8.bb b/meta/recipes-devtools/go/go-cross-canadian_1.8.bb
new file mode 100644
index 0000000000..7ac9449e47
--- /dev/null
+++ b/meta/recipes-devtools/go/go-cross-canadian_1.8.bb
@@ -0,0 +1,2 @@
+require go-cross-canadian.inc
+require go-${PV}.inc
--
2.14.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* ✗ patchtest: failure for Revamp the Go support (rev7)
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (11 preceding siblings ...)
2017-09-11 18:28 ` [PATCH v7 12/12] go-cross-canadian: add recipe Otavio Salvador
@ 2017-09-11 19:00 ` Patchwork
2017-09-11 19:53 ` Leonardo Sandoval
2017-09-12 9:45 ` [PATCH v7 00/12] Revamp the Go support Richard Purdie
13 siblings, 1 reply; 22+ messages in thread
From: Patchwork @ 2017-09-11 19:00 UTC (permalink / raw)
To: Otavio Salvador; +Cc: openembedded-core
== Series Details ==
Series: Revamp the Go support (rev7)
Revision: 7
URL : https://patchwork.openembedded.org/series/8697/
State : failure
== Summary ==
Thank you for submitting this patch series to OpenEmbedded Core. This is
an automated response. Several tests have been executed on the proposed
series by patchtest resulting in the following failures:
* Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence]
Suggested fix Add Upstream-Status: <status> to the header of meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch (possible values: Pending, Submitted, Accepted, Backport, Denied, Inappropriate)
If you believe any of these test results are incorrect, please reply to the
mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
Otherwise we would appreciate you correcting the issues and submitting a new
version of the patchset if applicable. Please ensure you add/increment the
version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
[PATCH v3] -> ...).
---
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: ✗ patchtest: failure for Revamp the Go support (rev7)
2017-09-11 19:00 ` ✗ patchtest: failure for Revamp the Go support (rev7) Patchwork
@ 2017-09-11 19:53 ` Leonardo Sandoval
2017-09-11 20:34 ` Otavio Salvador
0 siblings, 1 reply; 22+ messages in thread
From: Leonardo Sandoval @ 2017-09-11 19:53 UTC (permalink / raw)
To: Patchwork; +Cc: Otavio Salvador, openembedded-core
Patchwork <patchwork@patchwork.openembedded.org> writes:
> == Series Details ==
>
> Series: Revamp the Go support (rev7)
> Revision: 7
> URL : https://patchwork.openembedded.org/series/8697/
> State : failure
>
> == Summary ==
>
>
> Thank you for submitting this patch series to OpenEmbedded Core. This is
> an automated response. Several tests have been executed on the proposed
> series by patchtest resulting in the following failures:
>
>
>
> * Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence]
> Suggested fix Add Upstream-Status: <status> to the header of meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch (possible values: Pending, Submitted, Accepted, Backport, Denied, Inappropriate)
>
patchtest is picky on this check, so '+Upstream-status: Pending' must be
'+Upstream-Status: Pending'
>
>
> If you believe any of these test results are incorrect, please reply to the
> mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
> Otherwise we would appreciate you correcting the issues and submitting a new
> version of the patchset if applicable. Please ensure you add/increment the
> version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
> [PATCH v3] -> ...).
>
> ---
> Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
> Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: ✗ patchtest: failure for Revamp the Go support (rev7)
2017-09-11 19:53 ` Leonardo Sandoval
@ 2017-09-11 20:34 ` Otavio Salvador
0 siblings, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-11 20:34 UTC (permalink / raw)
To: Leonardo Sandoval
Cc: Patchwork, Otavio Salvador,
Patches and discussions about the oe-core layer
On Mon, Sep 11, 2017 at 4:53 PM, Leonardo Sandoval
<leonardo.sandoval.gonzalez@linux.intel.com> wrote:
...
>> * Issue Added patch file is missing Upstream-Status in the header [test_upstream_status_presence]
>> Suggested fix Add Upstream-Status: <status> to the header of meta/recipes-devtools/go/go-1.8/set-gotooldir-during-bootstrap.patch (possible values: Pending, Submitted, Accepted, Backport, Denied, Inappropriate)
>>
> patchtest is picky on this check, so '+Upstream-status: Pending' must be
> '+Upstream-Status: Pending'
I fixed it locally; I will wait til tomorrow to send a new version.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
` (12 preceding siblings ...)
2017-09-11 19:00 ` ✗ patchtest: failure for Revamp the Go support (rev7) Patchwork
@ 2017-09-12 9:45 ` Richard Purdie
2017-09-12 9:58 ` Martin Jansa
2017-09-12 11:57 ` Otavio Salvador
13 siblings, 2 replies; 22+ messages in thread
From: Richard Purdie @ 2017-09-12 9:45 UTC (permalink / raw)
To: Otavio Salvador, OpenEmbedded Core Mailing List; +Cc: Will Newton
On Mon, 2017-09-11 at 15:28 -0300, Otavio Salvador wrote:
> This improves the Go support on OE-Core.
>
> We are trying to port as much as possible work done by Matt on
> meta-golang back to OE-Core and also to avoid carrying old releases
> as
> there is no need to support more versions of Go toolchain.
>
> This fixes issues in existing support as well as add support for SDK
> generation which supports Go.
https://autobuilder.yocto.io/builders/nightly-no-x11/builds/471/steps/BuildImages/logs/stdio
ERROR: go-dep-0.3.0-r0 do_package_qa: QA Issue: /usr/lib/go/src/github.com/golang/dep/vendor/github.com/pelletier/go-toml/test.sh contained in package go-dep-dev requires /bin/bash, but no providers found in RDEPENDS_go-dep-dev? [file-rdeps]
ERROR: go-dep-0.3.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: go-dep-0.3.0-r0 do_package_qa: Function failed: do_package_qa
Should be easy to fix hopefully!
Cheers,
Richard
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-12 9:45 ` [PATCH v7 00/12] Revamp the Go support Richard Purdie
@ 2017-09-12 9:58 ` Martin Jansa
2017-09-12 11:57 ` Matt Madison
2017-09-12 11:57 ` Otavio Salvador
1 sibling, 1 reply; 22+ messages in thread
From: Martin Jansa @ 2017-09-12 9:58 UTC (permalink / raw)
To: Richard Purdie
Cc: Will Newton, Otavio Salvador, OpenEmbedded Core Mailing List
[-- Attachment #1: Type: text/plain, Size: 1773 bytes --]
Interesting I've seen this issue only for PN-staticdev package
ERROR: QA Issue: go-dep-staticdev rdepends on bash, but it isn't a build
dependency, missing bash in DEPENDS or PACKAGECONFIG? [build-deps]
and the bash is already in RDEPENDS (the warning is shown in our builds,
because we use busybox as RPROVIDER for bash).
So maybe this file isn't always included? Or something else might be
non-deterministic.
On Tue, Sep 12, 2017 at 11:45 AM, Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:
> On Mon, 2017-09-11 at 15:28 -0300, Otavio Salvador wrote:
> > This improves the Go support on OE-Core.
> >
> > We are trying to port as much as possible work done by Matt on
> > meta-golang back to OE-Core and also to avoid carrying old releases
> > as
> > there is no need to support more versions of Go toolchain.
> >
> > This fixes issues in existing support as well as add support for SDK
> > generation which supports Go.
>
> https://autobuilder.yocto.io/builders/nightly-no-x11/
> builds/471/steps/BuildImages/logs/stdio
>
> ERROR: go-dep-0.3.0-r0 do_package_qa: QA Issue: /usr/lib/go/src/
> github.com/golang/dep/vendor/github.com/pelletier/go-toml/test.sh
> contained in package go-dep-dev requires /bin/bash, but no providers found
> in RDEPENDS_go-dep-dev? [file-rdeps]
> ERROR: go-dep-0.3.0-r0 do_package_qa: QA run found fatal errors. Please
> consider fixing them.
> ERROR: go-dep-0.3.0-r0 do_package_qa: Function failed: do_package_qa
>
> Should be easy to fix hopefully!
>
> Cheers,
>
> Richard
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
[-- Attachment #2: Type: text/html, Size: 2750 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-12 9:58 ` Martin Jansa
@ 2017-09-12 11:57 ` Matt Madison
2017-09-12 12:22 ` Martin Jansa
2017-09-12 12:22 ` Otavio Salvador
0 siblings, 2 replies; 22+ messages in thread
From: Matt Madison @ 2017-09-12 11:57 UTC (permalink / raw)
To: Martin Jansa; +Cc: OpenEmbedded Core Mailing List, Otavio Salvador, Will Newton
On Tue, Sep 12, 2017 at 2:58 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> Interesting I've seen this issue only for PN-staticdev package
> ERROR: QA Issue: go-dep-staticdev rdepends on bash, but it isn't a build
> dependency, missing bash in DEPENDS or PACKAGECONFIG? [build-deps]
>
> and the bash is already in RDEPENDS (the warning is shown in our builds,
> because we use busybox as RPROVIDER for bash).
>
> So maybe this file isn't always included? Or something else might be
> non-deterministic.
Depends on which patch set you were testing against. One of the
recent go.bbclass changes moved the sources from the -staticdev
package to the -dev package (which is more appropriate, since the
sources are also the header files). I thought I had updated the
go-dep recipe along with that, but I may have missed it.
-Matt
>
> On Tue, Sep 12, 2017 at 11:45 AM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>>
>> On Mon, 2017-09-11 at 15:28 -0300, Otavio Salvador wrote:
>> > This improves the Go support on OE-Core.
>> >
>> > We are trying to port as much as possible work done by Matt on
>> > meta-golang back to OE-Core and also to avoid carrying old releases
>> > as
>> > there is no need to support more versions of Go toolchain.
>> >
>> > This fixes issues in existing support as well as add support for SDK
>> > generation which supports Go.
>>
>>
>> https://autobuilder.yocto.io/builders/nightly-no-x11/builds/471/steps/BuildImages/logs/stdio
>>
>> ERROR: go-dep-0.3.0-r0 do_package_qa: QA Issue:
>> /usr/lib/go/src/github.com/golang/dep/vendor/github.com/pelletier/go-toml/test.sh
>> contained in package go-dep-dev requires /bin/bash, but no providers found
>> in RDEPENDS_go-dep-dev? [file-rdeps]
>> ERROR: go-dep-0.3.0-r0 do_package_qa: QA run found fatal errors. Please
>> consider fixing them.
>> ERROR: go-dep-0.3.0-r0 do_package_qa: Function failed: do_package_qa
>>
>> Should be easy to fix hopefully!
>>
>> Cheers,
>>
>> Richard
>>
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-12 9:45 ` [PATCH v7 00/12] Revamp the Go support Richard Purdie
2017-09-12 9:58 ` Martin Jansa
@ 2017-09-12 11:57 ` Otavio Salvador
1 sibling, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-12 11:57 UTC (permalink / raw)
To: Richard Purdie
Cc: Will Newton, Otavio Salvador, OpenEmbedded Core Mailing List
On Tue, Sep 12, 2017 at 6:45 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> On Mon, 2017-09-11 at 15:28 -0300, Otavio Salvador wrote:
>> This improves the Go support on OE-Core.
>>
>> We are trying to port as much as possible work done by Matt on
>> meta-golang back to OE-Core and also to avoid carrying old releases
>> as
>> there is no need to support more versions of Go toolchain.
>>
>> This fixes issues in existing support as well as add support for SDK
>> generation which supports Go.
>
> https://autobuilder.yocto.io/builders/nightly-no-x11/builds/471/steps/BuildImages/logs/stdio
>
> ERROR: go-dep-0.3.0-r0 do_package_qa: QA Issue: /usr/lib/go/src/github.com/golang/dep/vendor/github.com/pelletier/go-toml/test.sh contained in package go-dep-dev requires /bin/bash, but no providers found in RDEPENDS_go-dep-dev? [file-rdeps]
> ERROR: go-dep-0.3.0-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
> ERROR: go-dep-0.3.0-r0 do_package_qa: Function failed: do_package_qa
>
> Should be easy to fix hopefully!
I will try to reproduce it. I guess it may be varying when build host
is == target. Checking ...
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-12 11:57 ` Matt Madison
@ 2017-09-12 12:22 ` Martin Jansa
2017-09-12 12:22 ` Otavio Salvador
1 sibling, 0 replies; 22+ messages in thread
From: Martin Jansa @ 2017-09-12 12:22 UTC (permalink / raw)
To: Matt Madison; +Cc: OpenEmbedded Core Mailing List, Otavio Salvador, Will Newton
[-- Attachment #1: Type: text/plain, Size: 2830 bytes --]
On Tue, Sep 12, 2017 at 04:57:49AM -0700, Matt Madison wrote:
> On Tue, Sep 12, 2017 at 2:58 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> > Interesting I've seen this issue only for PN-staticdev package
> > ERROR: QA Issue: go-dep-staticdev rdepends on bash, but it isn't a build
> > dependency, missing bash in DEPENDS or PACKAGECONFIG? [build-deps]
> >
> > and the bash is already in RDEPENDS (the warning is shown in our builds,
> > because we use busybox as RPROVIDER for bash).
> >
> > So maybe this file isn't always included? Or something else might be
> > non-deterministic.
>
> Depends on which patch set you were testing against. One of the
> recent go.bbclass changes moved the sources from the -staticdev
> package to the -dev package (which is more appropriate, since the
> sources are also the header files). I thought I had updated the
> go-dep recipe along with that, but I may have missed it.
I was testing only what is currenly in master. I'm sorry if this is new
patchset on top of what was already merged I didn't notice it.
> > On Tue, Sep 12, 2017 at 11:45 AM, Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> >>
> >> On Mon, 2017-09-11 at 15:28 -0300, Otavio Salvador wrote:
> >> > This improves the Go support on OE-Core.
> >> >
> >> > We are trying to port as much as possible work done by Matt on
> >> > meta-golang back to OE-Core and also to avoid carrying old releases
> >> > as
> >> > there is no need to support more versions of Go toolchain.
> >> >
> >> > This fixes issues in existing support as well as add support for SDK
> >> > generation which supports Go.
> >>
> >>
> >> https://autobuilder.yocto.io/builders/nightly-no-x11/builds/471/steps/BuildImages/logs/stdio
> >>
> >> ERROR: go-dep-0.3.0-r0 do_package_qa: QA Issue:
> >> /usr/lib/go/src/github.com/golang/dep/vendor/github.com/pelletier/go-toml/test.sh
> >> contained in package go-dep-dev requires /bin/bash, but no providers found
> >> in RDEPENDS_go-dep-dev? [file-rdeps]
> >> ERROR: go-dep-0.3.0-r0 do_package_qa: QA run found fatal errors. Please
> >> consider fixing them.
> >> ERROR: go-dep-0.3.0-r0 do_package_qa: Function failed: do_package_qa
> >>
> >> Should be easy to fix hopefully!
> >>
> >> Cheers,
> >>
> >> Richard
> >>
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> Openembedded-core@lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >
> >
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v7 00/12] Revamp the Go support
2017-09-12 11:57 ` Matt Madison
2017-09-12 12:22 ` Martin Jansa
@ 2017-09-12 12:22 ` Otavio Salvador
1 sibling, 0 replies; 22+ messages in thread
From: Otavio Salvador @ 2017-09-12 12:22 UTC (permalink / raw)
To: Matt Madison; +Cc: Will Newton, Otavio Salvador, OpenEmbedded Core Mailing List
On Tue, Sep 12, 2017 at 8:57 AM, Matt Madison <matt@madison.systems> wrote:
> On Tue, Sep 12, 2017 at 2:58 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
>> Interesting I've seen this issue only for PN-staticdev package
>> ERROR: QA Issue: go-dep-staticdev rdepends on bash, but it isn't a build
>> dependency, missing bash in DEPENDS or PACKAGECONFIG? [build-deps]
>>
>> and the bash is already in RDEPENDS (the warning is shown in our builds,
>> because we use busybox as RPROVIDER for bash).
>>
>> So maybe this file isn't always included? Or something else might be
>> non-deterministic.
>
> Depends on which patch set you were testing against. One of the
> recent go.bbclass changes moved the sources from the -staticdev
> package to the -dev package (which is more appropriate, since the
> sources are also the header files). I thought I had updated the
> go-dep recipe along with that, but I may have missed it.
You're right. I am fixing it now ...
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2017-09-12 12:22 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-11 18:28 [PATCH v7 00/12] Revamp the Go support Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 01/12] go-native: remove dependency on go-bootstrap-native Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 02/12] go-bootstrap-native: remove recipe Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 03/12] go: split out go-runtime into separate recipe Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 04/12] go.bbclass: remove GO_GCFLAGS nad GO_LDFLAGS Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 05/12] go.bbclass: remove some xxx_FINAL variables Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 06/12] go.bbclass: clean up CGO_xxx settings Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 07/12] go: rename go.inc -> go-target.inc Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 08/12] go-cross: take GOARM environment setting Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 09/12] go: enable nativesdk builds for the toolchain Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 10/12] go-crosssdk: add recipe Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 11/12] go.bbclass: enable nativesdk builds for Go packages Otavio Salvador
2017-09-11 18:28 ` [PATCH v7 12/12] go-cross-canadian: add recipe Otavio Salvador
2017-09-11 19:00 ` ✗ patchtest: failure for Revamp the Go support (rev7) Patchwork
2017-09-11 19:53 ` Leonardo Sandoval
2017-09-11 20:34 ` Otavio Salvador
2017-09-12 9:45 ` [PATCH v7 00/12] Revamp the Go support Richard Purdie
2017-09-12 9:58 ` Martin Jansa
2017-09-12 11:57 ` Matt Madison
2017-09-12 12:22 ` Martin Jansa
2017-09-12 12:22 ` Otavio Salvador
2017-09-12 11:57 ` Otavio Salvador
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.