Does USE_GCC= 4.5+ also set C++ and Fortran to g++45/46 and gfortran45/46?

O. Hartmann ohartman at
Thu Apr 14 06:00:40 UTC 2011

On 04/13/11 20:59, b. f. wrote:
>> Using a self brewn port of a scientific software package which is
>> intended to use gcc 4.5 or higher, I use "USE_GCC= 4.5+" in the top
>> level Makefile. But I get an error when starting the application:
>> /libexec/ /usr/lib/ version GLIBCXX_3.4.11
>> required by /usr/local/isis/3.2.1/bin/qview not found
>> Building the software without the ports-framework but with explicitely
>> set GCC/G++/GFORTRAN results in a working binary.
>> My question: is USE_GCC setting C++ and Fortran compilers as desired as
>> well as the C compiler?
> You should be using USE_FORTRAN if a Fortran compiler is needed (this
> also enforces USE_GCC=4.5), and USE_GCC if only C and/or C++ compilers
> are needed.  This should set the right variables in your build
> environment (see ports/Mk/, but a build can still fail if
> your local, port, or distribution Makefiles do not respect CC, CXX,
> CFLAGS, CXXFLAGS, F77, FC, FFLAGS, or LDFLAGS.  It sounds as if this
> is the case, and the Wl,-rpath=... component of the flags added in
> is not being used.
> b.

The package/software, called ISIS3 (USGS software), uses old-style, 
cascaded scripts and plain ASCII config files. It seems that in one of 
them CC or CXX got overwritten. I fixed that and the first attempt with 
the plain gcc as it comes with the system had a positive result. I'll 
try the USE_FORTRAN tag to force using gcc45.

I looked into ports/Mk/ and found that only gcc45 is set in 
case of using USE_FORTRAN, not gcc46. It would be nice also having gcc46 
set, since we try to optimise for AVX in the new Intel Sandy-Bridge CPUs 
and gcc46 is supoorting new facilities like that.

Thanks, I'll report if having success anyway.


More information about the freebsd-ports mailing list