# Go error occurred by attempting to build mender master branch via cross compiling

**URL:** <https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849>\
**Category:** General Discussions\
**Tags:** mender\
**Created:** [April 27, 2020, 2:12pm UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849 "2020-04-27T14:12:22Z")\
**Posts on this page:** 8\
**Page:** 2

<div class="post-metadata">

**Author:** ![VaillantUser](https://avatars.discourse-cdn.com/v4/letter/v/7ba0ec/32.png) [@VaillantUser](https://hub.mender.io/u/VaillantUser)\
**Post date:** [May 5, 2020, 9:55am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/21 "2020-05-05T09:55:01Z")

</div>

that was ambiguous! shall i use native sysroot or target sysroot?

nevertheless i tried both. both threw different errors. it seems target sysroot threw more errors like it didn’t agree with gnu. and native sysroot seems only can not find stdlib.

so with command with target sysroot like this:

make CGO\_CFLAGS="–sysroot=SDKTARGETSYSROOT -I{LIBLZMA\_INSTALL\_PATH}/include" CGO\_LDFLAGS="–sysroot=SDKTARGETSYSROOT -L{LIBLZMA\_INSTALL\_PATH}/lib" CGO\_ENABLED=1 GOOS=linux GOARCH=arm

it appears following error:

go build -ldflags “-X [github.com/mendersoftware/mender/conf.Version=412268f](http://github.com/mendersoftware/mender/conf.Version=412268f)”

# [github.com/mendersoftware/mender/vendor/github.com/remyoudompheng/go-liblzma](http://github.com/mendersoftware/mender/vendor/github.com/remyoudompheng/go-liblzma)

In file included from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs.h:55:0,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/features.h:447,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/inttypes.h:25,  
from /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/include/lzma.h:124,  
from vendor/github.com/remyoudompheng/go-liblzma/reader.go:9:  
/usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory

# include \<gnu/stubs-soft.h\>

```
       ^ ~~~~~~~~~~~~~~~~~

```

compilation terminated.

# os/user

In file included from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs.h:55:0,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/features.h:447,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/unistd.h:25,  
from /usr/local/go/src/os/user/cgo\_lookup\_unix.go:20:  
/usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory

# include \<gnu/stubs-soft.h\>

```
       ^ ~~~~~~~~~~~~~~~~~

```

compilation terminated.

# net

In file included from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs.h:55:0,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/features.h:447,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/netdb.h:25,  
from /usr/local/go/src/net/cgo\_linux.go:10:  
/usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory

# include \<gnu/stubs-soft.h\>

```
       ^ ~~~~~~~~~~~~~~~~~

```

compilation terminated.

# [github.com/mendersoftware/mender/vendor/github.com/bmatsuo/lmdb-go/lmdb](http://github.com/mendersoftware/mender/vendor/github.com/bmatsuo/lmdb-go/lmdb)

In file included from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs.h:55:0,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/features.h:447,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/bits/libc-header-start.h:33,  
from /usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/stdlib.h:25,  
from vendor/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:4:  
/usr/local/oecore-x86\_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/include/gnu/stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory

# include \<gnu/stubs-soft.h\>

```
       ^ ~~~~~~~~~~~~~~~~~

```

compilation terminated.  
Makefile:75: recipe for target ‘mender’ failed  
make: \*\*\* [mender] Error 2

but with command with native sysroot like this:

make CGO\_CFLAGS="–sysroot=/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux -I${LIBLZMA\_INSTALL\_PATH}/include" CGO\_LDFLAGS="–sysroot=/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux -L${LIBLZMA\_INSTALL\_PATH}/lib" CGO\_ENABLED=1 GOOS=linux GOARCH=arm

it occurs less error report only this:

go build -ldflags “-X [github.com/mendersoftware/mender/conf.Version=412268f](http://github.com/mendersoftware/mender/conf.Version=412268f)”

# runtime/cgo

\_cgo\_export.c:3:10: fatal error: stdlib.h: No such file or directory  
#include \<stdlib.h\>  
^ ~~~~~~~~~  
compilation terminated.  
Makefile:75: recipe for target ‘mender’ failed  
make: \*\*\* [mender] Error 2

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [May 5, 2020, 9:57am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/22 "2020-05-05T09:57:01Z")

</div>

> [@VaillantUser](#):
>
> that was ambiguous! shall i use native sysroot or target sysroot?

You are cross-compiling for target, so target sysroot.

---

<div class="post-metadata">

**Author:** ![VaillantUser](https://avatars.discourse-cdn.com/v4/letter/v/7ba0ec/32.png) [@VaillantUser](https://hub.mender.io/u/VaillantUser)\
**Post date:** [May 5, 2020, 10:08am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/23 "2020-05-05T10:08:20Z")

</div>

well! Native seems that it only has problem with finding stdlib and target sysroot has problem to find \<gnu/stubs-soft.h\>.

both of them give me the feeling that some of environment parameters are still missing.

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [May 5, 2020, 10:17am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/24 "2020-05-05T10:17:15Z")

</div>

> [@VaillantUser](#):
>
> Native seems that it only has problem with finding stdlib

Yes, but this is not interesting if you want to compile something that runs on the target. If you want to compile to run native the arguments would look very different.

> target sysroot has problem to find \<gnu/stubs-soft.h\>.

This looks like a issue related to soft vs hard float flags to the compiler. You might need to add `GOARM=5` if your target does not support `hard floating`

---

<div class="post-metadata">

**Author:** ![VaillantUser](https://avatars.discourse-cdn.com/v4/letter/v/7ba0ec/32.png) [@VaillantUser](https://hub.mender.io/u/VaillantUser)\
**Post date:** [May 5, 2020, 10:25am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/25 "2020-05-05T10:25:46Z")

</div>

no! adding GOARM=5 doesn’t work. same error! and i tried GOARM=7 also. it doesn’t help either,  
i believe it may has something to do with `-mfloat-abi=hard` but i already run that with CC in env file.

---

<div class="post-metadata">

**Author:** ![VaillantUser](https://avatars.discourse-cdn.com/v4/letter/v/7ba0ec/32.png) [@VaillantUser](https://hub.mender.io/u/VaillantUser)\
**Post date:** [May 5, 2020, 11:31am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/26 "2020-05-05T11:31:09Z")

</div>

i have tried command with this:

make CGO\_CFLAGS=“–sysroot=$SDKTARGETSYSROOT -mfloat-abi=hard -I${LIBLZMA\_INSTALL\_PATH}/include” CGO\_LDFLAGS=“–sysroot=$SDKTARGETSYSROOT -mfloat-abi=hard -L${LIBLZMA\_INSTALL\_PATH}/lib” CGO\_ENABLED=1 GOOS=linux GOARCH=arm

the gnu errors have then gone away!! but it appears another error which i believe it has occurred earlier with similar error.

go build -ldflags “-X [github.com/mendersoftware/mender/conf.Version=412268f](http://github.com/mendersoftware/mender/conf.Version=412268f)”

# [github.com/mendersoftware/mender/vendor/github.com/bmatsuo/lmdb-go/lmdb](http://github.com/mendersoftware/mender/vendor/github.com/bmatsuo/lmdb-go/lmdb)

mdb.c: In function ‘mdb\_cursor\_put’:  
mdb.c:6535:9: warning: this statement may fall through [-Wimplicit-fallthrough=]  
if (SIZELEFT(fp) \< offset) {  
^  
mdb.c:6540:5: note: here  
case MDB\_CURRENT:  
^~~~

# [GitHub - mendersoftware/mender: Mender over-the-air software updater client.](http://github.com/mendersoftware/mender)

/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
/usr/local/oecore-x86\_64/sysroots/x86\_64-angstromsdk-linux/usr/libexec/arm-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/7.3.0/real-ld: warning: skipping incompatible /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so while searching for lzma  
go build [github.com/mendersoftware/mender:](http://github.com/mendersoftware/mender:) copying /tmp/go-build463102029/b001/exe/a.out: open mender: permission denied  
Makefile:75: recipe for target ‘mender’ failed  
make: \*\*\* [mender] Error 1

this error seems a recurring error. it must also already have occurred to you.

according to you like following:

> [@mirzak](#):
>
> I assume that the `CGO_ENABLED` is not able to pick these settings up from the environment variables defined in the SDK and maybe you need to pass additional variables with `CGO_FLAGS` .

can we bypass that problem (gnu/stub-soft etc) with different approach?

also it seems my replies are limited i can not reply so fast i always have to wait almost a hour.

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [May 5, 2020, 11:51am UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/27 "2020-05-05T11:51:49Z")

</div>

> this error seems a recurring error. it must also already have occurred to you.

I have not see this. I think that you did not successfully cross-compile the `liblzma.so`. You can check by running:

```auto
file /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so

```

> can we bypass that problem (gnu/stub-soft etc) with different approach?

Not that I am aware of.

> also it seems my replies are limited i can not reply so fast i always have to wait almost a hour.

It is probably limiting you, because you are not wrapping your logs in proper formatting and count this as text which probably triggers some anti-spam.

This forum supports markdown syntax, so you can use that you enclose your code blocks

---

<div class="post-metadata">

**Author:** ![VaillantUser](https://avatars.discourse-cdn.com/v4/letter/v/7ba0ec/32.png) [@VaillantUser](https://hub.mender.io/u/VaillantUser)\
**Post date:** [May 5, 2020, 12:20pm UTC](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849/28 "2020-05-05T12:20:37Z")

</div>

> [@](#):
>
> /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so: symbolic link to liblzma.so.5.2.4

that was answer to

> [@mirzak](#):
>
> file /home/rui/go/src/github.com/mendersoftware/mender/xz-5.2.4/install/lib/liblzma.so

[Previous page](https://hub.mender.io/t/go-error-occurred-by-attempting-to-build-mender-master-branch-via-cross-compiling/1849.md?page=1)
