GNAT and LAPACK
Whilst attempting to compile a program I wrote, it suddenly occurred to me that using anything in the Ada.Numerics package causes the compiler to emit code that depends on the math/lapack port (the stuff in the GNAT runtime is basically just a binding to lapack). This creates a further problem as installing the math/lapack port requires a Fortran compiler and that means one of the other GCC ports will be compiled as a dependency... To clarify this confusing situation: The lang/gnat-gcc44 port needs to be able to compile one of it's own (sometimes) runtime dependencies. I'm happy to enable the C++ and gfortran backends in the lang/gnat-gcc44 port but I suspect it'll be necessary to update either math/lapack or bsd.gcc.mk in order to allow the lang/gnat-gcc44 port to compile math/lapack. I do regular builds on 7.2 i386/amd64 and 8.0 i386/amd64 with "ada,c,c++,fortran" so I'm confident there won't be any serious problems with the port itself. Perhaps somebody with a clue could tell me what the right way to handle this mess is. M ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
GNAT and LAPACK
> This creates a further problem as installing the math/lapack port > requires a Fortran compiler and that means one of the other GCC ports > will be compiled as a dependency... > > To clarify this confusing situation: The lang/gnat-gcc44 port needs to > be able to compile one of it's own (sometimes) runtime dependencies. > > I'm happy to enable the C++ and gfortran backends in the lang/gnat-gcc44 > port but I suspect it'll be necessary to update either math/lapack > or bsd.gcc.mk in order to allow the lang/gnat-gcc44 port to compile > math/lapack. I do regular builds on 7.2 i386/amd64 and 8.0 i386/amd64 > with "ada,c,c++,fortran" so I'm confident there won't be any serious > problems with the port itself. > > Perhaps somebody with a clue could tell me what the right way to handle > this mess is. I looked into the situation and think the following should work nicely given the constraints of the FreeBSD Ports Collection in handling dependencies and creating several packages from one build: 1. Make gnat-gcc44 dependent on gcc44 itself by means of USE_GCC=4.4. 2. Have math/lapack as another dependency to gnat-gcc44. 3. Build the minimum necessary as part of gnat-gcc44. Do not install using `make install`, but copy the relevant files to $PREFIX/bin, $PREFIX/lib,... manually. That way the Ports Collection as such will use gcc44 and you will add the GNAT support from gnat-gcc44 (and only that) on top. Gerald @FreeBSD.org -- Gerald (Jerry) Pfeifer ger...@pfeifer.com http://www.pfeifer.com/gerald/ ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: GNAT and LAPACK
On 2010-01-08 00:09:57, Gerald Pfeifer wrote: > > I looked into the situation and think the following should work nicely > given the constraints of the FreeBSD Ports Collection in handling > dependencies and creating several packages from one build: > > 1. Make gnat-gcc44 dependent on gcc44 itself by means of USE_GCC=4.4. > 2. Have math/lapack as another dependency to gnat-gcc44. > 3. Build the minimum necessary as part of gnat-gcc44. Do not install > using `make install`, but copy the relevant files to $PREFIX/bin, > $PREFIX/lib,... manually. > > That way the Ports Collection as such will use gcc44 and you will add > the GNAT support from gnat-gcc44 (and only that) on top. I agree, this sounds much better. It's not clear to me, however, how to determine which parts of a given GNAT build are specific to GNAT so that I only install those. Any ideas? I'm currently looking at the output of pkg_info -Lx to try to make an educated guess... M ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: GNAT and LAPACK
This appears to be the correct list of files that only apply to GNAT: http://coreland.ath.cx/tmp/gnat-dist.txt M ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: GNAT and LAPACK
On Fri, 8 Jan 2010, freebsd-po...@coreland.ath.cx wrote: > This appears to be the correct list of files that only apply to GNAT: > > http://coreland.ath.cx/tmp/gnat-dist.txt Note that if you want to combine this with lang/gcc44 as I had suggested you'll need something like TARGLIB=${PREFIX}/lib/gcc${SUFFIX} LIBEXEC=${PREFIX}/libexec/gcc${SUFFIX} CONFIGURE_ARGS+= --libdir=${TARGLIB} \ --libexecdir=${LIBEXEC} in your port. Glimpsing at the list your created, it does look good to me. Gerald ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"