08-29-2005
Shared Objects
Hi. Does anyone know by how much a text size of an executable(on ibm) would grow if you link one shared object(library)? Is it a constant number or it depends on a .so that is linked?
10 More Discussions You Might Find Interesting
1. Programming
I'm runtime linking (dlopen and dlsym) to a shared object (library) I've created and after a number of function calls into the library the program core dumps (Illegal operation). This only occurs during runtime linking. If I use the same library and dynamically link during compile time everything... (3 Replies)
Discussion started by: dneely
3 Replies
2. Programming
I asked the next question in a former thread :
Can I safely share objects that have virtual functions (i.e. have
virtual function table pointers) between two processes ?
Where will the pointers point to in each process ?
The objects are supposed to reside in shared memory
I received a... (6 Replies)
Discussion started by: Seeker
6 Replies
3. UNIX for Dummies Questions & Answers
Hi Friends !
I have a library, say libxyz.a.
To view all the object files in the archive, i issued the command :
ar -t libxyz.a
which displayed all the object files it contains.
Now, I would like to know the functions in each object file.
Is there any such command that displays... (3 Replies)
Discussion started by: mrgubbala
3 Replies
4. Programming
hi all !
Do I need all the shared objects to be present while compiling my code which has reference to a only one shared object, which in turn refers to another shared object.
for example I want to compile example.c which refers to sample.so
sample.so has refrence to anothersample.so
do... (2 Replies)
Discussion started by: disclaimer
2 Replies
5. UNIX for Advanced & Expert Users
Hi,
i am trying to debug a binary which is using a shared lib.
but i could not succeed in tracking the code flow in the classes defined
in this library.
i get: class MyClass <opaque> error
i followed the instructions in the link below:... (0 Replies)
Discussion started by: yakari
0 Replies
6. AIX
I have two envoirmets(Envoirment A and Envoirment B) running on same server(AIX vesion 5.3).Both have different groups.I am facing a strange problem.Shared objects of one envoirment (Envoirment A)are getting loaded into the second(Envoirment B).So the servers that have dependency on shared objects... (2 Replies)
Discussion started by: nitin@tcs
2 Replies
7. Programming
G'day,
I have been working with a large application that makes extensive use of templates. When compiled under Unix (with g++), this sees some rather impressive bloat. I have been trying to make a temporary quick-fix by using the -frepo option, which results in dramatically smaller shared... (0 Replies)
Discussion started by: Elric of Grans
0 Replies
8. Programming
Hi,
I am looking for references about creating and accessing Shared Objects (.so) through C/C++ on Unix / Linux platforms. Is it possible and where can I find the info.
Thanks
Phil (1 Reply)
Discussion started by: phil nascimento
1 Replies
9. Linux
dear Experts,
please help,
actually i am trying to create a .so(shared object through make file through ld)
i am not understaning how to proceed i have tried like
through command like i can do it in 2 step like
my progam :test2.c
$gcc -fPIC -c test2.c
$ld -shared -soname test2.so -o... (1 Reply)
Discussion started by: vin_pll
1 Replies
10. UNIX for Advanced & Expert Users
Hi All......
I have my tool in my one server lets say E1 and same tool I tried to install in E2 server so everything is fine but, while executing the my tool for example...
$ ./batch
At that time Im getting this following error.
./batch: error while loading shared libraries: libqabwvcd.so:... (3 Replies)
Discussion started by: ksrivani
3 Replies
LEARN ABOUT FREEBSD
dladdr
DLADDR(3) BSD Library Functions Manual DLADDR(3)
NAME
dladdr -- find the shared object containing a given address
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <dlfcn.h>
int
dladdr(const void *addr, Dl_info *info);
DESCRIPTION
The dladdr() function queries the dynamic linker for information about the shared object containing the address addr. The information is
returned in the structure specified by info. The structure contains at least the following members:
const char *dli_fname The pathname of the shared object containing the address.
void *dli_fbase The base address at which the shared object is mapped into the address space of the calling process.
const char *dli_sname The name of the nearest run-time symbol with a value less than or equal to addr. When possible, the symbol name is
returned as it would appear in C source code.
If no symbol with a suitable value is found, both this field and dli_saddr are set to NULL.
void *dli_saddr The value of the symbol returned in dli_sname.
The dladdr() function is available only in dynamically linked programs.
ERRORS
If a mapped shared object containing addr cannot be found, dladdr() returns 0. In that case, a message detailing the failure can be
retrieved by calling dlerror().
On success, a non-zero value is returned.
SEE ALSO
rtld(1), dlopen(3)
HISTORY
The dladdr() function first appeared in the Solaris operating system.
BUGS
This implementation is bug-compatible with the Solaris implementation. In particular, the following bugs are present:
o If addr lies in the main executable rather than in a shared library, the pathname returned in dli_fname may not be correct. The pathname
is taken directly from argv[0] of the calling process. When executing a program specified by its full pathname, most shells set argv[0]
to the pathname. But this is not required of shells or guaranteed by the operating system.
o If addr is of the form &func, where func is a global function, its value may be an unpleasant surprise. In dynamically linked programs,
the address of a global function is considered to point to its program linkage table entry, rather than to the entry point of the func-
tion itself. This causes most global functions to appear to be defined within the main executable, rather than in the shared libraries
where the actual code resides.
o Returning 0 as an indication of failure goes against long-standing Unix tradition.
BSD
February 5, 1998 BSD