diff options
| author | Detlef Riekenberg <wine.dev@web.de> | 2010-01-26 22:55:14 +0100 |
|---|---|---|
| committer | Detlef Riekenberg <tcc.dev@web.de> | 2010-01-26 22:55:14 +0100 |
| commit | 2650584ac4fd71ae4ed2b4e3da755b890ba0637c (patch) | |
| tree | 4e9b65389565d23b3899d46883659962957a0bd9 /tccelf.c | |
| parent | 5caf6235cf767682ed1212b3dff44bd59a257cef (diff) | |
| download | tinycc-2650584ac4fd71ae4ed2b4e3da755b890ba0637c.tar.gz tinycc-2650584ac4fd71ae4ed2b4e3da755b890ba0637c.tar.bz2 | |
Recognize -Wl,-Bsymbolic
Without -Bsymbolic, a symbol/function in a *.so can be overridden
by a symbol/function in the main module.
That is the default search order, but not supported by tcc.
With -Bsymbolic, the linker tries to resolve a symbol/function in
the current module first.
The loader in tcc implements this search order.
We do not distinguish -Bsymbolic and -Bsymbolic-function
--
By by ... Detlef
Diffstat (limited to 'tccelf.c')
| -rw-r--r-- | tccelf.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1575,6 +1575,10 @@ static int elf_output_file(TCCState *s1, const char *filename) put_dt(dynamic, DT_SONAME, put_elf_str(dynstr, s1->soname)); put_dt(dynamic, DT_TEXTREL, 0); } + + if (s1->symbolic) + put_dt(dynamic, DT_SYMBOLIC, 0); + /* add necessary space for other entries */ saved_dynamic_data_offset = dynamic->data_offset; dynamic->data_offset += sizeof(ElfW(Dyn)) * EXTRA_RELITEMS; |
