[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