Skip to content

link-editor thinks ECL library contains non-pic code on *all* Solaris/OpenSolaris releases - causes problems on 64-bit #9840

@sagetrac-drkirkby

Description

@sagetrac-drkirkby

As noted at #9099, Maxima fails to build properly on OpenSolaris x64. The ticket then went onto discuss specific doctest failures on 32-bit Solaris n x86.

However, the reason Maxima was not working on OpenSolaris is totally unrelated and much wider. It has nothing to do with Maxima, but is almost certainly an issue with ECL.

Hence it seemed wise to open a ticket specific for this.

The problem is that the link-editor thinks the ecl shared library contains text relocations, which is why there was an error like

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

There's a command given on this Sun blog

http://blogs.sun.com/rie/entry/my_relocations_don_t_fit

which will show libraries with this problem.

== OpenSolaris on x64 ==

I built the latest ECL snapshot outside of Sage, and run the suggested command on the ECL library. Note, this a different version of ECL built at a later date.

drkirkby@hawk:/tmp/ecl$ ./configure 
drkirkby@hawk:/tmp/ecl$ make

then the all important:

drkirkby@hawk:/tmp/ecl$ elfdump -d ./build/libecl.so |  fgrep TEXTREL
      [23]  TEXTREL           0
      [31]  FLAGS             0x4                 [ TEXTREL ]

which indicates a problem - there should be no output from that.

It's also suggested to compile with some debugging information:

$ export LD_OPTIONS=-Dreloc,detail 
$ unset MAKE
$ make

A full log is attached of that.

Upstream: Fixed upstream, in a later stable release.

Component: porting: Solaris

Reviewer: David Kirkby

Issue created by migration from https://trac.sagemath.org/ticket/9840

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions