Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 523
  • Last Modified:

'unresolvable symbol' in shared lib on IRIX6.2: __record_needed_destruction

When attempting to run a binary which was dynamically linked to a shared library (.so file), rld gives me the following error:

"rld: Fatal Error: attempted access to unresolvable symbol in libava2.so: __record_needed_destruction"

where libava2.so is a (quite simple) library that I created.  How do I fix this?

Hint: it may have something to do w/ old 32-bit vs. new 32-bit and LD_LIBRARY_PATH vs. LD_LIBRARYN32_PATH environment variables.
0
kfcox
Asked:
kfcox
  • 2
  • 2
1 Solution
 
jos010697Commented:
Nope, your lib paths are fine, because the runtime linker
did find the shared object; it just complained about the
symbol itself (see error message). Did you tell the
the linker (when you created the .so file) to export the
symbols you want to access at runtime? (like _record_needed_
descturction).

It depends a bit on the Un*x box your'e running on; on my
SP/2 AIX thingy, I pass the following flags to the linker:

   -bM:SRE -bnoentry -berok -bEexport.exp

where file export.exp contains the names of the symbols
to be exported. On a Linux box, the flags look like this:

   -shared -fPIC

check your manuals for 'ld' ...

kind regards,

Jos aka jos@and.nl
0
 
jos010697Commented:
ps. The Linux flags are incomplete; the complete line of
flags looks like this:

-export-dynamic -shared -fPIC

kind regards,

Jos aka jos@and.nl
0
 
kfcoxAuthor Commented:
this symbol is in
        /usr/lib/libebtctudl.so
Possible reasons:
        1. not specified in library list for the linker
        2. lib cannot be accessed/found at runtime (see your
            LD_LIBRARY*_PATH, see also linker options:
                -force_load, -delay_load, -default_delay_load )

To find out which shared libs will be used at runtime, try:
        setenv _RLD_PATH /usr/lib/rld.debug
        setenv _RLD_ARGS "-v -log any_file"
        your_executable

Good Luck, Achim

0
 
ahoffmannCommented:
What is the /usr/lib/libebtctudl.so library and what package is it a part of?  It's not on my system, and I can't find any mention of it anywhere!!
0
 
kfcoxAuthor Commented:
/usr/lib/libebtctudl.so is new in IRIX 6.x, contact SGI to ask
for its purpose. Anyway, it should be founf on your distribution
CDs (see Find/Search functionality in Toolchest->SoftwareManager)

To solve your problem try to find out which source or library
references routines in /usr/lib/libebtctudl.so .
Use the -v and/or -m option of the the linker (take care if you
use cc or CC for linking).
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now