Re: [xml] elfgcchack.h vs -Bsymbolic

On Wed, Nov 19, 2008 at 09:32:10AM +0100, Daniel Veillard <veillard redhat com> wrote:
On Sat, Nov 15, 2008 at 06:24:48PM +0100, Mike Hommey wrote:

Have you considered using -Bsymbolic linker option instead of the
elfgcchack.h hack ?

  Hum, no ... I don't know -Bsymbolic, but I fail to see how the
linker could solve the problem I tried to solve (bypass costly ELF
lookup when doing internal library calls). Could you explain ?

My understanding of what elfgcchack.h tries to achieve is to remove
indirect calls (through the PLT) for function calls within the library.
-Bsymbolic just does that:

$ cat test.c
int foo(int a)
        return a;

int bar(void)
        return foo(0);
$ gcc -shared -fPIC -o test.c
$ objdump -d  |less
$ objdump -d| grep foo
000003c8 <foo plt>:
000004bc <foo>:
 4dd:   e8 e6 fe ff ff          call   3c8 <foo plt>
$ gcc -Wl,-Bsymbolic -shared -fPIC -o test.c
$ objdump -d| grep foo
0000049c <foo>:
 4bd:   e8 da ff ff ff          call   49c <foo>

-Bsymbolic is supposed to do that for most symbols. -Bsymbolic-functions
is specialized to function calls.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]