pkg(ng)/portupgrade-devel: does not respect setting of USE_GCC= 4.6+

O. Hartmann ohartman at
Mon Aug 20 19:39:16 UTC 2012

Am 08/20/12 21:07, schrieb Matthew Seaman:
> On 20/08/2012 18:57, O. Hartmann wrote:
>> I utilize FreeBSD 10.0-CURRENT and build the OS with CLANG as well as
>> ports, which are compatible building with clang, using the well known
>> settings in /etc/make.conf and /etc/src/conf.
>> I use ports-mgmt/pkg (1.0-r6) and recently in combination with
>> ports-mgmt/portupgrade for maintaining my ports. Prior to portupgrade I
>> used to use ports-mgmt/portmaster (with patch).
>> In /etc/mak.conf, I include a file via
> I take it this is a typo in your e-mail and you really meant to say
> /etc/make.conf ?

Correct, it is a type, the file's name is /etc/make.conf.

>> .include "/usr/local/etc/ports.conf" in which I have settings like those:
>> # math/fftw3
>> .if ${.CURDIR:M/usr/ports/math/fftw3}
>> USE_GCC=                4.6+
>> #CC=                    cc
>> #CXX=                   c++
>> #CPP=                   cpp
>> .endif
>> This setup worked very well in pre-pkg(ng) times and with portmaster.
>> But now, with pkg, I can not install math/fftw3 anymore (amongst other
>> ports not compatible with CLANG). Performing "make install" in
>> math/fftw3 results in:
>> ===>  fftw3-3.3.2 : clang does not support OpenMP. Disable the OPENMP
>> option or use another compiler.
>> *** [install] Error code 1
>> Stop in /usr/ports/math/fftw3.
>> Using portupgrade ends up in this:
>>  portupgrade -f math/fftw3
>> ** Port marked as IGNORE: math/fftw3:
>>         : clang does not support OpenMP. Disable the OPENMP option or
>> use another compiler
>> ** Listing the failed packages (-:ignored / *:skipped / !:failed)
>>         - math/fftw3 (marked as IGNORE)
>> I'd like to have OPENMP since I have multicore CPUs running and
>> therefore I use GCC 4.6 (or higher), which is capable of.
>> Why does the use of pkg(ng) reject those essential settings? Have I
>> overlooked something essential? I can not find any remarks on that
>> subject in the man pages, or any hint leading towards a new configure
>> schematics. Any hint?
>> Regards and greetings,
>> Oliver
>> P.S. Please CC me in email, I do not subscribe list "ports at freebsd".
> Hi, Oliver,

Hello Matthew,

> This technique certainly should work: I use some pretty similar
> constructs in several machines with various combinations of pkg_tools,
> pkgng, portmaster and poudriere, and it's absolutely fine there.
> pkgng doesn't do anything to affect the actual extract / patch /
> configure / build / install phases -- that's all still exactly the same,
> and all of the various ports related make variables should work in the
> same way as before.  In fact, the only place pkgng gets involved is
> during the 'fake-pkg' and 'package' targets which happen right after the
> software has been installed.  All that does is process the various
> package metadata (plist, recording dependencies, checksums etc) and
> updates the database in /var/db/pkg/local.sqlite and optionally builds a
> tarball out of the installed files.
> Hmm... can you check the environment you used while building?  Several
> variables can have a significant effect.  PORTSDIR, PORT_DBDIR -- but
> pespecially __MAKE_CONF might be the culprit.  Except, as you can see,
> __MAKE_CONF has got that __ prefix, which signifies "not a user
> serviceable part."
> Your ports tree is definitely in the usual place of /usr/ports?

Yes, it is definitely located at /usr/ports. /usr/ports is, in all of my
installations, a separate partition, i.e:

/dev/gpt/usr.ports               29G    3.8G     23G    14%    /usr/ports

> Verb. Sap. -- I usually write those tests against .CURDIR like this:
> .if ${.CURDIR:M*/net-mgmt/net-snmp}
> NET_SNMP_MIB_MODULES=host disman/event-mib mibII/mta_sendmail
> mibII/tcpTable ucd-snmp/diskio
> .endif
> so that they still work even if I'm using a ports tree in a non-standard
> place.

This is a very good idea, I will adobt this ...

> Another test would be:
>  % make -C /usr/ports/math/fftw3 -V USE_GCC

This results in:


> If that doesn't result in 4.6+ then something is broken in make.conf or
> ports.conf somewhere.

I assume we can exclude this.

I'm pretty sure, that the last time I updated port math/fftw3 I wanted
option OpenMP enabled so I declared "USE_GCC=4.6+" in make.conf. Later,
also working!, I excluded all these user definitions into an external
file called ports.conf located in /usr/local/etc (I like this clean
separation of OS and user messes ;-) ). Suddenly it doesn't work
anymore. There were changes in several Mk files located in /usr/ports/Mk.


sysutils/cdrtools is also marked to be compiled with USE_GCC=4.6+ and
when I recompile the already installed port via

portupgrade -f cdrtools

I see a lot of those console exposures:

gcc46 -O2 -fno-strict-aliasing -pipe -pipe -O3 -fno-strict-aliasing
-march=native -Wl,-rpath=/usr/local/lib/gcc46 -DSCHILY_BUILD
-IOBJ/amd64-freebsd-cc -I../incs/amd64-freebsd-cc -I../include
-I/usr/local/include -I/usr/local/include -I../libscg -I../cdrecord
-DSCHILY_PRINT -c -o OBJ/amd64-freebsd-cc/dmaresid.o dmaresid.c

which definitely indicates, that it has been compiled with GCC 4.6.
Otherwise, CLANG failed in the past and I suppose it still fails.

Strange ... think this is subject of further investigations. I do not
know why math/fftw3 now is excluded from respcting USE_GCC=4.6+ ..


> 	Cheers,
> 	Matthew

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
Url :

More information about the freebsd-ports mailing list