Opened 11 years ago

Closed 7 years ago

Last modified 7 years ago

#9987 closed defect (invalid)

Shared readline library uses a .so extension on AIX when it should be .a

Reported by: drkirkby Owned by: drkirkby
Priority: minor Milestone: sage-duplicate/invalid/wontfix
Component: porting: AIX or HP-UX Keywords:
Cc: Merged in:
Authors: Reviewers: Volker Braun
Report Upstream: None of the above - read trac for reasoning. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

Using the following system:

  • IBM RS/6000 7025 F50
  • 4 x 332 MHz 32-bit PowerPC CPUs
  • 3 GB RAM
  • A fair wide mixture of disks sizes (3 x 9 GB, 1 x 18 GB, 2 x 36 GB and 1 x 73 GB)
  • DDS-4 tape drive
  • AIX 5.3 (A POSIX certified operating system)
  • gcc 4.2.4 downloaded from pware
  • sage-4.6.alpha1

Readline builds, but then if we look at the libraries, one has the wrong extension.

-bash-4.1$ ls -l local/lib/libreadline*
-rwxr-xr-x   1 drkirkby staff       1739661 23 Sep 15:43 local/lib/libreadline.a
lrwxrwxrwx   1 drkirkby staff            16 23 Sep 15:43 local/lib/libreadline.so -> libreadline.so.6
-rwxr-xr-x   1 drkirkby staff       1145940 23 Sep 15:43 local/lib/libreadline.so.6
-bash-4.1$ 
-bash-4.1$ 
-bash-4.1$ file local/lib/libreadline.a     local/lib/libreadline.so    local/lib/libreadline.so.6
local/lib/libreadline.a: archive (big format)
local/lib/libreadline.so: executable (RISC System/6000) or object module not stripped
local/lib/libreadline.so.6: executable (RISC System/6000) or object module not stripped

I don't know AIX well, but I suspect the .a is a static library here, and the .so is a shared library. But AIX uses .a for shared libraries. (I don't know what it uses for static libraries - it might be .o).

This is probably a mis-configuration in Sage.

Dave

Change History (8)

comment:1 Changed 10 years ago by drkirkby

It appears AIX uses .a for both shared and static libs. But it understands .so too, so this can be closed as invalid.

comment:2 Changed 8 years ago by jdemeyer

  • Milestone changed from sage-5.11 to sage-5.12

comment:3 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.1 to sage-6.2

comment:4 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.2 to sage-6.3

comment:5 Changed 7 years ago by vbraun_spam

  • Milestone changed from sage-6.3 to sage-6.4

comment:6 Changed 7 years ago by chapoton

  • Milestone changed from sage-6.4 to sage-duplicate/invalid/wontfix
  • Status changed from new to needs_review

Can this be closed ?

comment:7 Changed 7 years ago by vbraun

  • Resolution set to invalid
  • Reviewers set to Volker Braun
  • Status changed from needs_review to closed

comment:8 Changed 7 years ago by fbissey

While this is now closed I should add a couple of comments. AIX doesn't use elf format but xcoff (google it). The .a from aix can contain both static and dynamic libraries. They also can contain both 32 and 64bit objects all at the same type. The linker works out what it needs at linking time. ".so" linux style shared libraries are allowed with recent linkers of AIX (I don't know if it extends as far back as AIX 5.3 it is definitely in 6.1) but you need to know the extra linking flags to use them "-G" and "-brtl" depending on the case. It is all pretty dangerous and it is best to leave the task of making the libraries to libtool if possible.

Note: See TracTickets for help on using tickets.