[Ecls-list] fatal: relocation errors on Solaris x86 and OpenSolaris 64-bit.
Dr. David Kirkby
david.kirkby at onetel.net
Sun Aug 29 23:48:36 UTC 2010
Hi,
Several months ago I discovered that Maxima would not build in Sage on 64-bit
OpenSolaris. ECL built, but Maxima would not.
The error was:
make[3]: Entering directory
`/export/home/drkirkby/sage-4.4.2/spkg/build/maxima-5.20.1.p0/src/src'
test -d binary-ecl || mkdir binary-ecl
ecl -norc -eval '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern
(symbol-name :operate-on-system) :mk) "maxima" :compile :verbose t)
(build-maxima-lib))' -eval '(ext:quit)'
ld.so.1: ecl: fatal: relocation error: R_AMD64_PC32: file
/export/home/drkirkby/sage-4.4.2/local/lib//libecl.so: symbol main: value
0x22800097de04 does not fit
make[3]: *** [binary-ecl/maxima] Killed
More info at
http://trac.sagemath.org/sage_trac/ticket/9099
At the time, I did not have a clue whether this was a Maxima, ECL or Sage issue,
but now I believe it is an ECL issue, as the link-editor thinks the shared
object contains text relocations.
There's a command given on this Sun blog, which will show libraries with this
problem
http://blogs.sun.com/rie/entry/my_relocations_don_t_fit
After downloading the latest from your git repository about an hour ago, and
building ECL, with
export CC="gcc -m64"
./configure
make
I see:
drkirkby at hawk:/tmp/ecl$ elfdump -d ./build/libecl.so | fgrep TEXTREL
[23] TEXTREL 0
[31] FLAGS 0x4 [ TEXTREL ]
which indicates a problem.
One obvious reason for this is if the code is not compiled as position
independent code. Anohter is if the code contains assembly code which is not
position indepedant, but I think I've disabled that when I tried again with
$ ./configure --with-dffi=no
I also tried setting
CC="gcc -m64 -fPIC"
but that did not help either.
Have you any clue how I might resolve this?
Dave
More information about the ecl-devel
mailing list