problem to compile taucs under linux (x86_64)

302 views
Skip to first unread message

swhsu

unread,
Nov 1, 2009, 7:16:57 PM11/1/09
to matrixprogramming
Machine:
# 2 x 3.2GHz Intel Xeon dual core processors
# 32GB RAM
OS: SuSE Linux 11.1 (x86_64)
gcc version: 4.3.2

Hi all,

I got some troubles while I compiled the taucs under this machine.
At beginning, I downloaded the taucs package from the official
website, and compiled it.
It looks like the external library come with the package is
incompatible with this machine(?)...
The messages are in errors[1].

Then, I download the ATLAS (v3.9.16), lapack (v3.2.1) and metis (v4.0)
to generate 5 libraries
to replace the original libraries. (libatlas.a, libf77blas.a,
libcblas.a, liblapack.a, and libmetis.a)

After that, I built the taucs again, but it still got some problems...
The error messages are listed in errors[2].

Did I do something wrong?? Any suggestions?

Thank you!!



errors [1]:
=================================================================================
mkdir obj
mkdir: cannot create directory `obj': File exists
make: [obj/linux/exists.log] Error 1 (ignored)
mkdir obj/linux/
echo exists > obj/linux/exists.log
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_blas_underscore_test.c \
-oobj/linux/taucs_blas_underscore_test.o
cc \
-oobj/linux/taucs_blas_underscore_test \
obj/linux/taucs_blas_underscore_test.o -L external/lib/linux
-llapack -L external/lib/linux -lf77blas -lcblas -latlas -L external/
lib/linux -lmetis -lg2c -lm
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/
ld: skipping incompatible external/lib/linux/liblapack.a when
searching for -llapack
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/
ld: skipping incompatible external/lib/linux/liblapack.a when
searching for -llapack
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/
ld: skipping incompatible external/lib/linux/liblapack.a when
searching for -llapack
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/
ld: cannot find -llapack
collect2: ld returned 1 exit status
make: [build/linux/taucs_config_tests.h] Error 1 (ignored)
obj/linux/taucs_blas_underscore_test build/linux/taucs_config_tests.h
make: obj/linux/taucs_blas_underscore_test: Command not found
make: [build/linux/taucs_config_tests.h] Error 127 (ignored)
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_blas_nounderscore_test.c \
-oobj/linux/taucs_blas_nounderscore_test.o
cc \
-oobj/linux/taucs_blas_nounderscore_test \

...
...
...
=================================================================================


errors[2]: (after replacing new libraries generated by ATLAS and
METIS)
=================================================================================
mkdir obj
mkdir: cannot create directory `obj': File exists
make: [obj/linux/exists.log] Error 1 (ignored)
mkdir obj/linux/
echo exists > obj/linux/exists.log
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_blas_underscore_test.c \
-oobj/linux/taucs_blas_underscore_test.o
cc \
-oobj/linux/taucs_blas_underscore_test \
obj/linux/taucs_blas_underscore_test.o -L external/lib/linux
-llapack -L external/lib/linux -lf77blas -lcblas -latlas -lg2c -lm
external/lib/linux/libf77blas.a(xerbla.o): In function `xerbla_':
xerbla.f:(.text+0x51): undefined reference to `_gfortran_st_write'
xerbla.f:(.text+0x61): undefined reference to
`_gfortran_transfer_character'
xerbla.f:(.text+0x71): undefined reference to
`_gfortran_transfer_integer'
xerbla.f:(.text+0x79): undefined reference to
`_gfortran_st_write_done'
xerbla.f:(.text+0x83): undefined reference to `_gfortran_stop_numeric'
collect2: ld returned 1 exit status
make: [build/linux/taucs_config_tests.h] Error 1 (ignored)
obj/linux/taucs_blas_underscore_test build/linux/taucs_config_tests.h
make: obj/linux/taucs_blas_underscore_test: Command not found
make: [build/linux/taucs_config_tests.h] Error 127 (ignored)
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_blas_nounderscore_test.c \
-oobj/linux/taucs_blas_nounderscore_test.o
cc \
-oobj/linux/taucs_blas_nounderscore_test \
obj/linux/taucs_blas_nounderscore_test.o -L external/lib/
linux -llapack -L external/lib/linux -lf77blas -lcblas -latlas -lg2c
-lm
obj/linux/taucs_blas_nounderscore_test.o: In function `main':
taucs_blas_nounderscore_test.c:(.text+0xb7): undefined reference to
`dgemm'
collect2: ld returned 1 exit status
make: [build/linux/taucs_config_tests.h] Error 1 (ignored)
obj/linux/taucs_blas_nounderscore_test build/linux/
taucs_config_tests.h
make: obj/linux/taucs_blas_nounderscore_test: Command not found
make: [build/linux/taucs_config_tests.h] Error 127 (ignored)
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_c99_complex_test.c \
-oobj/linux/taucs_c99_complex_test.o
cc \
-oobj/linux/taucs_c99_complex_test \
obj/linux/taucs_c99_complex_test.o -L external/lib/linux -
llapack -L external/lib/linux -lf77blas -lcblas -latlas -lg2c -lm
obj/linux/taucs_c99_complex_test build/linux/taucs_config_tests.h


