On 04/04/11 10:15, Valery Reznic wrote:
Hello. I am trying to make relocatable linking on x86-64 box for objects in
format i386
Naive
ld -r file1.o file2.o -o output.o
produce
ld: Relocatable linking with relocations from format elf32-i386 (file1.o) to
format elf64-x86-64 (output.o) is not supported
But even when I add --oformat situation not improved:
ld --output-format elf32-i386 -r file1.o file2.o -o output.o
ld: Relocatable linking with relocations from format elf32-i386 (file1.o) to
format elf32-i386 (output.o) is not supported
So linker correctly recognize what input and output format should be,
but for some reason don't want do it.
Do you have any ideas if it can be done at all and how?
Can't. You're trying to link objects compiled for different machine
codes. Tis not the linking stage that is wrong.
While it is possible to run both machine codes on your computer, they
must run in different processes (the kernel actually treats x86 and
amd64 codes differently when it sets up the registers for the context
switch), and thus you cannot link them into a single executable, cannot
dynamically load one from the other, and cannot have two threads with
different types. Your only option for interaction is RPC of some sort
(or recompile one of them).
Shachar
--
Shachar Shemesh
Lingnu Open Source Consulting Ltd.
http://www.lingnu.com
_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il