All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] Revamp the Go support
@ 2017-09-04 21:06 Otavio Salvador
  2017-09-04 21:06 ` [PATCH 1/7] goarch.bbclass: Stop passing True as second argument of d.getVar Otavio Salvador
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

This is not yet complete but does improve some parts of
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.

The first commits on this serie does fix errors in current
implementation, the others are improvements and clean ups.


Otavio Salvador (7):
  goarch.bbclass: Stop passing True as second argument of d.getVar
  go.bbclass: Fix binary installation path detection
  go: Remove Go 1.6 and 1.7 releases
  goarch.bbclass: Add support for ARMv5
  go.bbclass: Use a global Go build flags
  go.bbclass: Enable parallel build
  go.bbclass: Use an auxiliary variable to add the build dependencies

 meta/classes/go.bbclass                            | 34 ++++++++++--
 meta/classes/goarch.bbclass                        | 20 +++----
 meta/recipes-devtools/go/go-1.6.inc                | 19 -------
 .../go/go-1.6/armhf-elf-header.patch               | 23 --------
 .../go/go-1.6/fix-cc-handling.patch                | 50 -----------------
 .../go/go-1.6/fix-target-cc-for-build.patch        | 17 ------
 meta/recipes-devtools/go/go-1.6/gotooldir.patch    | 30 -----------
 .../go/go-1.6/split-host-and-target-build.patch    | 63 ----------------------
 meta/recipes-devtools/go/go-1.6/syslog.patch       | 62 ---------------------
 meta/recipes-devtools/go/go-1.7.inc                | 19 -------
 .../go/go-1.7/armhf-elf-header.patch               | 23 --------
 .../go/go-1.7/fix-cc-handling.patch                | 50 -----------------
 .../go/go-1.7/fix-target-cc-for-build.patch        | 17 ------
 meta/recipes-devtools/go/go-1.7/gotooldir.patch    | 30 -----------
 .../go/go-1.7/split-host-and-target-build.patch    | 62 ---------------------
 meta/recipes-devtools/go/go-1.7/syslog.patch       | 62 ---------------------
 meta/recipes-devtools/go/go-cross_1.7.bb           |  5 --
 meta/recipes-devtools/go/go_1.6.bb                 |  4 --
 meta/recipes-devtools/go/go_1.7.bb                 |  2 -
 19 files changed, 40 insertions(+), 552 deletions(-)
 delete mode 100644 meta/recipes-devtools/go/go-1.6.inc
 delete mode 100644 meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/gotooldir.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/syslog.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7.inc
 delete mode 100644 meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/gotooldir.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/syslog.patch
 delete mode 100644 meta/recipes-devtools/go/go-cross_1.7.bb
 delete mode 100644 meta/recipes-devtools/go/go_1.6.bb
 delete mode 100644 meta/recipes-devtools/go/go_1.7.bb

-- 
2.14.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/7] goarch.bbclass: Stop passing True as second argument of d.getVar
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-04 21:06 ` [PATCH 2/7] go.bbclass: Fix binary installation path detection Otavio Salvador
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

The d.getVar has the second argument as True by default, avoid passing
it here.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/goarch.bbclass | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
index 9cd38b8c48..7960ac5f9e 100644
--- a/meta/classes/goarch.bbclass
+++ b/meta/classes/goarch.bbclass
@@ -1,15 +1,15 @@
-BUILD_GOOS = "${@go_map_os(d.getVar('BUILD_OS', True), d)}"
-BUILD_GOARCH = "${@go_map_arch(d.getVar('BUILD_ARCH', True), d)}"
+BUILD_GOOS = "${@go_map_os(d.getVar('BUILD_OS'), d)}"
+BUILD_GOARCH = "${@go_map_arch(d.getVar('BUILD_ARCH'), d)}"
 BUILD_GOTUPLE = "${BUILD_GOOS}_${BUILD_GOARCH}"
-HOST_GOOS = "${@go_map_os(d.getVar('HOST_OS', True), d)}"
-HOST_GOARCH = "${@go_map_arch(d.getVar('HOST_ARCH', True), d)}"
-HOST_GOARM = "${@go_map_arm(d.getVar('HOST_ARCH', True), d.getVar('TUNE_FEATURES', True), d)}"
+HOST_GOOS = "${@go_map_os(d.getVar('HOST_OS'), d)}"
+HOST_GOARCH = "${@go_map_arch(d.getVar('HOST_ARCH'), d)}"
+HOST_GOARM = "${@go_map_arm(d.getVar('HOST_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
 HOST_GOTUPLE = "${HOST_GOOS}_${HOST_GOARCH}"
-TARGET_GOOS = "${@go_map_os(d.getVar('TARGET_OS', True), d)}"
-TARGET_GOARCH = "${@go_map_arch(d.getVar('TARGET_ARCH', True), d)}"
-TARGET_GOARM = "${@go_map_arm(d.getVar('TARGET_ARCH', True), d.getVar('TUNE_FEATURES', True), d)}"
+TARGET_GOOS = "${@go_map_os(d.getVar('TARGET_OS'), d)}"
+TARGET_GOARCH = "${@go_map_arch(d.getVar('TARGET_ARCH'), d)}"
+TARGET_GOARM = "${@go_map_arm(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}"
 TARGET_GOTUPLE = "${TARGET_GOOS}_${TARGET_GOARCH}"
-GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE',True) == d.getVar('HOST_GOTUPLE',True)]}"
+GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE') == d.getVar('HOST_GOTUPLE')]}"
 
 # define here because everybody inherits this class
 #
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/7] go.bbclass: Fix binary installation path detection
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
  2017-09-04 21:06 ` [PATCH 1/7] goarch.bbclass: Stop passing True as second argument of d.getVar Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-04 21:06 ` [PATCH 3/7] go: Remove Go 1.6 and 1.7 releases Otavio Salvador
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

Go toolchain changes the installation path when building for the same
architecture as the build host. This was already been considered in
the GO_BUILD_BINDIR variable but was not being used by the go class.

This fixes following error:

,----
| ERROR: go-dep-0.3.0-r0 do_package: QA Issue: go-dep: Files/directories
| were installed but not shipped in any package:
|   /usr/lib/x86_64-oel-linux/go/bin/dep
| Please set FILES such that these items are packaged. Alternatively if
| they are unneeded, avoid installing them or delete them within
| do_install.
`----

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/go.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index cedda68c55..e073cb91b5 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -3,7 +3,7 @@ inherit goarch
 GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
 GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
 GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
-GOBIN_FINAL = "${GOROOT_FINAL}/bin/${GOOS}_${GOARCH}"
+GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
 
 export GOOS = "${TARGET_GOOS}"
 export GOARCH = "${TARGET_GOARCH}"
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/7] go: Remove Go 1.6 and 1.7 releases
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
  2017-09-04 21:06 ` [PATCH 1/7] goarch.bbclass: Stop passing True as second argument of d.getVar Otavio Salvador
  2017-09-04 21:06 ` [PATCH 2/7] go.bbclass: Fix binary installation path detection Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-04 21:06 ` [PATCH 4/7] goarch.bbclass: Add support for ARMv5 Otavio Salvador
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

