10-28-2009
GCC: Choose my own linker
Hi,
I do not use the default linker, and instead us another one and pass this argument -Wl,--dynamic-linker=<path to linker> to gcc when compiling. However, what happens if the linker is not under /lib and /lib64 and I am not able to create a symlink to the linker in /lib or /lib64 due to no access to sudo rights. So instead I pass this -Wl,--dynamic-linker=/home/myhome/ld-custom.so
Will the linker be properly found when running the program on say some other computer where the linker is not located where it was in link-time? It will be located under /lib64 on target.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hai
I have installed Linux 7.0 on my system and i have an doubt the
linker
i ran simple hello.c program with gcc compiler
gcc -c hello.c
i want linker to produce the output
so i put on the command line as
ld first.o -lc
but it is not running ver properly
but there is an... (1 Reply)
Discussion started by: rajashekaran
1 Replies
2. Linux
Hi All,
I m new to this group.
I m facing one problem during my linking of CPP code at Linux env.
after compliation i m getting error
"undefined reference to ....."
Please anyone help me to resolve this error.
Regards,
ASR
make: Leaving directory /fwk'
echo g++ -o server ... (1 Reply)
Discussion started by: ASRRAJ
1 Replies
3. Programming
Im trying to compile some code that involves using X-Windows based functions (XDisplayName() and XOpenDisplay() ), however each time I run the compiler, Im getting a problem with the linker.
The linker says that both XDisplayName() and XOpenDisplay() are unresolved text symbols. Is there a... (1 Reply)
Discussion started by: JamesGoh
1 Replies
4. Solaris
AIM- Install Oracle 11g on Solaris using VMWare
Steps
1.Logged on as root
2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc
3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD
4.Copied files from CD to /usr/local/bin/gcc
5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies
5. Solaris
Hi,
I'm confused about the GCC & Linking process could somebody please briefly explain?
I have GCC 3.4.6 installed from SunFreeware. Reading the narrative alongside the package states "It was compiled to use the SUN assembler and loader usually in /usr/ccs/bin if the SUNW developer packages... (1 Reply)
Discussion started by: Celtic_Monkey
1 Replies
6. HP-UX
Hi,
The necessary symbols in a shared library can be exported to the application using linker option --version-script in Linux. The same can be done in Hp-ux using linker option +e. This can also be done by listing all the global symbols with +e in a file with linker option ld -c filename in... (0 Replies)
Discussion started by: roopa_v
0 Replies
7. Programming
Hai,
I have two (Pgm1.c and Pgm2.c) simple programs, which is compiled using gcc. Now we have two exe's (Pgm1 and Pgm2). When i executed the nm Pgm1 and nm Pgm2, in the listed symbols the address of main is same for both programs (08048344 T main) at run time also.
Doubt:
1) What is this... (3 Replies)
Discussion started by: rajamohan
3 Replies
8. Solaris
Hey guys
I have a solaris 10 OS, with a zone configured. In that zone, I am trying to install an Oracle Client. However, when I run the oracle installer, I get the following error:
ld.so.1: java: fatal: libexpat.so.0: open failed: No such file or directory
ld.so.1: java: fatal:... (2 Replies)
Discussion started by: goodvikings
2 Replies
9. Solaris
Hello all,
I am releatively new to Solaris and I am the System administrator for my branch at the FAA. This is the first time I can say I have really messed something up thankfully. My issue came up after installing and uninstalling Oracle Secure Backup which i felt I needed to do a clean... (7 Replies)
Discussion started by: jbirkes
7 Replies
10. Programming
I have a build where I wish to link against and load a specific version of a library and a different version of the same library is installed on the system. I'm using a -L option to point to the version that I wish to link against but gcc still seems to choose the installed version. Is there a way... (4 Replies)
Discussion started by: Richard Johnson
4 Replies
LEARN ABOUT FREEBSD
dllockinit
DLLOCKINIT(3) BSD Library Functions Manual DLLOCKINIT(3)
NAME
dllockinit -- register thread locking methods with the dynamic linker
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <dlfcn.h>
void
dllockinit(void *context, void *(*lock_create)(void *context), void (*rlock_acquire)(void *lock), void (*wlock_acquire)(void *lock),
void (*lock_release)(void *lock), void (*lock_destroy)(void *lock), void (*context_destroy)(void *context));
DESCRIPTION
Due to enhancements in the dynamic linker, this interface is no longer needed. It is deprecated and will be removed from future releases.
In current releases it still exists, but only as a stub which does nothing.
Threads packages can call dllockinit() at initialization time to register locking functions for the dynamic linker to use. This enables the
dynamic linker to prevent multiple threads from entering its critical sections simultaneously.
The context argument specifies an opaque context for creating locks. The dynamic linker will pass it to the lock_create function when creat-
ing the locks it needs. When the dynamic linker is permanently finished using the locking functions (e.g., if the program makes a subsequent
call to dllockinit() to register new locking functions) it will call context_destroy to destroy the context.
The lock_create argument specifies a function for creating a read/write lock. It must return a pointer to the new lock.
The rlock_acquire and wlock_acquire arguments specify functions which lock a lock for reading or writing, respectively. The lock_release
argument specifies a function which unlocks a lock. Each of these functions is passed a pointer to the lock.
The lock_destroy argument specifies a function to destroy a lock. It may be NULL if locks do not need to be destroyed. The context_destroy
argument specifies a function to destroy the context. It may be NULL if the context does not need to be destroyed.
Until dllockinit() is called, the dynamic linker protects its critical sections using a default locking mechanism which works by blocking the
SIGVTALRM, SIGPROF, and SIGALRM signals. This is sufficient for many application level threads packages, which typically use one of these
signals to implement preemption. An application which has registered its own locking methods with dllockinit() can restore the default lock-
ing by calling dllockinit() with all arguments NULL.
SEE ALSO
rtld(1), signal(3)
HISTORY
The dllockinit() function first appeared in FreeBSD 4.0.
BSD
July 5, 2000 BSD