[SciPy-dev] FTBFS on Debian

Ondrej Certik ondrej at certik.cz
Mon Apr 14 09:19:57 EDT 2008


On Mon, Apr 14, 2008 at 2:48 PM, Ondrej Certik <ondrej at certik.cz> wrote:
> On Mon, Apr 14, 2008 at 1:36 PM, Robert Kern <robert.kern at gmail.com> wrote:
>  > On Mon, Apr 14, 2008 at 6:22 AM, David Cournapeau
>  >
>  > <david at ar.media.kyoto-u.ac.jp> wrote:
>  >
>  > > Robert Kern wrote:
>  >  >  >
>  >  >  > This problem is almost always caused by LDFLAGS being set. LDFLAGS
>  >  >  > *overrides* all of the Fortran link flags.
>  >  >  >
>  >  >  >
>  >  >
>  >  >  That's what I thought first, but then why gcc still uses -shared ? Why
>  >  >  only gfortran ?
>  >
>  >  As we've discussed before, this overriding behavior only exists
>  >  because we need some way to override Fortran compiler flags since the
>  >  code will always be a little bit out of date with respect to the
>  >  various new versions of the Fortran compilers that we support. C
>  >  extensions are left alone because the link flags are almost always
>  >  correct because the C compiler is almost always the one used to build
>  >  Python itself.
>
>  Wow, indeed, this solves the problem:
>
>  $ svn di
>  Index: debian/rules
>  ===================================================================
>  --- debian/rules        (revision 5013)
>  +++ debian/rules        (working copy)
>  @@ -8,6 +8,8 @@
>   # Uncomment this to turn on verbose mode.
>   #export DH_VERBOSE=1
>
>  +unexport LDFLAGS
>  +
>   PYVERS:= $(shell pyversions -v -r debian/control)
>   BASE=$(shell pwd)/debian
>   #debian_patches= umfpack signals viewer sandbox  #fft python23 amd64
>
>  Thanks a lot Robert!
>
>  This would take me hours until I'd figure it out...

Actually, one more problem. The above patch fixes this on i386, but
for amd64, I get this error now:

/usr/bin/gfortran -Wall -Wall -shared
build/temp.linux-x86_64-2.4/build/src.linux-x86_64-2.4/scipy/fftpack/convolvemodule.o
build/temp.linux-x86_64-2.4/scipy/fftpack/src/convolve.o
build/temp.linux-x86_64-2.4/build/src.linux-x86_64-2.4/fortranobject.o
-L/usr/lib -Lbuild/temp.linux-x86_64-2.4 -ldfftpack -lfftw3 -lgfortran
-o build/lib.linux-x86_64-2.4/scipy/fftpack/convolve.so
/usr/bin/ld: build/temp.linux-x86_64-2.4/libdfftpack.a(dffti.o):
relocation R_X86_64_32 against `a local symbol' can not be used when
making a shared object; recompile with -fPIC
build/temp.linux-x86_64-2.4/libdfftpack.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
/usr/bin/ld: build/temp.linux-x86_64-2.4/libdfftpack.a(dffti.o):
relocation R_X86_64_32 against `a local symbol' can not be used when
making a shared object; recompile with -fPIC
build/temp.linux-x86_64-2.4/libdfftpack.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: Command "/usr/bin/gfortran -Wall -Wall -shared
build/temp.linux-x86_64-2.4/build/src.linux-x86_64-2.4/scipy/fftpack/convolvemodule.o
build/temp.linux-x86_64-2.4/scipy/fftpack/src/convolve.o
build/temp.linux-x86_64-2.4/build/src.linux-x86_64-2.4/fortranobject.o
-L/usr/lib -Lbuild/temp.linux-x86_64-2.4 -ldfftpack -lfftw3 -lgfortran
-o build/lib.linux-x86_64-2.4/scipy/fftpack/convolve.so" failed with
exit status 1
make: *** [install] Error 1

Now I am trying to figure out how to set the -fPIC for the gfortran.
Probably in some setup.py.

I have no idea why these errors suddenly started to pop up, but
anyway, here we are.

Ondrej



More information about the SciPy-Dev mailing list