Bill Allombert on Sat, 13 May 2023 00:10:16 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: library .tbss mismatches


> $make TARGET=extgcd
> /usr/bin/gcc -c -O3 -Wall -ffp-contract=off -fno-strict-aliasing  -I. -I/usr/local//include -fPIC extgcd.c
> /usr/bin/gcc -o extgcd -O3 -Wall -ffp-contract=off -fno-strict-aliasing    -Wl,--export-dynamic   extgcd.o  -Wl,-rpath "/usr/local//lib" -lm -L/usr/local//lib -lpari
> /usr/bin/ld: /usr/local//lib/libpari.a(ispower.o): in function `logintall':
> ispower.c:(.text+0xa42): undefined reference to `log2'
> /usr/bin/ld: /usr/local//lib/libpari.a(ispower.o): in function `logint0':
> ispower.c:(.text+0x1453): undefined reference to `floor'
> 
> [about 800 similar lines followed here]
> 
> /usr/bin/ld: /usr/local//lib/libpari.a(polclass.o):polclass.c:(.text+0xb926): more undefined references to `log' follow
> /usr/bin/ld: /usr/local//lib/libpari.a(polclass.o): in function `polclass0':
> polclass.c:(.text+0xba0e): undefined reference to `sqrt'
> /usr/bin/ld: polclass.c:(.text+0xba18): undefined reference to `sqrt'
> collect2: error: ld returned 1 exit status
> make: *** [Makefile:49: extgcd] Error 1
> $cd ..
> $sudo make install-bin-sta
> $cd examples/
> $make TARGET=extgcd
> 
> [same error messages]

As I understand, this is due to linking with libpari.a instead of libpari.so.
(in that case, you have to move -lm after -lpari).

Is /usr/local/lib/libpari.so a broken link ? What gives
ls -l /usr/local/lib/libpari.so ?

That would explain the error message at least.

> Anything else I might try?

Yes, follow the instruction in the installation manual, page 8.

Cheers,
Bill