Bug#678145: FTBFS: ar: /usr/lib/liblapack_pic.a: No such file or directory

sacrificial-spam-address at horizon.com sacrificial-spam-address at horizon.com
Tue Jun 19 14:39:33 UTC 2012


Package: src:atlas
Version: 3.8.4-7
Architecture: i386

On an i386 system, trying "fakeroot debian/rules custom" as recommended
aborts with an error

ATLAS install complete.  Examine
ATLAS/bin/<arch>/INSTALL_LOG/SUMMARY.LOG for details.
cd lib/ ; /usr/bin/make atlas/libblas.a
make[4]: Entering directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
mkdir tmp
(cd tmp && ar x ../libatlas.a);
(cd tmp && ar x ../libptf77blas.a);
(cd tmp && ar x ../libptcblas.a);
ar r atlas/libblas.a tmp/*.o
ar: creating atlas/libblas.a
rm -rf tmp
make[4]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
cd lib/ ; /usr/bin/make atlas/liblapack.a
make[4]: Entering directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
mkdir tmp
(cd tmp && ar x /usr/lib/liblapack_pic.a);
ar: /usr/lib/liblapack_pic.a: No such file or directory
make[4]: *** [atlas/liblapack.a] Error 9
make[4]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
make[3]: *** [build] Error 2
make[3]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[1]: *** [build-arch-stamp] Error 2
make[1]: Leaving directory `/tmp/atlas-3.8.4'
make: *** [custom-stamp] Error 2

Adding a symlink to /usr/lib/lapack/liblapack_pic.a lets the build
continue, and it then dies with

ATLAS install complete.  Examine 
ATLAS/bin/<arch>/INSTALL_LOG/SUMMARY.LOG for details.
cd lib/ ; /usr/bin/make atlas/libblas.a
make[4]: Entering directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
mkdir tmp
mkdir: cannot create directory `tmp': File exists
make[4]: *** [atlas/libblas.a] Error 1
make[4]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
make[3]: *** [build] Error 2
make[3]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[1]: *** [build-arch-stamp] Error 2
make[1]: Leaving directory `/tmp/atlas-3.8.4'
make: *** [custom-stamp] Error 2

Deleting that directory then leads to

cd lib/ ; /usr/bin/make fullshared
make[4]: Entering directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
rm -f atlas/libblas.so.3.0 atlas/liblapack.so.3.0
/usr/bin/make atlas/libblas.so.3.0 atlas/liblapack.so.3.0
make[5]: Entering directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
ld -melf_i386 -shared -soname libblas.so.3 -o atlas/libblas.so.3.0 \
   --whole-archive atlas/libblas.a \
           --no-whole-archive -L/usr/lib/gcc/i486-linux-gnu/4.7/ -lgfortran -lgcc_s -lpthread -lm -lc
rm -f atlas/libblas.so.3
(cd atlas && ln -s libblas.so.3.0 libblas.so.3)
rm -f atlas/libblas.so
(cd atlas && ln -s libblas.so.3 libblas.so)
ld -melf_i386 -shared -soname liblapack.so.3 -o atlas/liblapack.so.3.0 \
   --whole-archive atlas/liblapack.a \
           --no-whole-archive -L . -lblas -L/usr/lib/gcc/i486-linux-gnu/4.7/ -lgfortran -lgcc_s -lpthread -lm -lc
ld: cannot find -lblas
make[5]: *** [atlas/liblapack.so.3.0] Error 1
make[5]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
make[4]: *** [fullshared] Error 2
make[4]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base/lib'
make[3]: *** [build] Error 2
make[3]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/tmp/atlas-3.8.4/build/atlas-base'
make[1]: *** [build-arch-stamp] Error 2
make[1]: Leaving directory `/tmp/atlas-3.8.4'
make: *** [custom-stamp] Error 2

-lblas is actually located in the atlas/ subdirectory, so the linker isn't
finding it.  Adding more symlinks and restarting the build finally
produces .deb files.

On AMD64, the build seems to work smoothly.





More information about the debian-science-maintainers mailing list