gcc5 dependency challenges

Dewayne Geraghty dewaynegeraghty at gmail.com
Fri Oct 14 07:49:00 UTC 2016


After some rudimentary performance testing I note that we get up around 3%
improvement in application performance when we use gcc5 for our package
builds.

However building ports with gcc results in gcc5 being a dependency.
Examining ldd, we find that rarely does anything require gcc5's shared libs
for their execution.  Even simple things like ftp/wget and devel/ccache
depend on gcc5 for building but NOT runtime.  As we aren't allowed to
install compilers onto production systems, what is the best course of
action to address?
(We could just install gcc5 and then remove it but then of course, the base
pkg wants to remove everything (600+ packages) that depends on gcc5!)

So the question is - how should we build our packages or install them so
that gcc5 is not (unnecessarily) installed?

We've added to our /etc/make.conf
USE_GCC=  5
but I wonder if there's something like a build_depends mechanism?


Background:
Our FreeBSD 10.3 Stable uses pkg 1.8.3; whereas ports uses 1.8.7_3, minor
point.

Why gcc5? Well most ports use clang 3.4.1 to compile, some ports do use gcc
4.8.5; and if we move to FreeBSD11 then we also need to add llvm3.6 into
the build/migrating equation.  So to aid our migration effort we "think"
choosing gcc5 now is a good idea; particularly as /usr/ports/base/gcc uses
gcc 5.4.0 (rather than /usr/ports/lang/gcc which is 4.8.5)

All production systems use local package repositories (as heimdal is widely
used as are  non-default options).

Kind regards, Dewayne


More information about the freebsd-ports mailing list