Date: Wed, 27 Nov 2013 20:45:56 +0100 From: Tijl Coosemans <tijl@FreeBSD.org> To: Jan Henrik Sylvester <me@janh.de> Cc: Maho Nakata <maho@FreeBSD.org>, 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: <20131127204556.2974a3f5@kalimero.tijl.coosemans.org> In-Reply-To: <52963A90.4000201@janh.de> References: <77CB2B92-216A-4C80-B033-7E582B5F0DFC@FreeBSD.org> <20131112165422.GA2939@troutmask.apl.washington.edu> <E0FE40D9-726C-4501-B31A-3622510C1C68@FreeBSD.org> <20131112175556.GA3319@troutmask.apl.washington.edu> <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>
next in thread | previous in thread | raw e-mail | index | archive | help
--MP_/CY5PFh_I1i.Xl_rs9n64aaV
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
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.
--MP_/CY5PFh_I1i.Xl_rs9n64aaV
Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=octave-fortran.patch
Index: math/octave/Makefile
===================================================================
--- math/octave/Makefile (revision 335025)
+++ math/octave/Makefile (working copy)
@@ -32,7 +32,7 @@ LIB_DEPENDS= GraphicsMagick:${PORTSDIR}/
umfpack.1:${PORTSDIR}/math/suitesparse \
glpk:${PORTSDIR}/math/glpk
-USES= charsetfix gmake perl5 pkgconfig
+USES= charsetfix fortran gmake perl5 pkgconfig
USE_BZIP2= yes
USE_PERL5= build
USE_TEX= dvipsk:build
@@ -74,8 +74,6 @@ BLAS= -lptf77blas
LAPACK= -lalapack -lptcblas
.endif
-USE_FORTRAN= yes
-
OCTAVE_VERSION= ${PORTVERSION}
GNU_HOST= ${ARCH}-portbld-freebsd${OSREL}
PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} GNU_HOST=${GNU_HOST}
@@ -140,7 +138,8 @@ post-install:
${ECHO_CMD} @dirrm share/octave >> ${WRKDIR}/PLIST
cd ${WRKDIR} ; ${SED} -i -e "/PLIST/ r PLIST" ${TMPPLIST}
-check:
+check: regression-test
+regression-test: build
(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_ARGS} check)
.include <bsd.port.post.mk>
Index: math/octave/files/patch-configure
===================================================================
--- 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 ()
+ {
+
+- std::unordered_map m;
++ std::unordered_map<int, int> m;
+
+ ;
+ return 0;
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
===================================================================
--- 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/>. */
+
+-#ifndef _@GUARD_PREFIX@_MATH_H
++#if 1
+
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
Property changes on: math/octave/files/patch-libgnu-math.in.h
___________________________________________________________________
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-liboctave-eigs-base.cc
===================================================================
--- 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 = 0, int disp = 0, int maxit = 300);
+ #endif
+
+-#ifndef _MSC_VER
++#if !defined(_MSC_VER) && !defined(__clang__)
+ template static octave_idx_type
+ lusolve (const SparseMatrix&, const SparseMatrix&, Matrix&);
+
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
===================================================================
--- 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=fortran
+# Valid ARGS: does not require args
+
+.if !defined(_INCLUDE_USES_FORTRAN_MK)
+_INCLUDE_USES_FORTRAN_MK= yes
+
+.if defined(fortran_ARGS)
+IGNORE= USES=fortran does not require args
+.endif
+
+.if !defined(FC)
+BUILD_DEPENDS+= gfortran46:${PORTSDIR}/lang/gcc
+RUN_DEPENDS+= gfortran46:${PORTSDIR}/lang/gcc
+
+USE_BINUTILS= yes
+
+FC= gfortran46
+FFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc46
+LDFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc46
+.endif
+
+CONFIGURE_ENV+= F77="${FC}" FC="${FC}" FFLAGS="${FFLAGS}"
+MAKE_ENV+= F77="${FC}" FC="${FC}" FFLAGS="${FFLAGS}"
+
+.endif
Property changes on: Mk/Uses/fortran.mk
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+FreeBSD=%H
\ 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
--MP_/CY5PFh_I1i.Xl_rs9n64aaV--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131127204556.2974a3f5>
