ports/143529: [PATCH] math/py-numpy: does not build
Li-Lun "Leland" Wang
llwang at infor.org
Mon Feb 15 15:30:05 UTC 2010
The following reply was made to PR ports/143529; it has been noted by GNATS.
From: "Li-Lun \"Leland\" Wang" <llwang at infor.org>
To: bf1783 at gmail.com
Cc: bug-followup at freebsd.org, amdmi3 at amdmi3.ru, gerald at freebsd.org
Subject: Re: ports/143529: [PATCH] math/py-numpy: does not build
Date: Mon, 15 Feb 2010 15:23:49 +0000
On Mon, Feb 15, 2010 at 3:11 PM, b. f. <bf1783 at googlemail.com> wrote:
> On 2/15/10, b. f. <bf1783 at googlemail.com> wrote:
>> On 2/15/10, b. f. <bf1783 at googlemail.com> wrote:
>>>>From: "Li-Lun Wang (Leland Wang)" <llwang at infor.org>
>>>>To: bug-followup at FreeBSD.org
>>>>Cc:
>>>>Subject: Re: ports/143529: [PATCH] math/py-numpy: does not build
>>>>Date: Mon, 15 Feb 2010 12:50:24 +0800
>>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA1
>>>
>>>>The following patch will fix the problem. =C2=A0It first detects if
>>>> binutils>=3D2.18.50 is installed. =C2=A0If it is, then it patches nump=
y so
>>>> that the new fenv.h will be used if __FreeBSD_version <=3D 900009.
>>>
>>> This fixes the build problem on i386 (although we're stuck with
>>> possible run-time problems when numpy is built with the newer binutils
>>> until the latest fenv.h changes are backported to all supported
>>> versions of FreeBSD), but this code is machine-dependent, and fenv.h
>>> needs to be selected based on ARCH.
>
> Oops: it seems that the r203441 only affected amd64 and i386, so the
> latest headers shouldn't be used for the other architectures (there
> may be problems lurking there, too, but that's another matter). =C2=A0So =
my
> sketch should be altered to something like:
>
>
> ...
> .if exists(${LOCALBASE}/bin/as) && ${OSVERSION} <=3D 900009 && \
> (${ARCH} =3D=3D "i386" || ${ARCH} =3D=3D "amd64")
> .if ${ARCH} =3D=3D "i386"
> =C2=A0FP_ARCH=3D i387
> .elif ${ARCH} =3D=3D "amd64"
> =C2=A0FP_ARCH=3D ${ARCH}
> .endif
> MASTER_SITES+=3D http://svn.freebsd.org/base/head/lib/msun/%SUBDIR%/:fp
> MASTER_SITE_SUBDIR+=3D ${FP_ARCH}/:fp
> =C2=A0DISTFILES+=3D fenv.h:fp
> .endif
> .endif
> =C2=A0...
> =C2=A0pre-configure:
> .if exists(${LOCALBASE}/bin/as) && ${OSVERSION} <=3D 900009
> =C2=A0 =C2=A0 =C2=A0${CP} ${DISTDIR}/fenv.h
> =C2=A0${WRKSRC}/numpy/core/include/numpy/fenv/fenv.h; \
> =C2=A0 =C2=A0 =C2=A0${PATCH} ${PATCH_DIST_ARGS} < ${FILESDIR}/fenv.patch;=
\
> .endif
> ...
>
> But again, this probably isn't necessary if lang/gcc44 is only using
> the base system binutils, and indeed may fail if lang/gcc44 was built
> when devel/binutils was not installed -- so we should see first what
> action will be taken regarding lang/gcc44, or use a more refined test.
I agree. This really isn't a bug in the numpy port, but the
unfortunate result of devel/binutils and bug in fenv.h. Fixing in the
numpy side is more of just a hack to make it build.
-- llwang
More information about the freebsd-python
mailing list