This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Stupid question: linking with a symbol under a different name

It's even more complex. I actually don't have any info about what that symbol is and what convention it follows (except output of objdump, of course).

The full task is probably like that:

    I'm given main.o (with some unresolved symbols).

    I'm given (with some exported symbols).

    I'm given recipe, like:
- map symbol1 (from main.o) to symbol1 (from [names coincide]; - map symbol2 (from main.o) to symbol2 (from [names coincide]; - map symbol3 (from main.o) to symbol862 (from [names differ]; - map symbol4 (from main.o) to symbol5837 (from [names differ]; - map symbol5 (from main.o) to symbol5 (from [names coincide];
      - ...


[Sorry for duplicate, first reply was accidentally sent to wrong address.]

On 06.10.16 23:00, Sasha Unknown wrote:

1. This is possible only with function. If it's a variable, I can't create "wrapper variable" for it. (E.g. if symbol2 is "int" variable, I of course can create foo.c with "int * const symbol1 = &symbol2", but this won't match symbol1 convention from main.o, which expects symbol1 to be "int", not "int *".)

2. Even with function this gives some overhead (one additional call; AFAIK, wrapper function won't be inlined in this case).


On 06.10.16 15:58, Nick Clifton wrote:
Hi Sasha,

Suppose I have:
- compiled object file "main.o" with unresolved symbol "symbol1";
- build shared library "" with exported symbol "symbol2".

Is there way to somehow link program "main" from "main.o", telling it to use "symbol2" from "" as "symbol1"?
Why not create a foo.c file that defines symbol1 and then passes any reference on to symbol2 ?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]