The OE-Core has no reason to support multiple versions of Go as this
increases the maintenance work and testing efforts. So we are going to
support just a single version from now on which currently is 1.8.3.

The 1.4 release is kept around as it is used for bootstrap, as such,
it cannot be removed.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/recipes-devtools/go/go-1.6.inc                | 19 -------
 .../go/go-1.6/armhf-elf-header.patch               | 23 --------
 .../go/go-1.6/fix-cc-handling.patch                | 50 -----------------
 .../go/go-1.6/fix-target-cc-for-build.patch        | 17 ------
 meta/recipes-devtools/go/go-1.6/gotooldir.patch    | 30 -----------
 .../go/go-1.6/split-host-and-target-build.patch    | 63 ----------------------
 meta/recipes-devtools/go/go-1.6/syslog.patch       | 62 ---------------------
 meta/recipes-devtools/go/go-1.7.inc                | 19 -------
 .../go/go-1.7/armhf-elf-header.patch               | 23 --------
 .../go/go-1.7/fix-cc-handling.patch                | 50 -----------------
 .../go/go-1.7/fix-target-cc-for-build.patch        | 17 ------
 meta/recipes-devtools/go/go-1.7/gotooldir.patch    | 30 -----------
 .../go/go-1.7/split-host-and-target-build.patch    | 62 ---------------------
 meta/recipes-devtools/go/go-1.7/syslog.patch       | 62 ---------------------
 meta/recipes-devtools/go/go-cross_1.7.bb           |  5 --
 meta/recipes-devtools/go/go_1.6.bb                 |  4 --
 meta/recipes-devtools/go/go_1.7.bb                 |  2 -
 17 files changed, 538 deletions(-)
 delete mode 100644 meta/recipes-devtools/go/go-1.6.inc
 delete mode 100644 meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/gotooldir.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.6/syslog.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7.inc
 delete mode 100644 meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/gotooldir.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
 delete mode 100644 meta/recipes-devtools/go/go-1.7/syslog.patch
 delete mode 100644 meta/recipes-devtools/go/go-cross_1.7.bb
 delete mode 100644 meta/recipes-devtools/go/go_1.6.bb
 delete mode 100644 meta/recipes-devtools/go/go_1.7.bb

