[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