mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	mklibs: handle duplicate symbols properly
SVN-Revision: 18084
This commit is contained in:
		
							parent
							
								
									eeadbde8ea
								
							
						
					
					
						commit
						57d29edb07
					
				
							
								
								
									
										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 New Issue
	
	Block a user