Re: libc++ vs. libstdc++ usage in the ports tree

From: Jan Henrik Sylvester <me_at_janh.de>
Date: Tue, 03 Dec 2013 21:26:18 +0100
On 12/01/2013 15:06, Tijl Coosemans wrote:
> On Wed, 27 Nov 2013 20:45:56 +0100 Tijl Coosemans wrote:
>> On Wed, 27 Nov 2013 19:31:44 +0100 Jan Henrik Sylvester wrote:
>>> Trying to migrate to 10, I would like to keep octave. Have you found
>>> anything new? Having build the port and all dependencies with standard
>>> options, octave is segfaulting for me, too. Anyhow, I can run octave with:
>>>
>>> env LD_PRELOAD=/usr/lib/libc++.so.1 octave
>>>
>>> Some very light testing indicates that it is working. Of course, this is
>>> not ideal.
>>>
>>> Maybe this gives a clue how to fix the octave port properly.
>>
>> I have a preliminary patch for math/octave that I wanted to test on
>> redports first, but it is down at the moment so here it is.
> 
> The tests were successful:
> https://redports.org/buildarchive/20131201105316-94935/ (octave)
> https://redports.org/buildarchive/20131201115701-22333/ (octave-forge-base)
> The octave logs also contain the results of running the regression-test
> target.  The output is the same on all FreeBSD versions.
> 
> The problem is that USE_FORTRAN=yes implies USE_GCC=yes.  This means
> the C++ code in math/octave is compiled with gcc46/libstdc++ which
> does not work if dependencies have been built with clang/libc++.
> 
> The patch copies the USE_FORTRAN=yes logic from Mk/bsd.gcc.mk into a
> new file Mk/Uses/fortran.mk.  It allows ports to use a Fortran compiler
> together with the base system C/C++ compiler.

With the patch, math/octave fails for me on 9.2-RELEASE/amd64 and
10.0-BETA4/amd64 with:

checking for amd64-portbld-freebsd(9.2|10.0)-gfortran... f77
checking whether we are using the GNU Fortran 77 compiler... no
checking whether f77 accepts -g... no
checking how to get verbose linking output from f77... configure:
WARNING: compilation failed

checking for Fortran 77 libraries of f77...
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... configure: error: in
`/usr/ports/math/octave/work/octave-3.6.4':
configure: error: cannot compile a simple Fortran program

Full logs attached (each with and without your patch).

In both cases, it tries to use f77, while the original port uses gfortran46.

Any idea what is wrong on my system?

Cheers,
Jan Henrik

Received on Tue Dec 03 2013 - 19:26:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:45 UTC