[csw-maintainers] opening both 32bit and 64bit shared libs

Darin Perusich Darin.Perusich at cognigencorp.com
Mon Apr 26 18:26:14 CEST 2010


Hi Dago,

I see what you're saying but the behavior I'm seeing is that it's only
attempting to open the 64bit lib and never the 32bit one, see below.
I've been in contact with the Amanda developers and they're not sure
what's going on or how to proceed. From how things appear the problem is
outside of the amanda libs and is glib2 related.

I've definitely reached a point where I don't know how to proceed so any
guidance will be greatly appreciated.

Thanks

<testing9s:~>  grep open /tmp/amtruss.out |grep -v NOENT | grep gthread
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv8/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 4
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5
open("/opt/csw/lib/sparcv9/libgthread-2.0.so.0", O_RDONLY) = 5


On 04/26/2010 11:10 AM, Dagobert Michelsen wrote:
> Hi Darin,
> 
> Am 26.04.2010 um 15:09 schrieb Darin Perusich:
>> You say this is normal behavior, i.e listing all the applicable
>> libraries, but there is no other instance where an open() to a 64bit
>> library is occurring. Whenever a 64bit lib is evaluated I get "rejected:
>> wrong ELF class: ELFCLASS64" for those libs.
> 
> Just take an arbitrary binary from /opt/csw/bin which has $ISALIST
> in the RPATH, like 411toppm. It is always the same behaviour:
> 
> dam at testing9s :/opt/csw/bin > dump -Lv 411toppm
> 
> 411toppm:
> 
>   **** DYNAMIC SECTION INFORMATION ****
> .dynamic:
> [INDEX] Tag         Value
> [1]     NEEDED          libnetpbm.so.10
> [2]     NEEDED          libpng12.so.0
> [3]     NEEDED          libz.so
> [4]     NEEDED          libjpeg.so.62
> [5]     NEEDED          libtiff.so.3
> [6]     NEEDED          libm.so.1
> [7]     NEEDED          libsocket.so.1
> [8]     NEEDED          libnsl.so.1
> [9]     NEEDED          libc.so.1
> [10]    INIT            0x1fe258
> [11]    FINI            0x1fe268
> [12]    RUNPATH         /opt/csw/lib/$ISALIST:/opt/csw/lib
> [13]    RPATH           /opt/csw/lib/$ISALIST:/opt/csw/lib
> [14]    HASH            0x100e8
> ...
> 
> dam at testing9s :/opt/csw/bin > truss -f ./411toppm
> 2932:   execve("netpbm", 0xFFBFFAD4, 0xFFBFFADC)  argc = 1
> ...
> 2932:   mprotect(0xFF1C0000, 159436, PROT_READ|PROT_EXEC) = 0
> 2932:   stat("/opt/csw/lib/sparcv9+vis2/libjpeg.so.7", 0xFFBFF148) Err#2
> ENOENT
> 2932:   stat("/opt/csw/lib/sparcv9+vis/libjpeg.so.7", 0xFFBFF148) Err#2
> ENOENT
> 2932:   stat("/opt/csw/lib/sparcv9/libjpeg.so.7", 0xFFBFF148) = 0
> 2932:   resolvepath("/opt/csw/lib/sparcv9/libjpeg.so.7",
> "/opt/csw/lib/sparcv9/libjpeg.so.7.0.0", 1023) = 37
> 2932:   open("/opt/csw/lib/sparcv9/libjpeg.so.7", O_RDONLY) = 3
> 2932:   mmap(0x00010000, 32768, PROT_READ|PROT_EXEC,
> MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFF0F0000
> 2932:   close(3)                                        = 0
> 2932:   stat("/opt/csw/lib/sparcv8plus+vis2/libjpeg.so.7", 0xFFBFF148)
> Err#2 ENOENT
> 2932:   stat("/opt/csw/lib/sparcv8plus+vis/libjpeg.so.7", 0xFFBFF148)
> Err#2 ENOENT
> 2932:   stat("/opt/csw/lib/sparcv8plus/libjpeg.so.7", 0xFFBFF148) Err#2
> ENOENT
> 2932:   stat("/opt/csw/lib/sparcv8/libjpeg.so.7", 0xFFBFF148) = 0
> 2932:   resolvepath("/opt/csw/lib/sparcv8/libjpeg.so.7",
> "/opt/csw/lib/libjpeg.so.7.0.0", 1023) = 29
> 2932:   open("/opt/csw/lib/sparcv8/libjpeg.so.7", O_RDONLY) = 3
> 2932:   mmap(0xFF0F0000, 32768, PROT_READ|PROT_EXEC,
> MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF0F0000
> 2932:   mmap(0x00010000, 368640, PROT_NONE,
> MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEDA0000
> ...
> 
> 
> Best regards
> 
>   -- Dago
> _______________________________________________
> maintainers mailing list
> maintainers at lists.opencsw.org
> https://lists.opencsw.org/mailman/listinfo/maintainers
> .:: This mailing list's archive is public. ::.

-- 
Darin Perusich
Unix Systems Administrator
Cognigen Corporation
395 Youngs Rd.
Williamsville, NY 14221
Phone: 716-633-3463
Email: darinper at cognigencorp.com


More information about the maintainers mailing list