05-29-2007
Quote:
Originally Posted by Raom
can you please help me gettin details of this "fixups"
First what is the platform? Is it ELF?
Anyhow, a shared library works by exporting a number of functions by name. A program linked to those libraries has dangling pointers to those functions that need to be resolved at load time. This is what ld.so does.
So when a program starts "printf" really does point at libc.so.4::printf etc. If you then unload libc.so.4 or whatever the printf function disappears but the fixed up pointers dont change.
Some platforms support you supplying a "shim" shared library that will go between the application and the original, some don't.
Last edited by vino; 05-29-2007 at 05:30 AM..
Reason: disable smilies
10 More Discussions You Might Find Interesting
1. Programming
hi, every body. i have in trouble that how to load a dynamic library by hand.
for example, i know how to generate a dynamic library and how to link a dynamic library in makefile.
generate a dynamic library:
add -dy -G behind cc
link a dynamic library in makefile:
add -dy -Bdynamic behind cc... (0 Replies)
Discussion started by: subrain
0 Replies
2. Linux
hi
how can i load dynamic or shared library in linux kernel modules .
mtaghiloo@yahoo.com (0 Replies)
Discussion started by: mtaghiloo
0 Replies
3. Programming
is there a way to load a dynamic library in linux? I know tht in AIX u can do it using the loadAndInit() function. Please guide me (2 Replies)
Discussion started by: jacques83
2 Replies
4. Shell Programming and Scripting
Hello,
I'm using Sun solaris .
I'm trying to override the environmental variable in my script, however when I execute the script, the PATH whatever being set in .profile is taking precedence.
I have done the sanity checks like order of my entry in path, permissions for the user etc.,
To... (1 Reply)
Discussion started by: brainyoung
1 Replies
5. Programming
class B
{
public:
void fns(void){//base def;}
};
class D:public B
{
public:
void fns(void) {//new def;}
};
I was thinking the above is overriding but somewhere else i found the above is just hiding.Only virtual functions can be considered as overriding?
This is the exact statement ... (1 Reply)
Discussion started by: johnbach
1 Replies
6. UNIX for Dummies Questions & Answers
How can I simply obtain a list of the object files in a shared (dynamic) library.
I am looking for the equivalent of "ar -t <lib>" for archived (static) libraries.
Thanks in advance. :rolleyes:
---------- Post updated at 01:47 PM ---------- Previous update was at 12:16 PM ----------
The... (1 Reply)
Discussion started by: chatieremerrill
1 Replies
7. UNIX for Dummies Questions & Answers
I am having a major problem. Most of the commands that i am running on my centos 5 system is giving the error of type:
<dynamic shared library file>:open failed: No such file or directory
For example:
libgcc_s.so.1: open failed: No such file or directory
How can i solve this? (6 Replies)
Discussion started by: proactiveaditya
6 Replies
8. Programming
Hi,
I created two library libsum.so and libproduct.so. In the libproduct.so is defined function "product" that use function "sum" defined in libsum.so. So libproduct depends on libsum.
In main function I called product function by a dlopen request. Unfortunaly, when I execute program I have an... (5 Replies)
Discussion started by: shade82
5 Replies
9. Programming
hello
I apologize if my question bothers you
I work on a code developed in C + + which worked well on mac os, this code will help create libraries *.so from *.cc and *.h I used this as flags:CXXFLAGS = -g -O2 -fPIC -Wall -ldl -D_GNU_SOURCE ,CXX := g++ and $(CXX)-shared -o $(LIBNAME) $(CLIBLIB)... (0 Replies)
Discussion started by: pheapc
0 Replies
10. Programming
I would like to compile a binary that doesnot depend on LD_LIBRARY_PATH as this binary will be setuid to owner and used by other users and since setuid doesnot support LD_LIBRARY_PATH making it independent of LD_LIBRARY_PATH would be great.
But I am not able to specify the path of the shared... (1 Reply)
Discussion started by: waavman
1 Replies
LDBASH(1) libbash Manual LDBASH(1)
NAME
ldbash -- Dynamic loader for libbash(7) libraries.
SYNOPSIS
ldbash [-h | --help]
ldbash [-l | --list]
ldbash [-L | --load lib,[lib] ...]
ldbash [-U | --unload lib,[lib] ...]
ldbash [-e | --externlist lib,[lib] ...]
ldbash [--externlist-all]
ldbash [--i | --internlista lib,[lib] ...]
ldbash [--internlist-all]
DESCRIPTION
ldbash is used to manipulate libbash(7) libraries. Its main function is to load specific library. It can also print list of available
libraries, list functions each library exports, unload functions, etc.
In case of --load and --unload ,the output is intended to be passed to bash eval command.
Options
-h | --help Print options summary
-l | --list Display list of available libraries. The libraries names listed, may be passed as parameters to other invocations of ldbash.
I.e. first you run ldbash --list to see what is available and then you may load it.
-L | --load lib,[lib] ...
Load given libraries - i.e. print string that should be passed to eval command. Usually the string contains various source
commands.
Libraries that given libraries depend on are also loaded.
Libraries only loaded if their dependencies are satisfied. Dependencies are resolved using ldbash.cache file, which is created
by ldbashconfig(8).
-U | --unload lib,[lib] ...
Unload given libraries, but not their dependencies.
The output should be passed to eval command (in the same manner as with --load ).
-e | --externlist lib,[lib] ...
List all symbols that are exported by given libraries. Symbols are usually functions that given libraries implement.
--externlist-all
List all exported symbols of all available libraries. Symbols are usually functions that library implement.
-i | --internlist lib,[lib] ...
List all internal symbols (i.e. global variables/functions) of given libraries. This is intended mostly for developers that
want to develop library of their own, and want to be sure that they don't override any already defined symbol.
--internlist-all
List all internal symbols of all available libraries. This is intended mostly for developers that want to develop library of
their own, and want to be sure that they don't override any already defined symbol.
FILES
/etc/ldbash.cache
Cache file that contains information about libraries dependencies and list of exported symbols. See ldbashconfig((8)) for further
details.
BUGS
The script can't load libraries if their file name starts with '-'. (If someone uses file names that start with a '-' he/she deserves it!)
AUTHORS
Hai Zaar <haizaar@gmail.com>
Gil Ran <gil@ran4.net>
SEE ALSO
libbash(7), ldbashconfig(8)
Linux Epoch Linux