diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2019-01-11 23:30:24 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2019-01-11 23:30:24 +0000 |
commit | 276dc3b5456dd5f685e84480c5213621d58b9224 (patch) | |
tree | c0972064ab42afaa8558af60c8133f364fcde6cc | |
parent | ba6006c176b17ebabba74b9a0928a5f44be097d4 (diff) | |
download | compiler-rt-276dc3b5456dd5f685e84480c5213621d58b9224.tar.gz |
sanitizer_common: Change gen_dynamic_list.py to take a -o argument instead of writing to stdout.
This makes the script a little more gn friendly; gn does not support
redirecting the output of a script.
Differential Revision: https://reviews.llvm.org/D56579
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@350980 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | cmake/Modules/SanitizerUtils.cmake | 4 | ||||
-rwxr-xr-x | lib/sanitizer_common/scripts/gen_dynamic_list.py | 23 |
2 files changed, 15 insertions, 12 deletions
diff --git a/cmake/Modules/SanitizerUtils.cmake b/cmake/Modules/SanitizerUtils.cmake index 8fe4baae4..64d3ed92c 100644 --- a/cmake/Modules/SanitizerUtils.cmake +++ b/cmake/Modules/SanitizerUtils.cmake @@ -30,7 +30,7 @@ macro(add_sanitizer_rt_symbols name) add_custom_command(OUTPUT ${stamp} COMMAND ${PYTHON_EXECUTABLE} ${SANITIZER_GEN_DYNAMIC_LIST} ${extra_args} $<TARGET_FILE:${target_name}> - > $<TARGET_FILE:${target_name}>.syms + -o $<TARGET_FILE:${target_name}>.syms COMMAND ${CMAKE_COMMAND} -E touch ${stamp} DEPENDS ${target_name} ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -80,7 +80,7 @@ macro(add_sanitizer_rt_version_list name) add_custom_command(OUTPUT ${vers} COMMAND ${PYTHON_EXECUTABLE} ${SANITIZER_GEN_DYNAMIC_LIST} --version-list ${args} - > ${vers} + -o ${vers} DEPENDS ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA} ${ARG_LIBS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating version list for ${name}" diff --git a/lib/sanitizer_common/scripts/gen_dynamic_list.py b/lib/sanitizer_common/scripts/gen_dynamic_list.py index 25632ed77..4a9c7af95 100755 --- a/lib/sanitizer_common/scripts/gen_dynamic_list.py +++ b/lib/sanitizer_common/scripts/gen_dynamic_list.py @@ -14,6 +14,7 @@ # gen_dynamic_list.py libclang_rt.*san*.a [ files ... ] # #===------------------------------------------------------------------------===# +from __future__ import print_function import argparse import os import re @@ -84,6 +85,7 @@ def main(argv): parser.add_argument('--version-list', action='store_true') parser.add_argument('--extra', default=[], action='append') parser.add_argument('libraries', default=[], nargs='+') + parser.add_argument('-o', '--output', required=True) args = parser.parse_args() result = [] @@ -117,16 +119,17 @@ def main(argv): for line in f: result.append(line.rstrip()) # Print the resulting list in the format recognized by ld. - print('{') - if args.version_list: - print('global:') - result.sort() - for f in result: - print(u' %s;' % f) - if args.version_list: - print('local:') - print(' *;') - print('};') + with open(args.output, 'w') as f: + print('{', file=f) + if args.version_list: + print('global:', file=f) + result.sort() + for sym in result: + print(u' %s;' % sym, file=f) + if args.version_list: + print('local:', file=f) + print(' *;', file=f) + print('};', file=f) if __name__ == '__main__': main(sys.argv) |