[libcxx] Use relative path for libc++ library when generating script
authorPetr Hosek <phosek@chromium.org>
Tue, 23 Apr 2019 22:55:28 +0000 (22:55 +0000)
committerPetr Hosek <phosek@chromium.org>
Tue, 23 Apr 2019 22:55:28 +0000 (22:55 +0000)
This addresses the issue introduced in D60309 which leads to linker
scripts being generated with absolute paths.

Differential Revision: https://reviews.llvm.org/D61039

llvm-svn: 359045

libcxx/utils/gen_link_script.py

index 36c922c..238c574 100755 (executable)
@@ -29,11 +29,14 @@ def main():
                         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([args.input] + public_libs)
+    contents = "INPUT(%s)" % ' '.join([libcxx] + public_libs)
     print("GENERATING SCRIPT: '%s' as file %s" % (contents, args.output))
 
     if args.dryrun: