Hi,
I’m having trouble building libatlas from the src.rpm of the Education repo for openSUSE 12.1.
I use the following command:
rpmbuild --rebuild libatlas-3.9.35-33.4.src.rpm
The build finishes producing the desired rpm’s, but these lack the threaded libraries:
libptlapack.a
libptcblas.a
libptf77blas.a
which prevents the utilization of multiple cores.
Digging around in the build output the following was discovered:
<snip>
make[4]: Entering directory /usr/src/packages/BUILD/ATLAS/x86_64_base/tune/threads' rm res/probe.out rm: cannot remove
res/probe.out’: No such file or directory
make[4]: [IRun_aff] Error 1 (ignored)
./xprobe_aff -v 1 -o /usr/src/packages/BUILD/ATLAS/x86_64_base/include/atlas_taffinity.h
*** glibc detected *** ./xprobe_aff: free(): invalid pointer: 0x0000000000607010 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x74c06)[0x7ff01704ac06]
./xprobe_aff[0x401a01]
/lib64/libc.so.6(__libc_start_main+0xed)[0x7ff016ff723d]
./xprobe_aff[0x400d59]
======= Memory map: ========
00400000-00405000 r-xp 00000000 08:01 900364 /usr/src/packages/BUILD/ATLAS/x86_64_base/tune/threads/xprobe_aff
00605000-00606000 r–p 00005000 08:01 900364 /usr/src/packages/BUILD/ATLAS/x86_64_base/tune/threads/xprobe_aff
00606000-00607000 rw-p 00006000 08:01 900364 /usr/src/packages/BUILD/ATLAS/x86_64_base/tune/threads/xprobe_aff
00607000-00628000 rw-p 00000000 00:00 0 [heap]
7ff016dc0000-7ff016dd5000 r-xp 00000000 08:01 293547 /lib64/libgcc_s.so.1
7ff016dd5000-7ff016fd4000 —p 00015000 08:01 293547 /lib64/libgcc_s.so.1
7ff016fd4000-7ff016fd5000 r–p 00014000 08:01 293547 /lib64/libgcc_s.so.1
7ff016fd5000-7ff016fd6000 rw-p 00015000 08:01 293547 /lib64/libgcc_s.so.1
7ff016fd6000-7ff01715b000 r-xp 00000000 08:01 293244 /lib64/libc-2.14.1.so
7ff01715b000-7ff01735b000 —p 00185000 08:01 293244 /lib64/libc-2.14.1.so
7ff01735b000-7ff01735f000 r–p 00185000 08:01 293244 /lib64/libc-2.14.1.so
7ff01735f000-7ff017360000 rw-p 00189000 08:01 293244 /lib64/libc-2.14.1.so
7ff017360000-7ff017365000 rw-p 00000000 00:00 0
7ff017365000-7ff0173bb000 r-xp 00000000 08:01 293259 /lib64/libm-2.14.1.so
7ff0173bb000-7ff0175ba000 —p 00056000 08:01 293259 /lib64/libm-2.14.1.so
7ff0175ba000-7ff0175bb000 r–p 00055000 08:01 293259 /lib64/libm-2.14.1.so
7ff0175bb000-7ff0175bc000 rw-p 00056000 08:01 293259 /lib64/libm-2.14.1.so
7ff0175bc000-7ff0175d4000 r-xp 00000000 08:01 293315 /lib64/libpthread-2.14.1.so
7ff0175d4000-7ff0177d3000 —p 00018000 08:01 293315 /lib64/libpthread-2.14.1.so
7ff0177d3000-7ff0177d4000 r–p 00017000 08:01 293315 /lib64/libpthread-2.14.1.so
7ff0177d4000-7ff0177d5000 rw-p 00018000 08:01 293315 /lib64/libpthread-2.14.1.so
7ff0177d5000-7ff0177d9000 rw-p 00000000 00:00 0
7ff0177d9000-7ff0177f9000 r-xp 00000000 08:01 293225 /lib64/ld-2.14.1.so
7ff0179cd000-7ff0179d0000 rw-p 00000000 00:00 0
7ff0179f5000-7ff0179f9000 rw-p 00000000 00:00 0
7ff0179f9000-7ff0179fa000 r–p 00020000 08:01 293225 /lib64/ld-2.14.1.so
7ff0179fa000-7ff0179fb000 rw-p 00021000 08:01 293225 /lib64/ld-2.14.1.so
7ff0179fb000-7ff0179fc000 rw-p 00000000 00:00 0
7fff2d7b7000-7fff2d7d8000 rw-p 00000000 00:00 0 [stack]
7fff2d7ff000-7fff2d800000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
SETAFFNP: DETECTED!
FINDING LARGEST POWER OF 2 ID THAT CAN BE USED IN AFFINITY:
ID=1 works.
ID=2 works.
ID=4 FAILS.
ID=8 FAILS.
ID=16 FAILS.
ID=32 FAILS.
ID=64 FAILS.
ID=128 FAILS.
LARGEST SUCCESSFUL POWER OF 2 = 2
FINDING ALL VALID IDs BETWEEN 0 AND 3:
ID=1 works.
ID=2 works.
ID=3 works.
AFFINITY TYPE= ‘SETAFFNP’
All IDs between [0, 3] are valid
make[4]: *** [IRun_aff] Aborted
make[4]: Leaving directory /usr/src/packages/BUILD/ATLAS/x86_64_base/tune/threads' make[3]: *** [/usr/src/packages/BUILD/ATLAS/x86_64_base/include/atlas_pthreads.h] Error 2 make[3]: Leaving directory
/usr/src/packages/BUILD/ATLAS/x86_64_base/src/auxil’
make[2]: *** [IBuildPtlibs0] Error 2
make[2]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/bin’
DONE STAGE 5-1-0 at 12:10
This seems to prevent the build of the pt-libs.
make[7]: Entering directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' gcc -m64 -fPIC -shared -o libtatlas.so -Wl,"rpath-link /usr/src/packages/BUILDROOT/libatlas3-3.9.35-33.4.x86_64/usr/lib64/atlas" \ -Wl,--whole-archive libptlapack.a libptf77blas.a libptcblas.a libatlas.a -Wl,--no-whole-archive -L/usr/lib64/gcc/x86_64-suse-linux/4.6 -lgfortran -lc -lpthread -lm -lgcc gcc: error: libptlapack.a: No such file or directory gcc: error: libptf77blas.a: No such file or directory gcc: error: libptcblas.a: No such file or directory make[7]: *** [GCCTRY] Error 1 make[7]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' make[7]: Entering directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' mkdir static_libs ; pushd static_libs && ar x ../libptlapack.a; ar x ../libptf77blas.a; ar x ../libptcblas.a; ar x ../libatlas.a; popd ; \ gcc -melf_x86_64 -shared -Wl,-soname=libtatlas.so.3 \ -o libtatlas.so.3.0 static_libs/*.o -lc -L/usr/lib64/gcc/x86_64-suse-linux/4.6 -lgfortran -lc -lpthread -lm -lgcc ; \ rm -rf static_libs /usr/src/packages/BUILD/ATLAS/x86_64_base/lib/static_libs /usr/src/packages/BUILD/ATLAS/x86_64_base/lib ar: ../libptlapack.a: No such file or directory ar: ../libptf77blas.a: No such file or directory ar: ../libptcblas.a: No such file or directory /usr/src/packages/BUILD/ATLAS/x86_64_base/lib make[7]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' libtatlas.so built wt ld and all sys libs make[6]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' make[5]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' make[4]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/lib' make[3]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base' make[2]: Leaving directory `/usr/src/packages/BUILD/ATLAS/x86_64_base/bin' DONE STAGE 5-2-0 at 12:10 <snip/>Building on 11.4 shows no such problems.
I even took the src.rpm for 11.4 which was building fine and tried to rebuild this on 12.1.
Results where the same.
Any help is appreciated, thanks.