Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2013 12:41:52 +0100
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        Tijl Coosemans <tijl@FreeBSD.org>
Cc:        Maho Nakata <maho@FreeBSD.org>, Jan Henrik Sylvester <me@janh.de>, FreeBSD Current <freebsd-current@FreeBSD.org>, stephen@FreeBSD.org, Steve Kargl <sgk@troutmask.apl.washington.edu>
Subject:   Re: libc++ vs. libstdc++ usage in the ports tree
Message-ID:  <20131213114152.GA57153@ithaqua.etoilebsd.net>
In-Reply-To: <20131201150640.12ea18c8@kalimero.tijl.coosemans.org>
References:  <20131112201922.GA4330@troutmask.apl.washington.edu> <20131113173143.Horde.a-9M7JQ_vHo3tpDIMsGK6g1@webmail.df.eu> <CAFMmRNxk25AJ3TMuceSG=EmL3qSE9Xhk_wpL5pAD8YvZrA6gkg@mail.gmail.com> <5283CA3C.3080201@FreeBSD.org> <352D9465-9840-43F0-A3A9-327DC12B0967@FreeBSD.org> <B2F7EDA4-DF34-4D5D-B995-5ADA1A9898D8@FreeBSD.org> <20131114144555.GA22093@troutmask.apl.washington.edu> <52963A90.4000201@janh.de> <20131127204556.2974a3f5@kalimero.tijl.coosemans.org> <20131201150640.12ea18c8@kalimero.tijl.coosemans.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--huq684BweRXVnRxX
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Please commit (Approved by: portmgr(bapt)) if needed

regards,
Bapt

On Sun, Dec 01, 2013 at 03:06:40PM +0100, 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 w=
ith:
> >>=20
> >> env LD_PRELOAD=3D/usr/lib/libc++.so.1 octave
> >>=20
> >> Some very light testing indicates that it is working. Of course, this =
is
> >> not ideal.
> >>=20
> >> Maybe this gives a clue how to fix the octave port properly.
> >=20
> > 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.
>=20
> The tests were successful:
> https://redports.org/buildarchive/20131201105316-94935/ (octave)
> https://redports.org/buildarchive/20131201115701-22333/ (octave-forge-bas=
e)
> The octave logs also contain the results of running the regression-test
> target.  The output is the same on all FreeBSD versions.
>=20
> The problem is that USE_FORTRAN=3Dyes implies USE_GCC=3Dyes.  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++.
>=20
> The patch copies the USE_FORTRAN=3Dyes 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.

