[Ecls-list] fatal: relocation errors on Solaris x86 and OpenSolaris 64-bit.

Dr. David Kirkby david.kirkby at onetel.net
Mon Aug 30 12:59:08 UTC 2010


On 08/30/10 01:18 PM, Juan Jose Garcia-Ripoll wrote:
> On Mon, Aug 30, 2010 at 1:52 PM, Dr. David Kirkby
> <david.kirkby at onetel.net>wrote:
>
>> But Solaris 10 has not died, neither or x86 or SPARC. The issues are seen
>> on Solaris 10 SPARC too, so it not just an x86 problem. Maxima is not
>> complaining on SPARC, but the elfdump command clearly shows the problem is
>> in the ECL library file. That problem exits on 64-bit SPARC  too.
>>
>> kirkby at t2:64 ~/t2/64/sage-4.5.3.alpha2/local/lib$ uname -a
>> SunOS t2 5.10 Generic_141414-02 sun4v sparc SUNW,T5240
>> kirkby at t2:64 ~/t2/64/sage-4.5.3.alpha2/local/lib$ elfdump -d libecl.so |
>> fgrep TEXTREL
>>       [18]  TEXTREL           0
>>       [30]  FLAGS             0x4                 [ TEXTREL ]
>>
>
> The output of fgrep is not at all informative. If TEXTREL is a signature of
> non-PIC code then elfdump must also provide the names of the symbols that
> have this problem. This will in turn provide a clue as to which object files
> were not compiled with PIC. Could you please provide this information, as I
> suggested in the previous email.


Yes. I can will provide a log.

> The problem can't be Maxima, as I don't need to even build Maxima to show
>> the ECL code has this problem.
>>
>
> Please understand my statements in the appropriate context. Maxima is
> compiled with ECL and while ECL runs just fine, the Maxima executable does
> not. The problem might be in the compilation statements that build the
> resulting code, since ECL seems to work just fine -- even if as you suggest
> there are non-PIC sections.
>
>
>> Note also, that there's this compiler warnings when I build on Solaris (or
>> any sort)
>>
>> /export/home/drkirkby/sage-4.5.3.alpha2/spkg/build/ecl-10.2.1.p2/src/src/c/dpp.c:680:13:
>> warning: too many arguments for format
>>
>
> The compiler is probably wrong. gcc here does not detect any problem and I
> do not see any obvious one in dpp.c In any case this file is not related to
> the relocation issues since its only responsibility is to preprocess C files
> when bootstrapping ECL and it seems to be doing it just fine.
>
> Juanjo
>
If I build using the Sun compiler, with the options you suggest, it fails to 
build at all, since the Sun C compiler will not accept C99 code by default. So I 
added the option -xc99=all.

drkirkby at hawk:/tmp/ecl$ echo $CC
cc -xarch=amd64 -KPIC -xc99=all


Unfortunately, ECL fails to build properly with that either - see below. 
However, the library did build, and does not appear to show the text relocation 
problems I got with gcc.

drkirkby at hawk:/tmp/ecl$ elfdump -d build/libecl.so | grep TEXTREL
drkirkby at hawk:/tmp/ecl$




;;; Note:
;;;   Invoking external command:
;;;   cc -xarch=amd64 -KPIC -xc99=all "-I/tmp/ecl/build/"   -g -fPIC -Dsun4sol2 
-I"/tmp/ecl/src/c"  -w -c "/tmp/eclinitQpaGsg.c" -o "/tmp/eclinitQpaGsg.o"
cc: Warning: -xarch=amd64 is deprecated, use -m64 to create 64-bit programs
;;;
;;; Note:
;;;   Invoking external command:
;;;   cc -xarch=amd64 -KPIC -xc99=all -o "/tmp/ecl/build/rt.fas" 
-L"/tmp/ecl/build/" "/tmp/eclinitQpaGsg.o" "/tmp/ecl/build/ext/rt.o"   -dy -G 
  libecl.so -ldl  -lm -lsocket -lnsl -lintl  -lgmp
cc: Warning: -xarch=amd64 is deprecated, use -m64 to create 64-bit programs
;;;
;;; Note:
;;;   Invoking external command:
;;;   cc -xarch=amd64 -KPIC -xc99=all "-I/tmp/ecl/build/"   -g -fPIC -Dsun4sol2 
-I"/tmp/ecl/src/c"  -w -c "/tmp/eclinitRpaGsg.c" -o "/tmp/eclinitRpaGsg.o"
cc: Warning: -xarch=amd64 is deprecated, use -m64 to create 64-bit programs
;;;
;;; Note:
;;;   Invoking external command:
;;;   cc -xarch=amd64 -KPIC -xc99=all -o "/tmp/ecl/build/bin/ecl" 
-L"/tmp/ecl/build/" "/tmp/eclinitRpaGsg.o" "-L./"     libecl.so -ldl  -lm 
-lsocket -lnsl -lintl
cc: Warning: -xarch=amd64 is deprecated, use -m64 to create 64-bit programs
Undefined			first referenced
  symbol  			    in file
__gmpn_perfect_square_p             /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpz_tdiv_q                       /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpq_set                          /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpz_set                          /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpn_add_n                        /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpn_sub_n                        /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
__gmpn_popcount                     /tmp/eclinitRpaGsg.o  (symbol belongs to 
implicit dependency /usr/lib/64/libgmp.so.3)
ld: fatal: symbol referencing errors. No output written to /tmp/ecl/build/bin/ecl
;;;
(SYSTEM "cc -xarch=amd64 -KPIC -xc99=all -o \"/tmp/ecl/build/bin/ecl\" 
-L\"/tmp/ecl/build/\" \"/tmp/eclinitRpaGsg.o\" \"-L./\"     libecl.so -ldl  -lm 
-lsocket -lnsl -lintl") returned non-zero value 1

Available restarts:

1. (CONTINUE) Continues anyway.

Broken at TPL.
  File: #P"/tmp/ecl/src/lsp/top.lsp" (Position #20393)
SI>>




More information about the ecl-devel mailing list