[clang][AIX] set OpenMP include path (#88545)
Add include directory for omp.h at `/opt/IBM/openxlCSDK/include/openmp`.
This commit is contained in:
parent
c515c78024
commit
8f07a67f97
@ -362,6 +362,30 @@ AIX::GetHeaderSysroot(const llvm::opt::ArgList &DriverArgs) const {
|
||||
return "/";
|
||||
}
|
||||
|
||||
void AIX::AddOpenMPIncludeArgs(const ArgList &DriverArgs,
|
||||
ArgStringList &CC1Args) const {
|
||||
// Add OpenMP include paths if -fopenmp is specified.
|
||||
if (DriverArgs.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ,
|
||||
options::OPT_fno_openmp, false)) {
|
||||
SmallString<128> PathOpenMP;
|
||||
switch (getDriver().getOpenMPRuntime(DriverArgs)) {
|
||||
case Driver::OMPRT_OMP:
|
||||
PathOpenMP = GetHeaderSysroot(DriverArgs);
|
||||
llvm::sys::path::append(PathOpenMP, "opt/IBM/openxlCSDK", "include",
|
||||
"openmp");
|
||||
addSystemInclude(DriverArgs, CC1Args, PathOpenMP.str());
|
||||
break;
|
||||
case Driver::OMPRT_IOMP5:
|
||||
LLVM_FALLTHROUGH;
|
||||
case Driver::OMPRT_GOMP:
|
||||
LLVM_FALLTHROUGH;
|
||||
case Driver::OMPRT_Unknown:
|
||||
// Unknown / unsupported include paths.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AIX::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
||||
ArgStringList &CC1Args) const {
|
||||
// Return if -nostdinc is specified as a driver option.
|
||||
@ -380,6 +404,11 @@ void AIX::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
||||
addSystemInclude(DriverArgs, CC1Args, path::parent_path(P.str()));
|
||||
}
|
||||
|
||||
// Add the include directory containing omp.h. This needs to be before
|
||||
// adding the system include directory because other compilers put their
|
||||
// omp.h in /usr/include.
|
||||
AddOpenMPIncludeArgs(DriverArgs, CC1Args);
|
||||
|
||||
// Return if -nostdlibinc is specified as a driver option.
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
return;
|
||||
|
||||
@ -105,6 +105,8 @@ protected:
|
||||
private:
|
||||
llvm::StringRef GetHeaderSysroot(const llvm::opt::ArgList &DriverArgs) const;
|
||||
bool ParseInlineAsmUsingAsmParser;
|
||||
void AddOpenMPIncludeArgs(const llvm::opt::ArgList &DriverArgs,
|
||||
llvm::opt::ArgStringList &CC1Args) const;
|
||||
};
|
||||
|
||||
} // end namespace toolchains
|
||||
|
||||
@ -5,24 +5,28 @@
|
||||
// RUN: --target=powerpc-ibm-aix \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefixes=CHECK-INTERNAL-INCLUDE,CHECK-INTERNAL-INCLUDE-CXX %s
|
||||
|
||||
// RUN: %clangxx -### %s 2>&1 \
|
||||
// RUN: --target=powerpc64-ibm-aix \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefixes=CHECK-INTERNAL-INCLUDE,CHECK-INTERNAL-INCLUDE-CXX %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
// RUN: --target=powerpc-ibm-aix \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-INTERNAL-INCLUDE %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
// RUN: --target=powerpc64-ibm-aix \
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-INTERNAL-INCLUDE %s
|
||||
|
||||
// CHECK-INTERNAL-INCLUDE: "-cc1"
|
||||
@ -31,6 +35,7 @@
|
||||
// CHECK-INTERNAL-INCLUDE-CXX: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}c++{{(/|\\\\)}}v1"
|
||||
// CHECK-INTERNAL-INCLUDE-CXX: "-D__LIBC_NO_CPP_MATH_OVERLOADS__"
|
||||
// CHECK-INTERNAL-INCLUDE: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
|
||||
// CHECK-INTERNAL-INCLUDE: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}openmp"
|
||||
// CHECK-INTERNAL-INCLUDE: "-internal-isystem" "[[SYSROOT]]/usr/include"
|
||||
|
||||
// Check powerpc-ibm-aix, 32-bit/64-bit. -nostdinc option.
|
||||
@ -73,6 +78,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdlibinc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDLIBINC-INCLUDE %s
|
||||
|
||||
// RUN: %clangxx -### %s 2>&1 \
|
||||
@ -80,6 +86,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdlibinc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDLIBINC-INCLUDE %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
@ -87,6 +94,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdlibinc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDLIBINC-INCLUDE %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
@ -94,15 +102,17 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdlibinc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDLIBINC-INCLUDE %s
|
||||
|
||||
// CHECK-NOSTDLIBINC-INCLUDE: "-cc1"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE: "-isysroot" "[[SYSROOT:[^"]+]]"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}openmp"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE-NOT: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}c++{{(/|\\\\)}}v1"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE-NOT: "-D__LIBC_NO_CPP_MATH_OVERLOADS__"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include"
|
||||
// CHECK-NOSTDLIBINC-INCLUDE-NOT: "-internal-isystem" "[[SYSROOT]]/usr/include"
|
||||
|
||||
// Check powerpc-ibm-aix, 32-bit/64-bit. -nobuiltininc option.
|
||||
// RUN: %clangxx -### %s 2>&1 \
|
||||
@ -110,6 +120,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nobuiltininc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefixes=CHECK-NOBUILTININC-INCLUDE,CHECK-NOBUILTININC-INCLUDE-CXX %s
|
||||
|
||||
// RUN: %clangxx -### %s 2>&1 \
|
||||
@ -117,6 +128,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nobuiltininc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefixes=CHECK-NOBUILTININC-INCLUDE,CHECK-NOBUILTININC-INCLUDE-CXX %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
@ -124,6 +136,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nobuiltininc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOBUILTININC-INCLUDE %s
|
||||
|
||||
// RUN: %clang -### -xc %s 2>&1 \
|
||||
@ -131,6 +144,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nobuiltininc \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOBUILTININC-INCLUDE %s
|
||||
|
||||
// CHECK-NOBUILTININC-INCLUDE: "-cc1"
|
||||
@ -139,6 +153,7 @@
|
||||
// CHECK-NOBUILTININC-INCLUDE-NOT: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
|
||||
// CHECK-NOBUILTININC-INCLUDE-CXX: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}c++{{(/|\\\\)}}v1"
|
||||
// CHECK-NOBUILTININC-INCLUDE-CXX: "-D__LIBC_NO_CPP_MATH_OVERLOADS__"
|
||||
// CHECK-NOBUILTININC-INCLUDE: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}openmp"
|
||||
// CHECK-NOBUILTININC-INCLUDE: "-internal-isystem" "[[SYSROOT]]/usr/include"
|
||||
|
||||
// Check powerpc-ibm-aix, 32-bit/64-bit. -nostdinc++ option.
|
||||
@ -147,6 +162,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdinc++ \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDINCXX-INCLUDE %s
|
||||
|
||||
// RUN: %clangxx -### %s 2>&1 \
|
||||
@ -154,6 +170,7 @@
|
||||
// RUN: -resource-dir=%S/Inputs/resource_dir \
|
||||
// RUN: --sysroot=%S/Inputs/basic_aix_tree \
|
||||
// RUN: -nostdinc++ \
|
||||
// RUN: -fopenmp \
|
||||
// RUN: | FileCheck -check-prefix=CHECK-NOSTDINCXX-INCLUDE %s
|
||||
|
||||
// CHECK-NOSTDINCXX-INCLUDE: "-cc1"
|
||||
@ -162,6 +179,7 @@
|
||||
// CHECK-NOSTDINCXX-INCLUDE: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
|
||||
// CHECK-NOSTDINCXX-INCLUDE-NOT: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}c++{{(/|\\\\)}}v1"
|
||||
// CHECK-NOSTDINCXX-INCLUDE-NOT: "-D__LIBC_NO_CPP_MATH_OVERLOADS__"
|
||||
// CHECK-NOSTDINCXX-INCLUDE: "-internal-isystem" "[[SYSROOT]]{{(/|\\\\)}}opt{{(/|\\\\)}}IBM{{(/|\\\\)}}openxlCSDK{{(/|\\\\)}}include{{(/|\\\\)}}openmp"
|
||||
// CHECK-NOSTDINCXX-INCLUDE: "-internal-isystem" "[[SYSROOT]]/usr/include"
|
||||
|
||||
// Check powerpc-ibm-aix, 32-bit. -stdlib=libstdc++ invokes fatal error.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user