Does USE_GCC= 4.5+ also set C++ and Fortran to g++45/46 and
ohartman at mail.zedat.fu-berlin.de
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/ld-elf.so.1: /usr/lib/libstdc++.so.6: 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/bsd.gcc.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
> bsd.gcc.mk is not being used.
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/bsd.gcc.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