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

From: Tijl Coosemans <tijl_at_FreeBSD.org>
Date: Tue, 3 Dec 2013 21:54:45 +0100
On Tue, 03 Dec 2013 21:26:18 +0100 Jan Henrik Sylvester wrote:
> 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?

Do you define FC in make.conf maybe?
Received on Tue Dec 03 2013 - 19:54:55 UTC

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