Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Apr 2011 08:00:38 +0200
From:      "O. Hartmann" <ohartman@mail.zedat.fu-berlin.de>
To:        bf1783@gmail.com
Cc:        brooks@freebsd.org, "b. f." <bf1783@googlemail.com>, freebsd-ports@FreeBSD.org
Subject:   Re: Does USE_GCC= 4.5+ also set C++ and Fortran to g++45/46 and gfortran45/46?
Message-ID:  <4DA68D86.3000102@mail.zedat.fu-berlin.de>
In-Reply-To: <BANLkTimPw=7_3bmtXzPKoyJ2w7ihaszLaQ@mail.gmail.com>
References:  <BANLkTimPw=7_3bmtXzPKoyJ2w7ihaszLaQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.
>
> 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/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.

Oliver



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4DA68D86.3000102>