C99 complex numbers seem to be supported, 1+sqrt(-1)
=-1.000000+1.000000i


cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
progs/taucs_cilk_test.c \
-oobj/linux/taucs_cilk_test.o
progs/taucs_cilk_test.c:8:19: error: cilk.h: No such file or directory
cc1: warnings being treated as errors
progs/taucs_cilk_test.c:10: error: ignoring #pragma lang
progs/taucs_cilk_test.c:12: error: expected a€?=a€?, a€?,a€?, a€?;a€?,
a€?asma€? or a€?__attribute__a€? before a€?inta€?
progs/taucs_cilk_test.c:17: error: expected a€?=a€?, a€?,a€?, a€?;a€?,
a€?asma€? or a€?__attribute__a€? before a€?inta€?
make: [build/linux/taucs_config_tests.h] Error 1 (ignored)
cc \
-oobj/linux/taucs_cilk_test \
obj/linux/taucs_cilk_test.o -L external/lib/linux -llapack -
L external/lib/linux -lf77blas -lcblas -latlas -lg2c -lm
cc: obj/linux/taucs_cilk_test.o: No such file or directory
make: [build/linux/taucs_config_tests.h] Error 1 (ignored)
obj/linux/taucs_cilk_test build/linux/taucs_config_tests.h
make: obj/linux/taucs_cilk_test: Command not found
make: [build/linux/taucs_config_tests.h] Error 127 (ignored)
mkdir bin
mkdir: cannot create directory `bin': File exists
make: [bin/linux/exists.log] Error 1 (ignored)
mkdir bin/linux/
echo exists > bin/linux/exists.log
mkdir lib
mkdir: cannot create directory `lib': File exists
make: [lib/linux/exists.log] Error 1 (ignored)
mkdir lib/linux/
echo exists > lib/linux/exists.log
cc -c -O3 -Wall -Werror -std=c99 -I src/ -I build/linux/ -I
external/src/ \
-DTAUCS_CORE_GENERAL \
src/taucs_logging.c \
-oobj/linux/taucs_logging.o
In file included from src/taucs_logging.c:13:
src/taucs.h:79:2: error: #error "taucs_blas_[no]underscore_test:
linking with the BLAS failed both attempts"
In file included from src/taucs_logging.c:13:
src/taucs.h:828: error: a€?taucs_blas_namea€? declared as function
returning a function
cc1: warnings being treated as errors
src/taucs.h:828: error: parameter names (without types) in function
declaration
src/taucs.h:829: error: a€?taucs_blas_namea€? declared as function
returning a function
src/taucs.h:829: error: parameter names (without types) in function
declaration
src/taucs.h:830: error: a€?taucs_blas_namea€? declared as function
returning a function
src/taucs.h:830: error: parameter names (without types) in function
declaration
src/taucs.h:831: error: a€?taucs_blas_namea€? declared as function
returning a function
src/taucs.h:831: error: parameter names (without types) in function
declaration
make: *** [obj/linux/taucs_logging.o] Error 1

=================================================================================

Evgenii Rudnyi

unread,
Nov 3, 2009, 2:53:44 PM11/3/09
to matrixpr...@googlegroups.com
At the beginning TAUCS makes some checks and in your cases it was not
able to compile the test programs.

> I got some troubles while I compiled the taucs under this machine.
> At beginning, I downloaded the taucs package from the official
> website, and compiled it.
> It looks like the external library come with the package is
> incompatible with this machine(?)...
> The messages are in errors[1].

Here you should pay attention to

> ld: skipping incompatible external/lib/linux/liblapack.a when
> searching for -llapack

For some reason liblapack.a cannot be used and then taucs_config_tests.h
was not build.

> Then, I download the ATLAS (v3.9.16), lapack (v3.2.1) and metis (v4.0)
> to generate 5 libraries
> to replace the original libraries. (libatlas.a, libf77blas.a,
> libcblas.a, liblapack.a, and libmetis.a)
>
> After that, I built the taucs again, but it still got some problems...
> The error messages are listed in errors[2].

> -llapack -L external/lib/linux -lf77blas -lcblas -latlas -lg2c -lm


> external/lib/linux/libf77blas.a(xerbla.o): In function `xerbla_':
> xerbla.f:(.text+0x51): undefined reference to `_gfortran_st_write'

Here presumably you have used gfortran but taucs uses g2c that is a lib
for g77. You have to change -lg2c to -lgfortran. Well, I do not know how
the gfortral run-time library is called, so please just correct it.

> Did I do something wrong?? Any suggestions?

You can compile the test programs by hand, then make will not try to
complile them again. Or make taucs_config_tests.h by hand by you have to
make it correctly otherwise you will have problems later on.

Basically you have to read and edit the makefile.

Reply all
Reply to author
Forward
0 new messages