pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: FreeBSD 10, clang, and openmp



On 07/16/14 14:31, Jonathan Perkin wrote:
* On 2014-07-16 at 20:11 BST, Jason Bacon wrote:

Is there an "official" way to force pkgsrc to use GCC on FreeBSD 10?  (
Assuming the pkgsrc gcc packages work on FreeBSD, which I'm trying right
now. )

I'm going to be converting a lot of FreeBSD ports to pkgsrc in the near
future and the process is much more efficient if I can use FreeBSD to get
the pkg to a working state before testing on other platforms.

I've run into problems with software that requires openmp, because it's
disabled in FreeBSD's clang base compiler.  In the FreeBSD port, I can
indicate the need for GCC instead of clang with

     USE_GCC=any

In pkgsrc, I've tried things like

     GCC_REQD=4.5

which has no effect - pkgsrc still uses clang and clang++.
PKGSRC_COMPILER is the user variable which tells pkgsrc which compiler
you are using.  GCC_REQD is only valid if you have already set this to
'gcc'.  You'd normally set PKGSRC_COMPILER at bootstrap time using the
--compiler flag.

If a package specifically requires clang, then in the package Makefile
you can set PKGSRC_COMPILER+= clang, and then ONLY_FOR_COMPILER=clang.

Hope that helps,

Thanks - that is informative.

It sounds like I would need to bootstrap the whole pkgsrc installation using GCC to make this work, which would probably not be difficult using FreeBSD's GCC port (/usr/local/bin/gcc47, for example).

What I was hoping to do, though, was bootstrap from the FreeBSD base clang and trigger installation of a pkgsrc gcc package as a dependency if needed.

This is what FreeBSD's USE_GCC will do if clang is the base compiler (FreeBSD 10.0 and later). FTR, USE_GCC=any allows the use of the base gcc compiler in FreeBSD systems prior to 10.0, while USE_GCC=yes forces installation of a gcc port on any FreeBSD release, regardless of whether the base compiler is gcc or clang.

Regards,

    Jason



Home | Main Index | Thread Index | Old Index