Re: CFLAGS for certain ports

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Thu, 2 Mar 2017 13:58:27 +0100
On 2 Mar 2017, at 12:02, Mingo Rrubioer <mingorrubioer_at_gmail.com> wrote:
> 
> I would like to see how well FreeBSD does as a workstation OS in the
> HPC world due to its stability and reliability, as well as LLVM/clang.
> I would like to know if FreeBSD has something similar to Gentoo's
> /etc/portage/make.conf file and /etc/portage/package.use/* files in
> order to compile certain ports with certain compiler flags.

It doesn't, though it would certainly be nice to have something like it
at some point.  The current idiom is to put something similar to the
following in your /etc/make.conf:

.if ${.CURDIR:M/usr/ports/foo/bar}
CFLAGS+= [... flags for the foo/bar port ...]
.endif

.if ${.CURDIR:M/usr/ports/what/ever}
CFLAGS+= [... flags for the what/ever port ...]
.endif


> Regarding LLVM/clang, I've been reading the documentation and found
> these flags: -arch=<whatever>, -march=<whatever>, -mcpu=<whatever>,
> --target=<whatever>, target-cpu <whatever>. I'm not quite sure which
> one would be the one to use. In case someone wants to know, my initial
> play/test machine has this processor:
> 
> CPU: Intel(R) Core(TM) i7-3820 CPU _at_ 3.60GHz (3600.11-MHz K8-class CPU)
>  Origin="GenuineIntel"  Id=0x206d7  Family=0x6  Model=0x2d  Stepping=7
> 
> And I'm currently running: 11.0-RELEASE-p8.
> 
> So I imagine I should use something like CFLAGS+= -march=corei7-avx
> -march=sandybridge -target-cpu. Is that correct?

Don't specify -march or -mcpu directly, but add the following line to
/etc/make.conf:

CPUTYPE?= native

This will take care of everything automatically.  See also make.conf(5).

-Dimitry


Received on Thu Mar 02 2017 - 11:58:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:10 UTC