How to link the object files(.o) into one BIG object file with "Symbols partly located" ?

Feb 23, 2006 2 Replies

Hi,



"Symbols partly located" is means:


Link some .o files with option "-Ttext 0xXXXXXX" of "ld" (fixed the offset of .text segment), So I want the "ld" will locate the .text with symbols those are already exist in .o files . keep the undefined symbols for an other follow link.


But ,"ld" will fail to output *BIG* .o file. Because there are undefined symbols.


Please give your advice, thank you. (to the exclusion of dynmaic library solution ,please)


ELF symbol table:


CONTENTS, READONLY SYMBOL TABLE: ...



00007414 l F .text 0000002c _ZN6CToolsD0Ev
00000604 l O .rodata 00000008 _ZTI4CMgr
0000728c l F .text 0000006c _ZN4CMgrD1Ev
000072f8 l F .text 00000074 _ZN4CMgrD0Ev

Doesn't "ld -r -o big.o -Ttext 0xXXXXX foo.o bar.o ..." do exactly what you want?

Cheers,

In order to understand recursion you must first understand recursion. Remove /-nsp/ for email.

Paul Pluzhnikov =E5=86=99=E9=81=93=EF=BC=9A

Hi Paul,

Thank for your advice. But ld with "-r" will output object with all symbols NOT located(the output just like a Normal .o file, not doing any location).

I want ld will output a "partial" located object: Those symbols already exisit in foo.o bar.o ... need be update into all .text segment. And, keep the undefined(*UND*) symbols for ld again.

Cheers,

Tangkun

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required