summaryrefslogtreecommitdiffstats
path: root/libcxx/utils/gen_link_script.py
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-10-08 21:10:20 +0000
committerLouis Dionne <ldionne@apple.com>2019-10-08 21:10:20 +0000
commit1ea8bb39b9c4ec71bb53196a2cdfa001328e1cac (patch)
tree95190bdeb5a1a0bf2961dffe40f066f22ca74241 /libcxx/utils/gen_link_script.py
parentf3ae951c09ef7ce98c62bd0941fb33cbb32f528b (diff)
downloadbcm5719-llvm-1ea8bb39b9c4ec71bb53196a2cdfa001328e1cac.tar.gz
bcm5719-llvm-1ea8bb39b9c4ec71bb53196a2cdfa001328e1cac.zip
[libc++] Move the linker script generation step to CMake
Summary: This allows the linker script generation to query CMake properties (specifically the dependencies of libc++.so) instead of having to carry these dependencies around manually in global variables. Notice the removal of the LIBCXX_INTERFACE_LIBRARIES global variable. Reviewers: phosek, EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68343 llvm-svn: 374116
Diffstat (limited to 'libcxx/utils/gen_link_script.py')
-rwxr-xr-xlibcxx/utils/gen_link_script.py58
1 files changed, 0 insertions, 58 deletions
diff --git a/libcxx/utils/gen_link_script.py b/libcxx/utils/gen_link_script.py
deleted file mode 100755
index eaa752d5ae2..00000000000
--- a/libcxx/utils/gen_link_script.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-#===----------------------------------------------------------------------===##
-#
-# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-#===----------------------------------------------------------------------===##
-
-"""
-Generate a linker script that links libc++ to the proper ABI library.
-An example script for c++abi would look like "INPUT(libc++.so.1 -lc++abi)".
-"""
-
-import argparse
-import os
-import sys
-
-
-def main():
- parser = argparse.ArgumentParser(description=__doc__)
- parser.add_argument("--dryrun", help="Don't write any output",
- action="store_true", default=False)
- parser.add_argument("--rename", action="store_true", default=False,
- help="Rename the output as input so we can replace it")
- parser.add_argument("--input", help="Path to libc++ library", required=True)
- parser.add_argument("--output", help="Path to libc++ linker script",
- required=True)
- parser.add_argument("libraries", nargs="+",
- help="List of libraries libc++ depends on")
- args = parser.parse_args()
-
- # Use the relative path for the libc++ library.
- libcxx = os.path.relpath(args.input, os.path.dirname(args.output))
-
- # Prepare the list of public libraries to link.
- public_libs = ['-l%s' % l for l in args.libraries]
-
- # Generate the linker script contents.
- contents = "INPUT(%s)" % ' '.join([libcxx] + public_libs)
-
- if args.dryrun:
- print("GENERATING SCRIPT: '%s' as file %s" % (contents, args.output))
- return 0
-
- # Remove the existing libc++ symlink if it exists.
- if os.path.islink(args.output):
- os.unlink(args.output)
-
- # Replace it with the linker script.
- with open(args.output, 'w') as f:
- f.write(contents + "\n")
-
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
OpenPOWER on IntegriCloud