diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-02-25 12:03:17 -0500 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-02-25 12:03:17 -0500 |
commit | ff41de227db521cf319bdc08901e5fa1e44c737d (patch) | |
tree | 732228d0b663c56818c615328391074d84efdc49 /tools/shared.py | |
parent | e24cfb71dfd9bd4ecd3e682971662c91e17db400 (diff) |
only do llvm-nm in linking if there is at least one ar file
Diffstat (limited to 'tools/shared.py')
-rw-r--r-- | tools/shared.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/shared.py b/tools/shared.py index 3e6d487b..d40fe119 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -749,12 +749,16 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e resolved_symbols = set() temp_dirs = [] files = map(os.path.abspath, files) + has_ar = False + for f in files: + has_ar = has_ar or Building.is_ar(f) for f in files: if not Building.is_ar(f): if Building.is_bitcode(f): - new_symbols = Building.llvm_nm(f) - resolved_symbols = resolved_symbols.union(new_symbols.defs) - unresolved_symbols = unresolved_symbols.union(new_symbols.undefs.difference(resolved_symbols)).difference(new_symbols.defs) + if has_ar: + new_symbols = Building.llvm_nm(f) + resolved_symbols = resolved_symbols.union(new_symbols.defs) + unresolved_symbols = unresolved_symbols.union(new_symbols.undefs.difference(resolved_symbols)).difference(new_symbols.defs) actual_files.append(f) else: # Extract object files from ar archives, and link according to gnu ld semantics |