Date: Sun, 08 Dec 2019 09:17:36 -0800 From: Carl Johnson <carlj@peak.org> To: freebsd-questions@freebsd.org Subject: Re: Cross-compiling with go for arm on amd64. Possible? Message-ID: <86pngybutr.fsf@elm.localnet> In-Reply-To: <20191208082237.GA80246@thismonkey.com> (Scott Aitken's message of "Sun, 8 Dec 2019 19:22:37 %2B1100") References: <mailman.65.1575720001.36005.freebsd-questions@freebsd.org> <20191208082237.GA80246@thismonkey.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Scott Aitken <freebsd-lists-5@thismonkey.com> writes: >> Scott Aitken <freebsd-lists-5@thismonkey.com> writes: >> >> > Hi, >> > >> > So I wanted to install dns/dnscrypt-proxy2 on my Raspberry Pi running FreeBSD >> > 12.0-RELEASE r341666 GENERIC arm. >> > >> > There's no package version, so I tried compiling. Unfortunately that didn't >> > work as the Go dependency ran out of RAM compiling. And there's no package >> > for Go... >> > >> > So I fired up a VM and installed ports-mgmt/poudriere. Set it all up and >> > added dns/dnscrypt-proxy2 to my shopping list... >> > >> > Unfortunately it skipped lang/go: >> > >> > Code: >> > [00:01:14] [01] [00:00:00] Building lang/go | go-1.13.4,1 >> > [00:01:16] [01] [00:00:02] Finished lang/go | go-1.13.4,1: Ignored: fails to >> > build with qemu-user-static >> > [00:01:16] [01] [00:00:02] Skipping dns/dnscrypt-proxy2 | >> > dnscrypt-proxy2-2.0.31_1: Dependent port lang/go | go-1.13.4,1 ignored >> > >> > Apparently Go 1.3 won't compile under the emulator (see PR 221297 for some >> > background. >> > >> > Is it possible for go to cross-compile for arm on amd64? >> >> I don't know about cross-compiling, but I have built go from source on a >> Raspberry Pi 2. In my case I was running 12.1-RELEASE, and I built >> go-1.13.1,1 about 2 weeks ago. My typescript file doesn't show any >> errors, and time showed a 28 minute build time and another 15 minutes to >> create a binary package. That was after installing the go14 binary >> package. >> >> -- >> Carl Johnson carlj@peak.org >> > Hi Carl, > > I had no luck as I said. I killed every daemon I could and simply saw the > memory in top approach zero after about 3 minutes into the build, and then > the core dump. > > Other than OS and compiler options (of which I'm using the default) I can't > think of why you had success whereas I didn't. > > This is my dmesg - are you using the same platform? > > FreeBSD 12.0-RELEASE r341666 GENERIC arm > FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.0.1) > VT: init without driver. > CPU: ARM Cortex-A7 r0p5 (ECO: 0x00000000) > CPU Features: > Multiprocessing, Thumb2, Security, Virtualization, Generic Timer, VMSAv7, > PXN, LPAE, Coherent Walk > Optional instructions: > SDIV/UDIV, UMULL, SMULL, SIMD(ext) > LoUU:2 LoC:3 LoUIS:2 > Cache level 1: > 32KB/64B 4-way data cache WB Read-Alloc Write-Alloc > 32KB/32B 2-way instruction cache Read-Alloc > Cache level 2: > 512KB/64B 8-way unified cache WB Read-Alloc Write-Alloc > real memory = 0 (0 MB) > avail memory = 957149184 (912 MB) > No PSCI/SMCCC call function found > FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs I am running 12.1-RELEASE instead of the 12.0-RELEASE that you are running, so that used LLVM 8.0.1 instead of LLVM 6.0.1, but otherwise my dmesg is the same. I had actually used pkg to install go14 instead of building it, and my understanding is that go builds using go14. The other possibility I can think of is that maybe you are using -j4 or similar with make, but I didn't. You might want to try an explicit -j1 when building go to see if that works. I just realized that I had about 1.8GB of swap, so you might need to setup a swap file or partition. I doubt that I used anything close to that 1.8GB, but I never looked to see how much. I hope that helps. -- Carl Johnson carlj@peak.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86pngybutr.fsf>