diff --git a/meta/recipes-devtools/go/go-1.6.inc b/meta/recipes-devtools/go/go-1.6.inc
deleted file mode 100644
index 769c1d8f22..0000000000
--- a/meta/recipes-devtools/go/go-1.6.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-require go-common.inc
-
-PV = "1.6.3"
-GO_BASEVERSION = "1.6"
-FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81"
-
-SRC_URI += "\
-       file://armhf-elf-header.patch \
-       file://syslog.patch \
-       file://fix-target-cc-for-build.patch \
-       file://fix-cc-handling.patch \
-       file://split-host-and-target-build.patch \
-       file://gotooldir.patch \
-"
-SRC_URI[md5sum] = "bf3fce6ccaadd310159c9e874220e2a2"
-SRC_URI[sha256sum] = "6326aeed5f86cf18f16d6dc831405614f855e2d416a91fd3fdc334f772345b00"
-
diff --git a/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
deleted file mode 100644
index 1e3a16b319..0000000000
--- a/meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Encode arm EABI ( hard/soft ) calling convention in ELF header
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/cmd/link/internal/ld/elf.go
-===================================================================
---- go.orig/src/cmd/link/internal/ld/elf.go
-+++ go/src/cmd/link/internal/ld/elf.go
-@@ -827,7 +827,13 @@
- 	// 32-bit architectures
- 	case '5':
- 		// we use EABI on both linux/arm and freebsd/arm.
--		if HEADTYPE == obj.Hlinux || HEADTYPE == obj.Hfreebsd {
-+		if HEADTYPE == obj.Hlinux {
-+			if Ctxt.Goarm == 7 {
-+				ehdr.flags = 0x5000402 // has entry point, Version5 EABI, hard float
-+			} else {
-+				ehdr.flags = 0x5000202 // has entry point, Version5 EABI, soft float
-+			}
-+		} else if HEADTYPE == obj.Hfreebsd {
- 			// We set a value here that makes no indication of which
- 			// float ABI the object uses, because this is information
- 			// used by the dynamic linker to compare executables and
diff --git a/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch b/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
deleted file mode 100644
index 983323ace9..0000000000
--- a/meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Accept CC with multiple words in its name
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/cmd/go/build.go
-===================================================================
---- go.orig/src/cmd/go/build.go	2015-07-29 14:48:40.323185807 -0700
-+++ go/src/cmd/go/build.go	2015-07-30 07:37:40.529818586 -0700
-@@ -2805,12 +2805,24 @@
- 	return b.ccompilerCmd("CC", defaultCC, objdir)
- }
- 
-+// gccCmd returns a gcc command line prefix
-+// defaultCC is defined in zdefaultcc.go, written by cmd/dist.
-+func (b *builder) gccCmdForReal() []string {
-+	return envList("CC", defaultCC)
-+}
-+
- // gxxCmd returns a g++ command line prefix
- // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
- func (b *builder) gxxCmd(objdir string) []string {
- 	return b.ccompilerCmd("CXX", defaultCXX, objdir)
- }
- 
-+// gxxCmd returns a g++ command line prefix
-+// defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
-+func (b *builder) gxxCmdForReal() []string {
-+	return envList("CXX", defaultCXX)
-+}
-+
- // ccompilerCmd returns a command line prefix for the given environment
- // variable and using the default command when the variable is empty.
- func (b *builder) ccompilerCmd(envvar, defcmd, objdir string) []string {
-Index: go/src/cmd/go/env.go
-===================================================================
---- go.orig/src/cmd/go/env.go	2015-07-29 14:48:40.323185807 -0700
-+++ go/src/cmd/go/env.go	2015-07-30 07:40:54.461655721 -0700
-@@ -52,10 +52,9 @@
- 
- 	if goos != "plan9" {
- 		cmd := b.gccCmd(".")
--		env = append(env, envVar{"CC", cmd[0]})
-+		env = append(env, envVar{"CC", strings.Join(b.gccCmdForReal(), " ")})
- 		env = append(env, envVar{"GOGCCFLAGS", strings.Join(cmd[3:], " ")})
--		cmd = b.gxxCmd(".")
--		env = append(env, envVar{"CXX", cmd[0]})
-+		env = append(env, envVar{"CXX", strings.Join(b.gxxCmdForReal(), " ")})
- 	}
- 
- 	if buildContext.CgoEnabled {
diff --git a/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch b/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
deleted file mode 100644
index 2f6156ecd2..0000000000
--- a/meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Put Quotes around CC_FOR_TARGET since it can be mutliple words e.g. in OE
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/make.bash
-===================================================================
---- go.orig/src/make.bash	2015-07-29 13:28:11.334031696 -0700
-+++ go/src/make.bash	2015-07-29 13:36:55.814465630 -0700
-@@ -158,7 +158,7 @@
- fi
- 
- echo "##### Building packages and commands for $GOOS/$GOARCH."
--CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
-+CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
- echo
- 
- rm -f "$GOTOOLDIR"/go_bootstrap
diff --git a/meta/recipes-devtools/go/go-1.6/gotooldir.patch b/meta/recipes-devtools/go/go-1.6/gotooldir.patch
deleted file mode 100644
index 94670259f2..0000000000
--- a/meta/recipes-devtools/go/go-1.6/gotooldir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Define tooldir in relation to GOTOOLDIR env var
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/go/build/build.go
-===================================================================
---- go.orig/src/go/build/build.go
-+++ go/src/go/build/build.go
-@@ -1388,7 +1388,7 @@ func init() {
- }
- 
- // ToolDir is the directory containing build tools.
--var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+var ToolDir = envOr("GOTOOLDIR", filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH))
- 
- // IsLocalImport reports whether the import path is
- // a local import path, like ".", "..", "./foo", or "../foo".
-Index: go/src/cmd/go/build.go
-===================================================================
---- go.orig/src/cmd/go/build.go
-+++ go/src/cmd/go/build.go
-@@ -1312,7 +1312,7 @@ func (b *builder) build(a *action) (err
- 		}
- 
- 		cgoExe := tool("cgo")
--		if a.cgo != nil && a.cgo.target != "" {
-+		if a.cgo != nil && a.cgo.target != "" && os.Getenv("GOTOOLDIR") == "" {
- 			cgoExe = a.cgo.target
- 		}
- 		outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles)
diff --git a/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch b/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
deleted file mode 100644
index afbae02b4e..0000000000
--- a/meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Add new option --target-only to build target components
-Separates the host and target pieces of build
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/make.bash
-===================================================================
---- go.orig/src/make.bash
-+++ go/src/make.bash
-@@ -143,12 +143,23 @@ if [ "$1" = "--no-clean" ]; then
- 	buildall=""
- 	shift
- fi
--./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
--# Delay move of dist tool to now, because bootstrap may clear tool directory.
--mv cmd/dist/dist "$GOTOOLDIR"/dist
--echo
- 
--if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
-+do_host_build="yes"
-+do_target_build="yes"
-+if [ "$1" = "--target-only" ]; then
-+	do_host_build="no"
-+	shift
-+elif [ "$1" = "--host-only" ]; then
-+	do_target_build="no"
-+	shift
-+fi
-+
-+if [ "$do_host_build" = "yes" ]; then
-+	./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
-+	# Delay move of dist tool to now, because bootstrap may clear tool directory.
-+	mv cmd/dist/dist "$GOTOOLDIR"/dist
-+	echo
-+
- 	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.
-@@ -157,11 +168,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH
- 	echo
- fi
- 
--echo "##### Building packages and commands for $GOOS/$GOARCH."
--CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
--echo
-+if [ "$do_target_build" = "yes" ]; then
-+    GO_INSTALL="${GO_TARGET_INSTALL:-std cmd}"
-+    echo "##### Building packages and commands for $GOOS/$GOARCH."
-+    if [ "$GOHOSTOS" = "$GOOS" -a "$GOHOSTARCH" = "$GOARCH" -a "$do_host_build" = "yes" ]; then
-+	rm -rf ./host-tools
-+	mkdir ./host-tools
-+	mv "$GOTOOLDIR"/* ./host-tools
-+	GOTOOLDIR="$PWD/host-tools"
-+    fi
-+    GOTOOLDIR="$GOTOOLDIR" CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v ${GO_INSTALL}
-+    echo
- 
--rm -f "$GOTOOLDIR"/go_bootstrap
-+    rm -f "$GOTOOLDIR"/go_bootstrap
-+fi
- 
- if [ "$1" != "--no-banner" ]; then
- 	"$GOTOOLDIR"/dist banner
diff --git a/meta/recipes-devtools/go/go-1.6/syslog.patch b/meta/recipes-devtools/go/go-1.6/syslog.patch
deleted file mode 100644
index 29be06f1bd..0000000000
--- a/meta/recipes-devtools/go/go-1.6/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-1.7.inc b/meta/recipes-devtools/go/go-1.7.inc
deleted file mode 100644
index 5c3004e875..0000000000
--- a/meta/recipes-devtools/go/go-1.7.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-require go-common.inc
-
-PV = "1.7.4"
-GO_BASEVERSION = "1.7"
-FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
-
-SRC_URI += "\
-       file://armhf-elf-header.patch \
-       file://syslog.patch \
-       file://fix-target-cc-for-build.patch \
-       file://fix-cc-handling.patch \
-       file://split-host-and-target-build.patch \
-       file://gotooldir.patch \
-"
-SRC_URI[md5sum] = "49c1076428a5d3b5ad7ac65233fcca2f"
-SRC_URI[sha256sum] = "4c189111e9ba651a2bb3ee868aa881fab36b2f2da3409e80885ca758a6b614cc"
-
diff --git a/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch b/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
deleted file mode 100644
index 1e3a16b319..0000000000
--- a/meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Encode arm EABI ( hard/soft ) calling convention in ELF header
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/cmd/link/internal/ld/elf.go
-===================================================================
---- go.orig/src/cmd/link/internal/ld/elf.go
-+++ go/src/cmd/link/internal/ld/elf.go
-@@ -827,7 +827,13 @@
- 	// 32-bit architectures
- 	case '5':
- 		// we use EABI on both linux/arm and freebsd/arm.
--		if HEADTYPE == obj.Hlinux || HEADTYPE == obj.Hfreebsd {
-+		if HEADTYPE == obj.Hlinux {
-+			if Ctxt.Goarm == 7 {
-+				ehdr.flags = 0x5000402 // has entry point, Version5 EABI, hard float
-+			} else {
-+				ehdr.flags = 0x5000202 // has entry point, Version5 EABI, soft float
-+			}
-+		} else if HEADTYPE == obj.Hfreebsd {
- 			// We set a value here that makes no indication of which
- 			// float ABI the object uses, because this is information
- 			// used by the dynamic linker to compare executables and
diff --git a/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch b/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
deleted file mode 100644
index a67caf41a5..0000000000
--- a/meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Accept CC with multiple words in its name
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/cmd/go/build.go
-===================================================================
---- go.orig/src/cmd/go/build.go
-+++ go/src/cmd/go/build.go
-@@ -2991,12 +2991,24 @@ func (b *builder) gccCmd(objdir string)
- 	return b.ccompilerCmd("CC", defaultCC, objdir)
- }
- 
-+// gccCmd returns a gcc command line prefix
-+// defaultCC is defined in zdefaultcc.go, written by cmd/dist.
-+func (b *builder) gccCmdForReal() []string {
-+	return envList("CC", defaultCC)
-+}
-+
- // gxxCmd returns a g++ command line prefix
- // defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
- func (b *builder) gxxCmd(objdir string) []string {
- 	return b.ccompilerCmd("CXX", defaultCXX, objdir)
- }
- 
-+// gxxCmd returns a g++ command line prefix
-+// defaultCXX is defined in zdefaultcc.go, written by cmd/dist.
-+func (b *builder) gxxCmdForReal() []string {
-+	return envList("CXX", defaultCXX)
-+}
-+
- // gfortranCmd returns a gfortran command line prefix.
- func (b *builder) gfortranCmd(objdir string) []string {
- 	return b.ccompilerCmd("FC", "gfortran", objdir)
-Index: go/src/cmd/go/env.go
-===================================================================
---- go.orig/src/cmd/go/env.go
-+++ go/src/cmd/go/env.go
-@@ -51,10 +51,9 @@ func mkEnv() []envVar {
- 
- 	if goos != "plan9" {
- 		cmd := b.gccCmd(".")
--		env = append(env, envVar{"CC", cmd[0]})
-+		env = append(env, envVar{"CC", strings.Join(b.gccCmdForReal(), " ")})
- 		env = append(env, envVar{"GOGCCFLAGS", strings.Join(cmd[3:], " ")})
--		cmd = b.gxxCmd(".")
--		env = append(env, envVar{"CXX", cmd[0]})
-+		env = append(env, envVar{"CXX", strings.Join(b.gxxCmdForReal(), " ")})
- 	}
- 
- 	if buildContext.CgoEnabled {
diff --git a/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch b/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
deleted file mode 100644
index 2f6156ecd2..0000000000
--- a/meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Put Quotes around CC_FOR_TARGET since it can be mutliple words e.g. in OE
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/make.bash
-===================================================================
---- go.orig/src/make.bash	2015-07-29 13:28:11.334031696 -0700
-+++ go/src/make.bash	2015-07-29 13:36:55.814465630 -0700
-@@ -158,7 +158,7 @@
- fi
- 
- echo "##### Building packages and commands for $GOOS/$GOARCH."
--CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
-+CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
- echo
- 
- rm -f "$GOTOOLDIR"/go_bootstrap
diff --git a/meta/recipes-devtools/go/go-1.7/gotooldir.patch b/meta/recipes-devtools/go/go-1.7/gotooldir.patch
deleted file mode 100644
index 94670259f2..0000000000
--- a/meta/recipes-devtools/go/go-1.7/gotooldir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Define tooldir in relation to GOTOOLDIR env var
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/go/build/build.go
-===================================================================
---- go.orig/src/go/build/build.go
-+++ go/src/go/build/build.go
-@@ -1388,7 +1388,7 @@ func init() {
- }
- 
- // ToolDir is the directory containing build tools.
--var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)
-+var ToolDir = envOr("GOTOOLDIR", filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH))
- 
- // IsLocalImport reports whether the import path is
- // a local import path, like ".", "..", "./foo", or "../foo".
-Index: go/src/cmd/go/build.go
-===================================================================
---- go.orig/src/cmd/go/build.go
-+++ go/src/cmd/go/build.go
-@@ -1312,7 +1312,7 @@ func (b *builder) build(a *action) (err
- 		}
- 
- 		cgoExe := tool("cgo")
--		if a.cgo != nil && a.cgo.target != "" {
-+		if a.cgo != nil && a.cgo.target != "" && os.Getenv("GOTOOLDIR") == "" {
- 			cgoExe = a.cgo.target
- 		}
- 		outGo, outObj, err := b.cgo(a.p, cgoExe, obj, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, cxxfiles, a.p.MFiles)
diff --git a/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch b/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
deleted file mode 100644
index b0dd95bbe7..0000000000
--- a/meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Add new option --target-only to build target components
-Separates the host and target pieces of build
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: go/src/make.bash
-===================================================================
---- go.orig/src/make.bash
-+++ go/src/make.bash
-@@ -154,13 +154,22 @@ if [ "$1" = "--no-clean" ]; then
- 	buildall=""
- 	shift
- fi
--./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
-+do_host_build="yes"
-+do_target_build="yes"
-+if [ "$1" = "--target-only" ]; then
-+	do_host_build="no"
-+	shift
-+elif [ "$1" = "--host-only" ]; then
-+	do_target_build="no"
-+	shift
-+fi
- 
--# Delay move of dist tool to now, because bootstrap may clear tool directory.
--mv cmd/dist/dist "$GOTOOLDIR"/dist
--echo
-+if [ "$do_host_build" = "yes" ]; then
-+	./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap
-+	# Delay move of dist tool to now, because bootstrap may clear tool directory.
-+	mv cmd/dist/dist "$GOTOOLDIR"/dist
-+	echo
- 
--if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
- 	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.
-@@ -169,11 +178,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH
- 	echo
- fi
- 
--echo "##### Building packages and commands for $GOOS/$GOARCH."
--CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
--echo
-+if [ "$do_target_build" = "yes" ]; then
-+    GO_INSTALL="${GO_TARGET_INSTALL:-std cmd}"
-+    echo "##### Building packages and commands for $GOOS/$GOARCH."
-+    if [ "$GOHOSTOS" = "$GOOS" -a "$GOHOSTARCH" = "$GOARCH" -a "$do_host_build" = "yes" ]; then
-+	rm -rf ./host-tools
-+	mkdir ./host-tools
-+	mv "$GOTOOLDIR"/* ./host-tools
-+	GOTOOLDIR="$PWD/host-tools"
-+    fi
-+    GOTOOLDIR="$GOTOOLDIR" CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v ${GO_INSTALL}
-+    echo
- 
--rm -f "$GOTOOLDIR"/go_bootstrap
-+    rm -f "$GOTOOLDIR"/go_bootstrap
-+fi
- 
- if [ "$1" != "--no-banner" ]; then
- 	"$GOTOOLDIR"/dist banner
diff --git a/meta/recipes-devtools/go/go-1.7/syslog.patch b/meta/recipes-devtools/go/go-1.7/syslog.patch
deleted file mode 100644
index 29be06f1bd..0000000000
--- a/meta/recipes-devtools/go/go-1.7/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-cross_1.7.bb b/meta/recipes-devtools/go/go-cross_1.7.bb
deleted file mode 100644
index 56ee084b10..0000000000
--- a/meta/recipes-devtools/go/go-cross_1.7.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require go-cross.inc
-require go_${PV}.bb
-
-# Go binaries are not understood by the strip tool.
-INHIBIT_SYSROOT_STRIP = "1"
diff --git a/meta/recipes-devtools/go/go_1.6.bb b/meta/recipes-devtools/go/go_1.6.bb
deleted file mode 100644
index 2f590338c4..0000000000
--- a/meta/recipes-devtools/go/go_1.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require go.inc
-require go-${PV}.inc
-
-BBCLASSEXTEND = "cross"
diff --git a/meta/recipes-devtools/go/go_1.7.bb b/meta/recipes-devtools/go/go_1.7.bb
deleted file mode 100644
index e7a6ab277e..0000000000
--- a/meta/recipes-devtools/go/go_1.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require go-${PV}.inc
-require go.inc
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/7] goarch.bbclass: Add support for ARMv5
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (2 preceding siblings ...)
  2017-09-04 21:06 ` [PATCH 3/7] go: Remove Go 1.6 and 1.7 releases Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-04 21:06 ` [PATCH 5/7] go.bbclass: Use a global Go build flags Otavio Salvador
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

This adds support to return the proper ARMv5 format.

This change is based on the meta-golang[1] layer. Thanks to Matt
Madison <matt@madison.systems> for his work on this.

1. https://github.com/madisongh/meta-golang

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/goarch.bbclass | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
index 7960ac5f9e..dbec6ee2c8 100644
--- a/meta/classes/goarch.bbclass
+++ b/meta/classes/goarch.bbclass
@@ -47,6 +47,8 @@ def go_map_arm(a, f, d):
     import re
     if re.match('arm.*', a) and re.match('arm.*7.*', f):
         return '7'
+    if re.match('arm.*', a) and re.match('arm.*5.*', f):
+        return '5'
     return ''
 
 def go_map_os(o, d):
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/7] go.bbclass: Use a global Go build flags
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (3 preceding siblings ...)
  2017-09-04 21:06 ` [PATCH 4/7] goarch.bbclass: Add support for ARMv5 Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-05 10:39   ` Matt Madison
  2017-09-04 21:06 ` [PATCH 6/7] go.bbclass: Enable parallel build Otavio Salvador
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

We now use a GOBUILDFLAGS to provide a global variable to control the
build flags to be given to Go.

This change is based on the meta-golang[1] layer. Thanks to Matt
Madison <matt@madison.systems> for his work on this.

1. https://github.com/madisongh/meta-golang

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/go.bbclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index e073cb91b5..45f2add810 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -5,6 +5,8 @@ GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
 GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
 GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
 
+export GOBUILDFLAGS ?= "-x -v ${GO_EXTLDFLAGS}"
+
 export GOOS = "${TARGET_GOOS}"
 export GOARCH = "${TARGET_GOARCH}"
 export GOARM = "${TARGET_GOARM}"
@@ -32,7 +34,7 @@ GO_INSTALL ?= "${GO_IMPORT}/..."
 do_go_compile() {
 	GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go env
 	if [ -n "${GO_INSTALL}" ]; then
-		GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install -v ${GO_INSTALL}
+		GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install ${GOBUILDFLAGS} ${GO_INSTALL}
 	fi
 }
 
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 6/7] go.bbclass: Enable parallel build
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (4 preceding siblings ...)
  2017-09-04 21:06 ` [PATCH 5/7] go.bbclass: Use a global Go build flags Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-05 10:50   ` Matt Madison
  2017-09-04 21:06 ` [PATCH 7/7] go.bbclass: Use an auxiliary variable to add the build dependencies Otavio Salvador
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

The parallel build is based on PARALLEL_MAKE variable but can be
overriden setting the GO_PARALLEL_BUILD one.

This change is based on the meta-golang[1] layer. Thanks to Matt
Madison <matt@madison.systems> for his work on this.

1. https://github.com/madisongh/meta-golang

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/go.bbclass | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index 45f2add810..f80134bf8e 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -1,11 +1,31 @@
 inherit goarch
 
+def get_go_parallel_make(d):
+    pm = (d.getVar('PARALLEL_MAKE') or '').split()
+    # look for '-j' and throw other options (e.g. '-l') away
+    # because they might have a different meaning in golang
+    while pm:
+        opt = pm.pop(0)
+        if opt == '-j':
+            v = pm.pop(0)
+        elif opt.startswith('-j'):
+            v = opt[2:].strip()
+        else:
+            continue
+
+        return '-p %d' % int(v)
+
+    return ""
+
+GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
+
 GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
 GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
 GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
 GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
 
 export GOBUILDFLAGS ?= "-x -v ${GO_EXTLDFLAGS}"
+GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} "
 
 export GOOS = "${TARGET_GOOS}"
 export GOARCH = "${TARGET_GOARCH}"
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 7/7] go.bbclass: Use an auxiliary variable to add the build dependencies
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (5 preceding siblings ...)
  2017-09-04 21:06 ` [PATCH 6/7] go.bbclass: Enable parallel build Otavio Salvador
@ 2017-09-04 21:06 ` Otavio Salvador
  2017-09-05  4:35 ` [PATCH 0/7] Revamp the Go support Khem Raj
  2017-09-05 10:52 ` Matt Madison
  8 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-04 21:06 UTC (permalink / raw)
  To: OpenEmbedded Core Mailing List; +Cc: Otavio Salvador

This is going to easy the addition of nativesdk and virtual providers
in the future.

This change is based on the meta-golang[1] layer. Thanks to Matt
Madison <matt@madison.systems> for his work on this.

1. https://github.com/madisongh/meta-golang

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
---

 meta/classes/go.bbclass | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
index f80134bf8e..e77c6d4da4 100644
--- a/meta/classes/go.bbclass
+++ b/meta/classes/go.bbclass
@@ -24,6 +24,11 @@ GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/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-native = "go-native"
+
+DEPENDS_append = " ${DEPENDS_GOLANG}"
+
 export GOBUILDFLAGS ?= "-x -v ${GO_EXTLDFLAGS}"
 GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} "
 
@@ -43,9 +48,6 @@ 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}"
 
-DEPENDS += "go-cross-${TARGET_ARCH}"
-DEPENDS_class-native += "go-native"
-
 FILES_${PN}-staticdev += "${GOSRC_FINAL}/${GO_IMPORT}"
 FILES_${PN}-staticdev += "${GOPKG_FINAL}/${GO_IMPORT}*"
 
-- 
2.14.1



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 0/7] Revamp the Go support
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (6 preceding siblings ...)
  2017-09-04 21:06 ` [PATCH 7/7] go.bbclass: Use an auxiliary variable to add the build dependencies Otavio Salvador
@ 2017-09-05  4:35 ` Khem Raj
  2017-09-05  4:40   ` Otavio Salvador
  2017-09-05 10:52 ` Matt Madison
  8 siblings, 1 reply; 17+ messages in thread
From: Khem Raj @ 2017-09-05  4:35 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OpenEmbedded Core Mailing List

On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
> This is not yet complete but does improve some parts of
> 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.
>
> The first commits on this serie does fix errors in current
> implementation, the others are improvements and clean ups.
>

these changes look good to me in general.

>
> Otavio Salvador (7):
>   goarch.bbclass: Stop passing True as second argument of d.getVar
>   go.bbclass: Fix binary installation path detection
>   go: Remove Go 1.6 and 1.7 releases
>   goarch.bbclass: Add support for ARMv5

Does it work on v5?

>   go.bbclass: Use a global Go build flags
>   go.bbclass: Enable parallel build
>   go.bbclass: Use an auxiliary variable to add the build dependencies
>
>  meta/classes/go.bbclass                            | 34 ++++++++++--
>  meta/classes/goarch.bbclass                        | 20 +++----
>  meta/recipes-devtools/go/go-1.6.inc                | 19 -------
>  .../go/go-1.6/armhf-elf-header.patch               | 23 --------
>  .../go/go-1.6/fix-cc-handling.patch                | 50 -----------------
>  .../go/go-1.6/fix-target-cc-for-build.patch        | 17 ------
>  meta/recipes-devtools/go/go-1.6/gotooldir.patch    | 30 -----------
>  .../go/go-1.6/split-host-and-target-build.patch    | 63 ----------------------
>  meta/recipes-devtools/go/go-1.6/syslog.patch       | 62 ---------------------
>  meta/recipes-devtools/go/go-1.7.inc                | 19 -------
>  .../go/go-1.7/armhf-elf-header.patch               | 23 --------
>  .../go/go-1.7/fix-cc-handling.patch                | 50 -----------------
>  .../go/go-1.7/fix-target-cc-for-build.patch        | 17 ------
>  meta/recipes-devtools/go/go-1.7/gotooldir.patch    | 30 -----------
>  .../go/go-1.7/split-host-and-target-build.patch    | 62 ---------------------
>  meta/recipes-devtools/go/go-1.7/syslog.patch       | 62 ---------------------
>  meta/recipes-devtools/go/go-cross_1.7.bb           |  5 --
>  meta/recipes-devtools/go/go_1.6.bb                 |  4 --
>  meta/recipes-devtools/go/go_1.7.bb                 |  2 -
>  19 files changed, 40 insertions(+), 552 deletions(-)
>  delete mode 100644 meta/recipes-devtools/go/go-1.6.inc
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/gotooldir.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/syslog.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7.inc
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/gotooldir.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/syslog.patch
>  delete mode 100644 meta/recipes-devtools/go/go-cross_1.7.bb
>  delete mode 100644 meta/recipes-devtools/go/go_1.6.bb
>  delete mode 100644 meta/recipes-devtools/go/go_1.7.bb
>
> --
> 2.14.1
>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 0/7] Revamp the Go support
  2017-09-05  4:35 ` [PATCH 0/7] Revamp the Go support Khem Raj
@ 2017-09-05  4:40   ` Otavio Salvador
  2017-09-05  4:42     ` Khem Raj
  0 siblings, 1 reply; 17+ messages in thread
From: Otavio Salvador @ 2017-09-05  4:40 UTC (permalink / raw)
  To: Khem Raj; +Cc: Otavio Salvador, OpenEmbedded Core Mailing List

On Tue, Sep 5, 2017 at 1:35 AM, Khem Raj <raj.khem@gmail.com> wrote:
> On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>> This is not yet complete but does improve some parts of
>> 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.
>>
>> The first commits on this serie does fix errors in current
>> implementation, the others are improvements and clean ups.
>>
>
> these changes look good to me in general.
>
>>
>> Otavio Salvador (7):
>>   goarch.bbclass: Stop passing True as second argument of d.getVar
>>   go.bbclass: Fix binary installation path detection
>>   go: Remove Go 1.6 and 1.7 releases
>>   goarch.bbclass: Add support for ARMv5
>
> Does it work on v5?

Yes; I've been using it in UpdateHub project. I can retest it on imx28
if you want.

-- 
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] 17+ messages in thread

* Re: [PATCH 0/7] Revamp the Go support
  2017-09-05  4:40   ` Otavio Salvador
@ 2017-09-05  4:42     ` Khem Raj
  0 siblings, 0 replies; 17+ messages in thread
From: Khem Raj @ 2017-09-05  4:42 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: Otavio Salvador, OpenEmbedded Core Mailing List

On Mon, Sep 4, 2017 at 9:40 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Tue, Sep 5, 2017 at 1:35 AM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>>> This is not yet complete but does improve some parts of
>>> 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.
>>>
>>> The first commits on this serie does fix errors in current
>>> implementation, the others are improvements and clean ups.
>>>
>>
>> these changes look good to me in general.
>>
>>>
>>> Otavio Salvador (7):
>>>   goarch.bbclass: Stop passing True as second argument of d.getVar
>>>   go.bbclass: Fix binary installation path detection
>>>   go: Remove Go 1.6 and 1.7 releases
>>>   goarch.bbclass: Add support for ARMv5
>>
>> Does it work on v5?
>
> Yes; I've been using it in UpdateHub project. I can retest it on imx28
> if you want.

qemuarm should suffice. Thanks for confirming.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 5/7] go.bbclass: Use a global Go build flags
  2017-09-04 21:06 ` [PATCH 5/7] go.bbclass: Use a global Go build flags Otavio Salvador
@ 2017-09-05 10:39   ` Matt Madison
  0 siblings, 0 replies; 17+ messages in thread
From: Matt Madison @ 2017-09-05 10:39 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OpenEmbedded Core Mailing List

On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
> We now use a GOBUILDFLAGS to provide a global variable to control the
> build flags to be given to Go.
>
> This change is based on the meta-golang[1] layer. Thanks to Matt
> Madison <matt@madison.systems> for his work on this.
>
> 1. https://github.com/madisongh/meta-golang
>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>
>  meta/classes/go.bbclass | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
> index e073cb91b5..45f2add810 100644
> --- a/meta/classes/go.bbclass
> +++ b/meta/classes/go.bbclass
> @@ -5,6 +5,8 @@ GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
>  GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
>  GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
>
> +export GOBUILDFLAGS ?= "-x -v ${GO_EXTLDFLAGS}"

You might want to omit the '-x' flag here as a default.  It's useful
when debugging problems with the toolchain, but can make it harder to
find error messages emitted by the compiler.

And I don't think GO_EXTLDFLAGS is being set anywhere (yet)?

Thanks,
-Matt

> +
>  export GOOS = "${TARGET_GOOS}"
>  export GOARCH = "${TARGET_GOARCH}"
>  export GOARM = "${TARGET_GOARM}"
> @@ -32,7 +34,7 @@ GO_INSTALL ?= "${GO_IMPORT}/..."
>  do_go_compile() {
>         GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go env
>         if [ -n "${GO_INSTALL}" ]; then
> -               GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install -v ${GO_INSTALL}
> +               GOPATH=${S}:${STAGING_LIBDIR}/${TARGET_SYS}/go go install ${GOBUILDFLAGS} ${GO_INSTALL}
>         fi
>  }
>
> --
> 2.14.1
>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 6/7] go.bbclass: Enable parallel build
  2017-09-04 21:06 ` [PATCH 6/7] go.bbclass: Enable parallel build Otavio Salvador
@ 2017-09-05 10:50   ` Matt Madison
  2017-09-05 14:49     ` Otavio Salvador
  0 siblings, 1 reply; 17+ messages in thread
From: Matt Madison @ 2017-09-05 10:50 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OpenEmbedded Core Mailing List

On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
> The parallel build is based on PARALLEL_MAKE variable but can be
> overriden setting the GO_PARALLEL_BUILD one.
>
> This change is based on the meta-golang[1] layer. Thanks to Matt
> Madison <matt@madison.systems> for his work on this.
>
> 1. https://github.com/madisongh/meta-golang
>
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>
>  meta/classes/go.bbclass | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
>
> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
> index 45f2add810..f80134bf8e 100644
> --- a/meta/classes/go.bbclass
> +++ b/meta/classes/go.bbclass
> @@ -1,11 +1,31 @@
>  inherit goarch
>
> +def get_go_parallel_make(d):
> +    pm = (d.getVar('PARALLEL_MAKE') or '').split()
> +    # look for '-j' and throw other options (e.g. '-l') away
> +    # because they might have a different meaning in golang
> +    while pm:
> +        opt = pm.pop(0)
> +        if opt == '-j':
> +            v = pm.pop(0)
> +        elif opt.startswith('-j'):
> +            v = opt[2:].strip()
> +        else:
> +            continue
> +
> +        return '-p %d' % int(v)
> +
> +    return ""
> +
> +GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"

This added variable should be appended to BB_HASHBASE_WHITELIST.

Thanks,
-Matt

> +
>  GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go"
>  GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
>  GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin"
>  GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}"
>
>  export GOBUILDFLAGS ?= "-x -v ${GO_EXTLDFLAGS}"
> +GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} "
>
>  export GOOS = "${TARGET_GOOS}"
>  export GOARCH = "${TARGET_GOARCH}"
> --
> 2.14.1
>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 0/7] Revamp the Go support
  2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
                   ` (7 preceding siblings ...)
  2017-09-05  4:35 ` [PATCH 0/7] Revamp the Go support Khem Raj
@ 2017-09-05 10:52 ` Matt Madison
  8 siblings, 0 replies; 17+ messages in thread
From: Matt Madison @ 2017-09-05 10:52 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OpenEmbedded Core Mailing List

Looks good overall.  Thanks, Otavio.

-Matt

On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
> This is not yet complete but does improve some parts of
> 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.
>
> The first commits on this serie does fix errors in current
> implementation, the others are improvements and clean ups.
>
>
> Otavio Salvador (7):
>   goarch.bbclass: Stop passing True as second argument of d.getVar
>   go.bbclass: Fix binary installation path detection
>   go: Remove Go 1.6 and 1.7 releases
>   goarch.bbclass: Add support for ARMv5
>   go.bbclass: Use a global Go build flags
>   go.bbclass: Enable parallel build
>   go.bbclass: Use an auxiliary variable to add the build dependencies
>
>  meta/classes/go.bbclass                            | 34 ++++++++++--
>  meta/classes/goarch.bbclass                        | 20 +++----
>  meta/recipes-devtools/go/go-1.6.inc                | 19 -------
>  .../go/go-1.6/armhf-elf-header.patch               | 23 --------
>  .../go/go-1.6/fix-cc-handling.patch                | 50 -----------------
>  .../go/go-1.6/fix-target-cc-for-build.patch        | 17 ------
>  meta/recipes-devtools/go/go-1.6/gotooldir.patch    | 30 -----------
>  .../go/go-1.6/split-host-and-target-build.patch    | 63 ----------------------
>  meta/recipes-devtools/go/go-1.6/syslog.patch       | 62 ---------------------
>  meta/recipes-devtools/go/go-1.7.inc                | 19 -------
>  .../go/go-1.7/armhf-elf-header.patch               | 23 --------
>  .../go/go-1.7/fix-cc-handling.patch                | 50 -----------------
>  .../go/go-1.7/fix-target-cc-for-build.patch        | 17 ------
>  meta/recipes-devtools/go/go-1.7/gotooldir.patch    | 30 -----------
>  .../go/go-1.7/split-host-and-target-build.patch    | 62 ---------------------
>  meta/recipes-devtools/go/go-1.7/syslog.patch       | 62 ---------------------
>  meta/recipes-devtools/go/go-cross_1.7.bb           |  5 --
>  meta/recipes-devtools/go/go_1.6.bb                 |  4 --
>  meta/recipes-devtools/go/go_1.7.bb                 |  2 -
>  19 files changed, 40 insertions(+), 552 deletions(-)
>  delete mode 100644 meta/recipes-devtools/go/go-1.6.inc
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/armhf-elf-header.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-cc-handling.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/fix-target-cc-for-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/gotooldir.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/split-host-and-target-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.6/syslog.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7.inc
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/armhf-elf-header.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-cc-handling.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/fix-target-cc-for-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/gotooldir.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/split-host-and-target-build.patch
>  delete mode 100644 meta/recipes-devtools/go/go-1.7/syslog.patch
>  delete mode 100644 meta/recipes-devtools/go/go-cross_1.7.bb
>  delete mode 100644 meta/recipes-devtools/go/go_1.6.bb
>  delete mode 100644 meta/recipes-devtools/go/go_1.7.bb
>
> --
> 2.14.1
>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 6/7] go.bbclass: Enable parallel build
  2017-09-05 10:50   ` Matt Madison
@ 2017-09-05 14:49     ` Otavio Salvador
  2017-09-05 20:06       ` Matt Madison
  0 siblings, 1 reply; 17+ messages in thread
From: Otavio Salvador @ 2017-09-05 14:49 UTC (permalink / raw)
  To: Matt Madison; +Cc: Otavio Salvador, OpenEmbedded Core Mailing List

On Tue, Sep 5, 2017 at 7:50 AM, Matt Madison <matt@madison.systems> wrote:
> On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>> The parallel build is based on PARALLEL_MAKE variable but can be
>> overriden setting the GO_PARALLEL_BUILD one.
>>
>> This change is based on the meta-golang[1] layer. Thanks to Matt
>> Madison <matt@madison.systems> for his work on this.
>>
>> 1. https://github.com/madisongh/meta-golang
>>
>> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
>> ---
>>
>>  meta/classes/go.bbclass | 20 ++++++++++++++++++++
>>  1 file changed, 20 insertions(+)
>>
>> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
>> index 45f2add810..f80134bf8e 100644
>> --- a/meta/classes/go.bbclass
>> +++ b/meta/classes/go.bbclass
>> @@ -1,11 +1,31 @@
>>  inherit goarch
>>
>> +def get_go_parallel_make(d):
>> +    pm = (d.getVar('PARALLEL_MAKE') or '').split()
>> +    # look for '-j' and throw other options (e.g. '-l') away
>> +    # because they might have a different meaning in golang
>> +    while pm:
>> +        opt = pm.pop(0)
>> +        if opt == '-j':
>> +            v = pm.pop(0)
>> +        elif opt.startswith('-j'):
>> +            v = opt[2:].strip()
>> +        else:
>> +            continue
>> +
>> +        return '-p %d' % int(v)
>> +
>> +    return ""
>> +
>> +GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
>
> This added variable should be appended to BB_HASHBASE_WHITELIST.

I think should not use new variables. We base it on PARALLEL_MAKE so
the user can control it in local.conf if needed.

-- 
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] 17+ messages in thread

* Re: [PATCH 6/7] go.bbclass: Enable parallel build
  2017-09-05 14:49     ` Otavio Salvador
@ 2017-09-05 20:06       ` Matt Madison
  2017-09-06  0:58         ` Otavio Salvador
  0 siblings, 1 reply; 17+ messages in thread
From: Matt Madison @ 2017-09-05 20:06 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: Otavio Salvador, OpenEmbedded Core Mailing List

On Tue, Sep 5, 2017 at 7:49 AM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Tue, Sep 5, 2017 at 7:50 AM, Matt Madison <matt@madison.systems> wrote:
>> On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio@ossystems.com.br> wrote:
>>> The parallel build is based on PARALLEL_MAKE variable but can be
>>> overriden setting the GO_PARALLEL_BUILD one.
>>>
>>> This change is based on the meta-golang[1] layer. Thanks to Matt
>>> Madison <matt@madison.systems> for his work on this.
>>>
>>> 1. https://github.com/madisongh/meta-golang
>>>
>>> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
>>> ---
>>>
>>>  meta/classes/go.bbclass | 20 ++++++++++++++++++++
>>>  1 file changed, 20 insertions(+)
>>>
>>> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
>>> index 45f2add810..f80134bf8e 100644
>>> --- a/meta/classes/go.bbclass
>>> +++ b/meta/classes/go.bbclass
>>> @@ -1,11 +1,31 @@
>>>  inherit goarch
>>>
>>> +def get_go_parallel_make(d):
>>> +    pm = (d.getVar('PARALLEL_MAKE') or '').split()
>>> +    # look for '-j' and throw other options (e.g. '-l') away
>>> +    # because they might have a different meaning in golang
>>> +    while pm:
>>> +        opt = pm.pop(0)
>>> +        if opt == '-j':
>>> +            v = pm.pop(0)
>>> +        elif opt.startswith('-j'):
>>> +            v = opt[2:].strip()
>>> +        else:
>>> +            continue
>>> +
>>> +        return '-p %d' % int(v)
>>> +
>>> +    return ""
>>> +
>>> +GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}"
>>
>> This added variable should be appended to BB_HASHBASE_WHITELIST.
>
> I think should not use new variables. We base it on PARALLEL_MAKE so
> the user can control it in local.conf if needed.

I thought that GO_PARALLEL_BUILD still needs to be added to
BB_HASHBASE_WHITELIST like PARALLEL_MAKE is,
or the task signatures will be different between builds done on
systems with different CPU counts?

-Matt

>
> --
> 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] 17+ messages in thread

* Re: [PATCH 6/7] go.bbclass: Enable parallel build
  2017-09-05 20:06       ` Matt Madison
@ 2017-09-06  0:58         ` Otavio Salvador
  0 siblings, 0 replies; 17+ messages in thread
From: Otavio Salvador @ 2017-09-06  0:58 UTC (permalink / raw)
  To: Matt Madison; +Cc: Otavio Salvador, OpenEmbedded Core Mailing List

On Tue, Sep 5, 2017 at 5:06 PM, Matt Madison <matt@madison.systems> wrote:
> I thought that GO_PARALLEL_BUILD still needs to be added to
> BB_HASHBASE_WHITELIST like PARALLEL_MAKE is,
> or the task signatures will be different between builds done on
> systems with different CPU counts?

You're right. Added it to v3 but will wait until tomorrow to see if
someone provides any more feedback before sending the changes.

-- 
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] 17+ messages in thread

end of thread, other threads:[~2017-09-06  0:58 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-04 21:06 [PATCH 0/7] Revamp the Go support Otavio Salvador
2017-09-04 21:06 ` [PATCH 1/7] goarch.bbclass: Stop passing True as second argument of d.getVar Otavio Salvador
2017-09-04 21:06 ` [PATCH 2/7] go.bbclass: Fix binary installation path detection Otavio Salvador
2017-09-04 21:06 ` [PATCH 3/7] go: Remove Go 1.6 and 1.7 releases Otavio Salvador
2017-09-04 21:06 ` [PATCH 4/7] goarch.bbclass: Add support for ARMv5 Otavio Salvador
2017-09-04 21:06 ` [PATCH 5/7] go.bbclass: Use a global Go build flags Otavio Salvador
2017-09-05 10:39   ` Matt Madison
2017-09-04 21:06 ` [PATCH 6/7] go.bbclass: Enable parallel build Otavio Salvador
2017-09-05 10:50   ` Matt Madison
2017-09-05 14:49     ` Otavio Salvador
2017-09-05 20:06       ` Matt Madison
2017-09-06  0:58         ` Otavio Salvador
2017-09-04 21:06 ` [PATCH 7/7] go.bbclass: Use an auxiliary variable to add the build dependencies Otavio Salvador
2017-09-05  4:35 ` [PATCH 0/7] Revamp the Go support Khem Raj
2017-09-05  4:40   ` Otavio Salvador
2017-09-05  4:42     ` Khem Raj
2017-09-05 10:52 ` Matt Madison

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.