[OE-core] [PATCH 6/7] go.bbclass: Enable parallel build

Matt Madison matt at madison.systems
Tue Sep 5 10:50:57 UTC 2017


On Mon, Sep 4, 2017 at 2:06 PM, Otavio Salvador <otavio at 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 at madison.systems> for his work on this.
>
> 1. https://github.com/madisongh/meta-golang
>
> Signed-off-by: Otavio Salvador <otavio at 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
>



More information about the Openembedded-core mailing list