Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jul 2000 13:14:38 EDT
From:      "Greg Thompson" <johnnyteardrop@hotmail.com>
To:        freebsd-hackers@FreeBSD.ORG
Subject:   rtld problem
Message-ID:  <20000718171438.22495.qmail@hotmail.com>

next in thread | raw e-mail | index | archive | help
hackers,

i'm having trouble with the runtime linker.  it seems like a bug, but 
perhaps there's something mystical i'm supposed to do to make this work.  
the short version of what i'm seeing is this:

my app references symbols in a shared lib.  the shared lib uses symbols in 
another shared lib.  if i like my app only against lib #1, it crashes while 
initializing static objects in lib #2.  if i link my app against both lib #1 
and lib #2, it runs fine.  i believe the problem is that the runtime 
linker/loader is initializing objects out of order.

okay, the longer version:

i create shared lib A kinda like this:

g++ obj1.o obj2.o ... -pthread -shared -Wl,-h,libA.so.5 -o libA.so.5
ln -s libA.so.5 libA.so

then i create shared lib B sorta like this:

g++ obj3.o obj4.o ... -pthread -shared -lA -Wl,-h,libB.so.5 -o libB.so.5
ln -s libB.so.5 libB.so

then if i make the app like so:

g++ app.o -lB -pthread -o app

it cores at startup.  if i make it like this:

g++ app.o -lA -lB -pthread -o app

it runs fine.

this is not good.  is there something i'm missing?  if not, how do i go 
about building a debug version of the runtime linker so i can debug this 
bastage?  thanks.

btw: this works fine under linux (gcc 2.95.2, ld 2.9.5, glibc 2.1.3) and 
under solaris (sun's CC, ld, libc, etc), so i don't think i'm expecting too 
much.
--
                  -greg

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000718171438.22495.qmail>