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 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.

> Index: math/octave/Makefile
> ===================================================================
> --- math/octave/Makefile      (revision 335379)
> +++ math/octave/Makefile      (working copy)
> @@ -3,7 +3,7 @@
>  
>  PORTNAME=    octave
>  PORTVERSION= 3.6.4
> -PORTREVISION=        6
> +PORTREVISION=        7
>  CATEGORIES=  math
>  MASTER_SITES=        ftp://ftp.gnu.org/gnu/octave/ \
>               ftp://ftp.u-aizu.ac.jp/pub/SciEng/numanal/Octave/bleeding-edge/
> @@ -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: 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
> ===================================================================
> --- 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:        po...@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: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=%H
> \ No newline at end of property

Attachment: pgpTiy6LtRxgH.pgp
Description: PGP signature

Reply via email to