[Ecls-list] ECL-0.9c bugfix release (with open bugs)
Robert Lehr
bozzio at the-lehrs.com
Thu Oct 30 23:07:10 UTC 2003
Downloaded it. Built it. v0.9b did. Now it will not build against my local
gmp, as configured in the RPM spec file. It in when linking. Removed
'--local-gmp' and it built normally. The errors were displayed.
make[2]: Leaving directory `/u/a/bozzio/_sw/cx/rpm/BUILD/ecl-0.9c/build/c'
if [ -f CROSS-COMPILER ]; then \
touch ecl_min; \
else \
i386-redhat-linux-gcc -o ecl_min c/cinit.o -L./ libecl.a libgc.a -ldl -lm ;\
fi
libecl.a(read.o): In function `parse_number':
read.o(.text+0x7ba): undefined reference to `__gmpz_mul_ui'
read.o(.text+0x7c5): undefined reference to `__gmpz_add_ui'
read.o(.text+0x89e): undefined reference to `__gmpz_get_d'
read.o(.text+0x90a): undefined reference to `__gmpz_mul_ui'
read.o(.text+0x915): undefined reference to `__gmpz_add_ui'
read.o(.text+0x9bb): undefined reference to `__gmpz_get_d'
read.o(.text+0xad0): undefined reference to `__gmpz_get_d'
libecl.a(read.o): In function `parse_integer':
read.o(.text+0xe5a): undefined reference to `__gmpz_mul_ui'
read.o(.text+0xe65): undefined reference to `__gmpz_add_ui'
libecl.a(print.o): In function `write_bignum':
print.o(.text+0x13a7): undefined reference to `__gmpz_sizeinbase'
print.o(.text+0x13c9): undefined reference to `__gmpz_get_str'
libecl.a(predicate.o): In function `eql':
predicate.o(.text+0x942): undefined reference to `__gmpz_cmp'
libecl.a(big.o): In function `big_register_copy':
big.o(.text+0x16c): undefined reference to `__gmpz_init_set'
libecl.a(big.o): In function `bignum1':
big.o(.text+0x27b): undefined reference to `__gmpz_init_set_si'
libecl.a(big.o): In function `big_copy':
big.o(.text+0x2ee): undefined reference to `__gmpz_init_set'
libecl.a(big.o): In function `big_minus':
.
.
.
num_log.o(.text+0x40b): undefined reference to `__gmpz_com'
libecl.a(num_log.o): In function `mpz_b_c2_op':
num_log.o(.text+0x451): undefined reference to `__gmpz_com'
libecl.a(num_log.o): In function `log_op':
num_log.o(.text+0x5e3): undefined reference to `__gmpz_set_si'
libecl.a(num_log.o): In function `log_op2':
num_log.o(.text+0x723): undefined reference to `__gmpz_set_si'
libecl.a(num_log.o): In function `count_bits':
num_log.o(.text+0x829): undefined reference to `__gmpn_popcount'
num_log.o(.text+0x847): undefined reference to `__gmpz_com'
num_log.o(.text+0x869): undefined reference to `__gmpn_popcount'
libecl.a(num_log.o): In function `ecl_ash':
num_log.o(.text+0x8f2): undefined reference to `__gmpz_fdiv_q_2exp'
num_log.o(.text+0x90f): undefined reference to `__gmpz_set_si'
num_log.o(.text+0x929): undefined reference to `__gmpz_mul_2exp'
libecl.a(num_log.o): In function `cl_logbitp':
num_log.o(.text+0xe69): undefined reference to `__gmpz_tstbit'
collect2: ld returned 1 exit status
make[1]: *** [ecl_min] Error 1
make[1]: Leaving directory `/u/a/bozzio/_sw/cx/rpm/BUILD/ecl-0.9c/build'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.87251 (%build)
I removed the 'libecl.a' from line #57 in the {src,build}/Makefile*. Executed
make and got these errors.
make[2]: Leaving directory `/u/a/bozzio/_sw/cx/rpm/BUILD/ecl-0.9c/build/c'
if [ -f CROSS-COMPILER ]; then \
touch ecl_min; \
else \
i386-redhat-linux-gcc -o ecl_min c/cinit.o -L./ libgc.a -ldl -lm ;\
fi
c/cinit.o: In function `si_simple_toplevel':
c/cinit.o(.text+0x20): undefined reference to `lex_env'
c/cinit.o(.text+0x40): undefined reference to `cl_symbols'
c/cinit.o(.text+0x60): undefined reference to `si_argv'
c/cinit.o(.text+0x6a): undefined reference to `cl_load'
c/cinit.o(.text+0x72): undefined reference to `si_argc'
c/cinit.o(.text+0x7f): undefined reference to `cl_symbols'
c/cinit.o(.text+0xa0): undefined reference to `cl_read'
c/cinit.o(.text+0xad): undefined reference to `NValues'
c/cinit.o(.text+0xcb): undefined reference to `si_eval_with_env'
c/cinit.o(.text+0xd4): undefined reference to `prin1'
c/cinit.o: In function `main':
c/cinit.o(.text+0xfd): undefined reference to `cl_boot'
c/cinit.o(.text+0x103): undefined reference to `system_package'
c/cinit.o(.text+0x109): undefined reference to `cl_symbols'
c/cinit.o(.text+0x11b): undefined reference to `cl_symbols'
c/cinit.o(.text+0x132): undefined reference to `make_keyword'
c/cinit.o(.text+0x13a): undefined reference to `make_cons'
c/cinit.o(.text+0x14c): undefined reference to `make_keyword'
c/cinit.o(.text+0x154): undefined reference to `make_cons'
c/cinit.o(.text+0x166): undefined reference to `make_keyword'
c/cinit.o(.text+0x16e): undefined reference to `make_cons'
c/cinit.o(.text+0x182): undefined reference to `_intern'
c/cinit.o(.text+0x196): undefined reference to `cl_def_c_function'
c/cinit.o(.text+0x1a0): undefined reference to `cl_funcall'
collect2: ld returned 1 exit status
make[1]: *** [ecl_min] Error 1
make[1]: Leaving directory `/u/a/bozzio/_sw/cx/rpm/BUILD/ecl-0.9c/build'
make: *** [all] Error 2
Now when I try to link my programs against ECL, it fails because it cannot find
libclos. I noticed the the '--export-dynamic' linker option was removed
'ecl-0.9c/src/aclocal.m4'. When I restore that option, it breaks gmp somehow.
After that, I removed the '-lclos' and the '-llsp' from 'ecl-config'. It seemed
to link normally, except that 'ld.so' cannot find 'libecl.so'.
This build worked with v0.9b. So I am stuck with that. But I want to use v0.9c
for the compiler/load fix; that bug is biting me. As much as I do not want to
do it, I can work around the bug temporarily.
I am too tired to effectively isolate this problem myself. Also, I am focused
on getting ECL linked into my program, i.e. learning the C interface. I hope
that an easy fix is available.
--
Robert Lehr
More information about the ecl-devel
mailing list