005-duplicate_syms.patch 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. --- a/src/mklibs
  2. +++ b/src/mklibs
  3. @@ -509,10 +509,7 @@ while 1:
  4. num_unresolved = 0
  5. unresolved = set()
  6. for name in needed_symbols:
  7. - if not name in present_symbols:
  8. - debug(DEBUG_SPAM, "Still need: %s" % name)
  9. - unresolved.add(name)
  10. - num_unresolved = num_unresolved + 1
  11. + library_symbols[library][name] = symbol
  12. debug (DEBUG_NORMAL, `len(needed_symbols)`, "symbols,",
  13. `num_unresolved`, "unresolved")
  14. @@ -531,7 +528,6 @@ while 1:
  15. library_symbols = {}
  16. library_symbols_used = {}
  17. - symbol_provider = {}
  18. # WORKAROUND: Always add libgcc on old-abi arm
  19. header = elf_header(find_lib(libraries.copy().pop()))
  20. @@ -557,12 +553,10 @@ while 1:
  21. # which symbols are actually used from each lib
  22. for name in needed_symbols:
  23. - if not name in symbol_provider:
  24. - if not needed_symbols[name].weak:
  25. - print "WARNING: Unresolvable symbol %s" % name
  26. - else:
  27. - lib = symbol_provider[name]
  28. - library_symbols_used[lib].add(library_symbols[lib][name])
  29. + for lib in libraries:
  30. + if name in library_symbols[lib]:
  31. + library_symbols_used[lib].add(library_symbols[lib][name])
  32. +
  33. # reduce libraries
  34. for library in libraries: