[libc++] Support -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on in CI

This fixes -isystem/-L/-Wl,-rpath paths when -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on
is used (https://reviews.llvm.org/D107799#2969650).

* `-isystem path/to/build/generic-cxx17/include/c++/v1`. `build/generic-cxx17/include/x86_64-unknown-linux-gnu/c++/v1 (__config_site)` is missing.
* `-L path/to/build/generic-cxx17/lib`. Should be `build/generic-cxx17/lib/x86_64-unknown-linux-gnu` instead

Reviewed By: ldionne, phosek, #libc

Differential Revision: https://reviews.llvm.org/D108836
This commit is contained in:
Fangrui Song 2021-08-30 12:59:07 -07:00
parent 070090cfa5
commit daf0dfb786
2 changed files with 14 additions and 6 deletions

View file

@ -7,6 +7,9 @@ INSTALL_ROOT = "@CMAKE_BINARY_DIR@"
COMPILER = "@CMAKE_CXX_COMPILER@"
EXEC_ROOT = "@LIBCXX_BINARY_DIR@"
CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@"
INCLUDE_DIR = "@LIBCXX_INSTALL_INCLUDE_DIR@"
INCLUDE_TARGET_DIR = "@LIBCXX_INSTALL_INCLUDE_TARGET_DIR@"
LIBRARY_DIR = "@LIBCXX_INSTALL_LIBRARY_DIR@"
import os
import pipes
@ -32,13 +35,14 @@ config.substitutions.append(('%{flags}',
'-isysroot {}'.format(CMAKE_OSX_SYSROOT) if CMAKE_OSX_SYSROOT else ''
))
config.substitutions.append(('%{compile_flags}',
'-nostdinc++ -isystem {} -I {}'.format(
os.path.join(INSTALL_ROOT, 'include', 'c++', 'v1'),
'-nostdinc++ -isystem {} -isystem {} -I {}'.format(
os.path.join(INSTALL_ROOT, INCLUDE_DIR),
os.path.join(INSTALL_ROOT, INCLUDE_TARGET_DIR),
os.path.join(LIBCXX_ROOT, 'test', 'support'))
))
config.substitutions.append(('%{link_flags}',
'-nostdlib++ -L {0} -lc++ -Wl,-rpath,{0} -pthread'.format(
os.path.join(INSTALL_ROOT, 'lib'))
os.path.join(INSTALL_ROOT, LIBRARY_DIR))
))
config.substitutions.append(('%{exec}',
'{} {} --execdir %T -- '.format(

View file

@ -7,6 +7,9 @@ INSTALL_ROOT = "@CMAKE_BINARY_DIR@"
COMPILER = "@CMAKE_CXX_COMPILER@"
EXEC_ROOT = "@LIBCXX_BINARY_DIR@"
CMAKE_OSX_SYSROOT = "@CMAKE_OSX_SYSROOT@"
INCLUDE_DIR = "@LIBCXX_INSTALL_INCLUDE_DIR@"
INCLUDE_TARGET_DIR = "@LIBCXX_INSTALL_INCLUDE_TARGET_DIR@"
LIBRARY_DIR = "@LIBCXX_INSTALL_LIBRARY_DIR@"
import os
import pipes
@ -32,13 +35,14 @@ config.substitutions.append(('%{flags}',
'-isysroot {}'.format(CMAKE_OSX_SYSROOT) if CMAKE_OSX_SYSROOT else ''
))
config.substitutions.append(('%{compile_flags}',
'-nostdinc++ -isystem {} -I {}'.format(
os.path.join(INSTALL_ROOT, 'include', 'c++', 'v1'),
'-nostdinc++ -isystem {} -isystem {} -I {}'.format(
os.path.join(INSTALL_ROOT, INCLUDE_DIR),
os.path.join(INSTALL_ROOT, INCLUDE_TARGET_DIR),
os.path.join(LIBCXX_ROOT, 'test', 'support'))
))
config.substitutions.append(('%{link_flags}',
'-nostdlib++ -L {} -lc++ -lc++abi -pthread'.format(
os.path.join(INSTALL_ROOT, 'lib'))
os.path.join(INSTALL_ROOT, LIBRARY_DIR))
))
config.substitutions.append(('%{exec}',
'{} {} --execdir %T -- '.format(