mklibs: handle duplicate symbols properly
SVN-Revision: 18084
This commit is contained in:
		
							
								
								
									
										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: | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau