03-22-2008
LD_PRELOAD on x86_64 gives error from ld.so
I have implemented an interposer for open() and open64() system call.
This interposer is implemented in interposer.c and I have compiled it in a shared library (libinterposer.so) using the following commands:
gcc -g -fPIC -s -o interposer.o -c interposer.c
gcc -s -g -shared -nostartfiles -o libinterposer.so interposer.o -ldl
This interposer is working on i686 architecture. When I say working, it means, I can set the LD_PRELOAD environment variable to 'libinterposer.so' and intercept all 'open' system calls.
However when I repeat the exact same steps on a x86_64, I get errors from ld.so like so:
manmukhe@sjc-lds-133:[lbt]echo $LD_PRELOAD
libinterposer.x86_64.so
manmukhe@sjc-lds-133:[lbt]touch x.c
ERROR: ld.so: object 'libinterposer.x86_64.so' from LD_PRELOAD cannot be preloaded: ignored.
The file types for libinterposer.so and touch are as follows:
manmukhe@sjc-lds-133:[lbt]file libinterposer.x86_64.so
libinterposer.x86_64.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped
manmukhe@sjc-lds-133:[lbt]file /bin/touch
/bin/touch: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.0, dynamically linked (uses shared libs), stripped
Here are my questions:
1. What am I doing wrong? Why am I getting the ld.so error?
2. Is there any way to suppress the ld.so errors?
8 More Discussions You Might Find Interesting
1. Linux
hello everybody i want to install some package on AIX 5.3
the name of rpm is something like libaio-0.3.106-4.2.x86_64.rpm is it a good rpm for AIX 5.3
my question is is AIX and x86_64 mean the same thing !
thanks (2 Replies)
Discussion started by: eternalflame
2 Replies
2. HP-UX
Hi ,
Is LD_PRELOAD supported on HP UX?
I am having issues when i export the below
export LD_PRELOAD=/usr/local/vertex/commtax_1.0.16/64bit/lib/libctq.so
ldd /usr/local/vertex/commtax_1.0.16/64bit/lib/libctq.so
/usr/lib/hpux64/dld.so: Unable to find library 'libodbc.so'.
Killed
Can... (2 Replies)
Discussion started by: psreddy1234
2 Replies
3. UNIX for Advanced & Expert Users
Hi,
What does LD_PRELOAD variable signify on HP-UX?
thanks in advance,
-Ashish (4 Replies)
Discussion started by: shriashishpatil
4 Replies
4. UNIX for Advanced & Expert Users
well i know what LD_PRELOAD is. Now suppose i have hooked a function XDrawString in the my library (Mylib.so.1) and then used the command
export LD_PRELOAD=/path/mylib.so.1
Now suppose i open Xeditor by typing 'xeditor' in the console, my library is geting used, so i knw that this applilcation is... (3 Replies)
Discussion started by: manchester
3 Replies
5. Shell Programming and Scripting
Hi, experts,
I am trying to intall Perl/Tk module (Tk-804.028 ) into Perl5.6.1, however, the directory structure seems to be different from i386 than x86_64 and the installation keeps failing. Is this a known/common issue? Or does anyone has any workaround for this?
~* Dniz *~ (0 Replies)
Discussion started by: dniz
0 Replies
6. UNIX for Advanced & Expert Users
Dear Fellows;
As being new to linux, i have tried to synamically load a custom library which overrides some system calls like conncet(), socket() etc.... for custom purposes.
It works well, if declaring the environment path LD_PRELOAD and execution of the application to be override... (0 Replies)
Discussion started by: mzeeshan
0 Replies
7. Solaris
I have always seen a Solaris 10 32 bit version..Is there an x86_64?? (2 Replies)
Discussion started by: kirtikjr
2 Replies
8. Programming
I had it working but i screwed up something and now i get
me@mymachine:~$ LD_PRELOAD=/home/me/libf1.o ldd FCaller
ERROR: ld.so: object '/home/me/libf1.o' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/home/me/libf1.o' from LD_PRELOAD cannot be preloaded: ignored.
ERROR:... (3 Replies)
Discussion started by: NetworkLearning
3 Replies
LEARN ABOUT CENTOS
grub2-file
GRUB-FILE(1) General Commands Manual GRUB-FILE(1)
NAME
grub-file -- Check if FILE is of specified type.
SYNOPSIS
grub-file (--is-i386-xen-pae-domu | --is-x86_64-xen-domu |
--is-x86-xen-dom0 | --is-x86-multiboot |
--is-x86-multiboot2 | --is-arm-linux | --is-arm64-linux |
--is-ia64-linux | --is-mips-linux | --is-mipsel-linux |
--is-sparc64-linux | --is-powerpc-linux | --is-x86-linux |
--is-x86-linux32 | --is-x86-kfreebsd | --is-i386-kfreebsd |
--is-x86_64-kfreebsd | --is-x86-knetbsd |
--is-i386-knetbsd | --is-x86_64-knetbsd | --is-i386-efi |
--is-x86_64-efi | --is-ia64-efi | --is-arm64-efi |
--is-arm-efi | --is-hibernated-hiberfil | --is-x86_64-xnu |
--is-i386-xnu | --is-xnu-hibr | --is-x86-bios-bootsector)
FILE
DESCRIPTION
grub-file is used to check if FILE is of a specified type.
OPTIONS
--is-i386-xen-pae-domu
Check if FILE can be booted as i386 PAE Xen unprivileged guest kernel
--is-x86_64-xen-domu
Check if FILE can be booted as x86_64 Xen unprivileged guest kernel
--is-x86-xen-dom0
Check if FILE can be used as Xen x86 privileged guest kernel
--is-x86-multiboot
Check if FILE can be used as x86 multiboot kernel
--is-x86-multiboot2
Check if FILE can be used as x86 multiboot2 kernel
--is-arm-linux
Check if FILE is ARM Linux
--is-arm64-linux
Check if FILE is ARM64 Linux
--is-ia64-linux
Check if FILE is IA64 Linux
--is-mips-linux
Check if FILE is MIPS Linux
--is-mipsel-linux
Check if FILE is MIPSEL Linux
--is-sparc64-linux
Check if FILE is SPARC64 Linux
--is-powerpc-linux
Check if FILE is POWERPC Linux
--is-x86-linux
Check if FILE is x86 Linux
--is-x86-linux32
Check if FILE is x86 Linux supporting 32-bit protocol
--is-x86-kfreebsd
Check if FILE is x86 kFreeBSD
--is-i386-kfreebsd
Check if FILE is i386 kFreeBSD
--is-x86_64-kfreebsd
Check if FILE is x86_64 kFreeBSD
--is-x86-knetbsd
Check if FILE is x86 kNetBSD
--is-i386-knetbsd
Check if FILE is i386 kNetBSD
--is-x86_64-knetbsd
Check if FILE is x86_64 kNetBSD
--is-i386-efi
Check if FILE is i386 EFI file
--is-x86_64-efi
Check if FILE is x86_64 EFI file
--is-ia64-efi
Check if FILE is IA64 EFI file
--is-arm64-efi
Check if FILE is ARM64 EFI file
--is-arm-efi
Check if FILE is ARM EFI file
--is-hibernated-hiberfil
Check if FILE is hiberfil.sys in hibernated state
--is-x86_64-xnu
Check if FILE is x86_64 XNU (Mac OS X kernel)
--is-i386-xnu
Check if FILE is i386 XNU (Mac OS X kernel)
--is-xnu-hibr
Check if FILE is XNU (Mac OS X kernel) hibernated image
--is-x86-bios-bootsector
Check if FILE is BIOS bootsector
SEE ALSO
info grub
Web Feb 26 2014 GRUB-FILE(1)