Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Jan 2017 14:13:06 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Using poudriere (with -a arm.armv6 -x ) on amd64 vs. building lang/gcc6: Some notes from my first attempts
Message-ID:  <CCDD03FB-572A-4B0B-9ECD-3F5C1C8D8000@dsl-only.net>

next in thread | raw e-mail | index | archive | help
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=3Dyes, 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---
> =3D=3D=3D> The following configuration options are available for =
gcc6-6.3.0:
>      BOOTSTRAP=3Don: Build using a full bootstrap
>      GRAPHITE=3Doff: Support for Graphite loop optimizations
> =3D=3D=3D> 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:

> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<ph=
ase: package        >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> =3D=3D=3D>  Building package for gcc6-6.3.0
> Child process pid=3D20571 terminated abnormally: Killed
> *** Error code 1
>=20
> Stop.
> make: stopped in /usr/ports/lang/gcc6

from running out of swap space.

So it looks like ALLOW_MAKE_JOBS=3Dyes 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=3Dcortex-a7 for
buildworld for the jail and for building ports.

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CCDD03FB-572A-4B0B-9ECD-3F5C1C8D8000>