export symbols
Alberich de megres
alberich2k5@gmail.com
Tue Jul 28 19:31:00 GMT 2009
I know it's been a long since i first send my question.. but i'm still stucked.
Versioning symbols does not add them to dynsym table.
Maybe i explained myself in the wrong way:
- I got host program P, with its functions and i want only one to be
seen by modules (function F).
- In the other side i got a program M (module), that is loaded by P
and then it uses the F function from P.
If i compile with -rdynamic option in gcc, it works fine but it
exports all the functions on .dynsym.
Using versioning, and adding this on my code:
__asm__(".symver F, F@");
Only adds F@ to .symtab, but not to .dynsym. So when executing the
program i get the following message:
./main: symbol lookup error: ../mod/log: undefined symbol: F
And i tried to --dynamic-list option.. but with no results.
Any idea or tip??
Thanks!!
On Sat, Apr 25, 2009 at 11:15 PM, Andi Hellmund<mail@andihellmund.com> wrote:
> Ian Lance Taylor wrote:
>> Alberich de megres <alberich2k5@gmail.com> writes:
>>
>>
>>> but i just want to export some of symbol on main.c. Is it some way to
>>> control which symbols i export?
>>>
>>
>> http://sourceware.org/binutils/docs-2.19/ld/VERSION.html
>>
>> Ian
>>
>>
> Beside the versioning of symbols, you could also use use one of the
> following ld commands (check out the man page for more details):
>
> --exclude-symbols symbol,symbol,...
>
> --dynamic-list=dynamic-list-file
>
> If you are using gcc for linking, then prepend -Wl, to the command, like
> -Wl,--exclude-symbols,...
>
> Hope that helps and best regards,
> Andi
>
>
More information about the Gcc-help
mailing list