Using poudriere (with -a arm.armv6 -x ) on amd64 vs. building lang/gcc6: Some notes from my first attempts

Mark Millard markmi at dsl-only.net
Wed Jan 18 22:13:16 UTC 2017


I took a stab at building lang/gcc6 on an amd64 context (FreeBSD in a VirtualBox machine)
but targeting arm.armv6 using poudriere with -a arm.armv6 -x in use. This was done on
a 2.8 GHz macOS MacBookPro11,3 with 16 GiBytes of RAM and a fast USB 3.0 SSD having the
virtual machine files. The virtual machine had 4 cores (but see later notes about
ALLOW_MAKE_JOBS and -J 1). The MacBookPro was not busy doing much of anything else
over the time of the attempts.

The following notes are only for after the prerequisites were already built:
just lang/gcc6 itself is covered. (So -J 1 would be effective even if I'd
not specified it.) Because of gmake related crashes when I tried
ALLOW_MAKE_JOBS=yes, ALLOW_MAKE_JOBS was not used for what I'm reporting.

I gave the VirtualBox machine 4 GiBytes of RAM and had 2 GIBytes of swap
in place. As for the lang/gcc6 build options:

> ---Begin OPTIONS List---
> ===> The following configuration options are available for gcc6-6.3.0:
>      BOOTSTRAP=on: Build using a full bootstrap
>      GRAPHITE=off: Support for Graphite loop optimizations
> ===> Use 'make config' to modify these settings
> ---End OPTIONS List---


So when xgcc and the like were in use it was based on an emulated
compiler, not native. (clang built the original xgcc.)

> The following languages will be built: c,c++,fortran,lto,objc
> *** This configuration is not supported in the following subdirectories:
>      zlib target-zlib target-libjava target-libcilkrts target-libsanitizer target-libvtv target-libmpx target-libffi gnattools gotools target-libada target-libgo target-liboffloadmic target-boehm-gc
>     (Any other directories should still work fine.)

After somewhat more than 72 hours the result was:

> =======================<phase: package        >============================
> ===>  Building package for gcc6-6.3.0
> Child process pid=20571 terminated abnormally: Killed
> *** Error code 1
> 
> Stop.
> make: stopped in /usr/ports/lang/gcc6

from running out of swap space.

So it looks like ALLOW_MAKE_JOBS=yes for 4 cores might be something
like 20 hours (very rough figure) on that MacBook Pro and more
RAM or swap would be needed to build just lang/gcc6 (after its
prerequisites are in place).

I will note that my armv6 context used -mcpu=cortex-a7 for
buildworld for the jail and for building ports.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list