aboutsummaryrefslogtreecommitdiff
path: root/tools/shared.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-02-25 12:03:17 -0500
committerAlon Zakai <alonzakai@gmail.com>2013-02-25 12:03:17 -0500
commitff41de227db521cf319bdc08901e5fa1e44c737d (patch)
tree732228d0b663c56818c615328391074d84efdc49 /tools/shared.py
parente24cfb71dfd9bd4ecd3e682971662c91e17db400 (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.py10
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