> Index: math/octave/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- math/octave/Makefile	(revision 335379)
> +++ math/octave/Makefile	(working copy)
> @@ -3,7 +3,7 @@
> =20
>  PORTNAME=3D	octave
>  PORTVERSION=3D	3.6.4
> -PORTREVISION=3D	6
> +PORTREVISION=3D	7
>  CATEGORIES=3D	math
>  MASTER_SITES=3D	ftp://ftp.gnu.org/gnu/octave/ \
>  		ftp://ftp.u-aizu.ac.jp/pub/SciEng/numanal/Octave/bleeding-edge/
> @@ -32,7 +32,7 @@ LIB_DEPENDS=3D	GraphicsMagick:${PORTSDIR}/
>  		umfpack.1:${PORTSDIR}/math/suitesparse \
>  		glpk:${PORTSDIR}/math/glpk
> =20
> -USES=3D		charsetfix gmake perl5 pkgconfig
> +USES=3D		charsetfix fortran gmake perl5 pkgconfig
>  USE_BZIP2=3D	yes
>  USE_PERL5=3D	build
>  USE_TEX=3D	dvipsk:build
> @@ -74,8 +74,6 @@ BLAS=3D		-lptf77blas
>  LAPACK=3D		-lalapack -lptcblas
>  .endif
> =20
> -USE_FORTRAN=3D	yes
> -
>  OCTAVE_VERSION=3D	${PORTVERSION}
>  GNU_HOST=3D	${ARCH}-portbld-freebsd${OSREL}
>  PLIST_SUB=3D	OCTAVE_VERSION=3D${OCTAVE_VERSION} GNU_HOST=3D${GNU_HOST}
> @@ -140,7 +138,8 @@ post-install:
>  	${ECHO_CMD} @dirrm share/octave >> ${WRKDIR}/PLIST
>  	cd ${WRKDIR} ; ${SED} -i -e "/PLIST/ r PLIST" ${TMPPLIST}
> =20
> -check:
> +check: regression-test
> +regression-test: build
>  	(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_ARGS} check)
> =20
>  .include <bsd.port.post.mk>
> Index: math/octave/files/patch-configure
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- math/octave/files/patch-configure	(revision 0)
> +++ math/octave/files/patch-configure	(working copy)
> @@ -0,0 +1,11 @@
> +--- configure.orig	2013-02-21 21:21:49.000000000 +0100
> ++++ configure	2013-11-22 20:34:49.000000000 +0100
> +@@ -58248,7 +58248,7 @@
> + main ()
> + {
> +=20
> +-      std::unordered_map m;
> ++      std::unordered_map<int, int> m;
> +=20
> +   ;
> +   return 0;
>=20
> Property changes on: math/octave/files/patch-configure
> ___________________________________________________________________
> Added: fbsd:nokeywords
> ## -0,0 +1 ##
> +yes
> \ No newline at end of property
> Added: svn:eol-style
> ## -0,0 +1 ##
> +native
> \ No newline at end of property
> Added: svn:mime-type
> ## -0,0 +1 ##
> +text/plain
> \ No newline at end of property
> Index: math/octave/files/patch-libgnu-math.in.h
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- math/octave/files/patch-libgnu-math.in.h	(revision 0)
> +++ math/octave/files/patch-libgnu-math.in.h	(working copy)
> @@ -0,0 +1,11 @@
> +--- libgnu/math.in.h.orig	2013-02-21 21:21:17.000000000 +0100
> ++++ libgnu/math.in.h	2013-11-22 12:35:47.000000000 +0100
> +@@ -17,7 +17,7 @@
> +    You should have received a copy of the GNU General Public License
> +    along with this program.  If not, see <http://www.gnu.org/licenses/>=
=2E  */
> +=20
> +-#ifndef _@GUARD_PREFIX@_MATH_H
> ++#if 1
> +=20
> + #if __GNUC__ >=3D 3
> + @PRAGMA_SYSTEM_HEADER@
>=20
> Property changes on: math/octave/files/patch-libgnu-math.in.h
> ___________________________________________________________________
> Added: svn:mime-type
> ## -0,0 +1 ##
> +text/plain
> \ No newline at end of property
> Added: fbsd:nokeywords
> ## -0,0 +1 ##
> +yes
> \ No newline at end of property
> Added: svn:eol-style
> ## -0,0 +1 ##
> +native
> \ No newline at end of property
> Index: math/octave/files/patch-liboctave-eigs-base.cc
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- math/octave/files/patch-liboctave-eigs-base.cc	(revision 0)
> +++ math/octave/files/patch-liboctave-eigs-base.cc	(working copy)
> @@ -0,0 +1,11 @@
> +--- liboctave/eigs-base.cc.orig	2013-02-21 21:19:24.000000000 +0100
> ++++ liboctave/eigs-base.cc	2013-11-22 20:19:19.000000000 +0100
> +@@ -3832,7 +3832,7 @@
> +                              bool cholB =3D 0, int disp =3D 0, int maxi=
t =3D 300);
> + #endif
> +=20
> +-#ifndef _MSC_VER
> ++#if !defined(_MSC_VER) && !defined(__clang__)
> + template static octave_idx_type
> + lusolve (const SparseMatrix&, const SparseMatrix&, Matrix&);
> +=20
>=20
> Property changes on: math/octave/files/patch-liboctave-eigs-base.cc
> ___________________________________________________________________
> Added: svn:mime-type
> ## -0,0 +1 ##
> +text/plain
> \ No newline at end of property
> Added: fbsd:nokeywords
> ## -0,0 +1 ##
> +yes
> \ No newline at end of property
> Added: svn:eol-style
> ## -0,0 +1 ##
> +native
> \ No newline at end of property
> Index: Mk/Uses/fortran.mk
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- Mk/Uses/fortran.mk	(revision 0)
> +++ Mk/Uses/fortran.mk	(working copy)
> @@ -0,0 +1,32 @@
> +# $FreeBSD$
> +#
> +# Establish Fortran-capable compiler as a build dependency
> +#
> +# MAINTAINER:	ports@FreeBSD.org
> +#
> +# Feature:	fortran
> +# Usage:	USES=3Dfortran
> +# Valid ARGS:	does not require args
> +
> +.if !defined(_INCLUDE_USES_FORTRAN_MK)
> +_INCLUDE_USES_FORTRAN_MK=3D	yes
> +
> +.if defined(fortran_ARGS)
> +IGNORE=3D		USES=3Dfortran does not require args
> +.endif
> +
> +.if !defined(FC)
> +BUILD_DEPENDS+=3D	gfortran46:${PORTSDIR}/lang/gcc
> +RUN_DEPENDS+=3D	gfortran46:${PORTSDIR}/lang/gcc
> +
> +USE_BINUTILS=3D	yes
> +
> +FC=3D		gfortran46
> +FFLAGS+=3D	-Wl,-rpath=3D${LOCALBASE}/lib/gcc46
> +LDFLAGS+=3D	-Wl,-rpath=3D${LOCALBASE}/lib/gcc46
> +.endif
> +
> +CONFIGURE_ENV+=3D	F77=3D"${FC}" FC=3D"${FC}" FFLAGS=3D"${FFLAGS}"
> +MAKE_ENV+=3D	F77=3D"${FC}" FC=3D"${FC}" FFLAGS=3D"${FFLAGS}"
> +
> +.endif
>=20
> Property changes on: Mk/Uses/fortran.mk
> ___________________________________________________________________
> Added: svn:eol-style
> ## -0,0 +1 ##
> +native
> \ No newline at end of property
> Added: svn:mime-type
> ## -0,0 +1 ##
> +text/plain
> \ No newline at end of property
> Added: svn:keywords
> ## -0,0 +1 ##
> +FreeBSD=3D%H
> \ No newline at end of property


--huq684BweRXVnRxX
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (FreeBSD)

iEUEARECAAYFAlKq8oAACgkQ8kTtMUmk6Ey18ACYnduqHLcGi/gUL5/2L49hxjIB
+wCfVJEE7/HsoOU1qOIqa67FhZ3sNXQ=
=9jOT
-----END PGP SIGNATURE-----

--huq684BweRXVnRxX--



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