mklibs: handle duplicate symbols properly
SVN-Revision: 18084
This commit is contained in:
parent
eeadbde8ea
commit
57d29edb07
1 changed files with 32 additions and 0 deletions
32
tools/mklibs/patches/006-duplicate_syms.patch
Normal file
32
tools/mklibs/patches/006-duplicate_syms.patch
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
--- a/src/mklibs.py
|
||||||
|
+++ b/src/mklibs.py
|
||||||
|
@@ -507,7 +507,6 @@ while 1:
|
||||||
|
|
||||||
|
library_symbols = {}
|
||||||
|
library_symbols_used = {}
|
||||||
|
- symbol_provider = {}
|
||||||
|
|
||||||
|
# WORKAROUND: Always add libgcc on old-abi arm
|
||||||
|
header = elf_header(find_lib(libraries.copy().pop()))
|
||||||
|
@@ -525,17 +524,13 @@ while 1:
|
||||||
|
library_symbols_used[library] = set()
|
||||||
|
for symbol in symbols:
|
||||||
|
for name in symbol.base_names():
|
||||||
|
- if name in symbol_provider:
|
||||||
|
- debug(DEBUG_SPAM, "duplicate symbol %s in %s and %s" % (symbol, symbol_provider[name], library))
|
||||||
|
- else:
|
||||||
|
- library_symbols[library][name] = symbol
|
||||||
|
- symbol_provider[name] = library
|
||||||
|
+ library_symbols[library][name] = symbol
|
||||||
|
|
||||||
|
# which symbols are actually used from each lib
|
||||||
|
for name in needed_symbols:
|
||||||
|
- if name in symbol_provider:
|
||||||
|
- lib = symbol_provider[name]
|
||||||
|
- library_symbols_used[lib].add(library_symbols[lib][name])
|
||||||
|
+ for lib in libraries:
|
||||||
|
+ if name in library_symbols[lib]:
|
||||||
|
+ library_symbols_used[lib].add(library_symbols[lib][name])
|
||||||
|
|
||||||
|
# reduce libraries
|
||||||
|
for library in libraries:
|
Loading…
Reference in a new issue