Skip to content

[Libomp] Place generated OpenMP headers into build resource directory #88007

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 8, 2024

Conversation

jhuber6
Copy link
Contributor

@jhuber6 jhuber6 commented Apr 8, 2024

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to liboffload. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h)
set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h)
set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${LIBOMP_HEADERS_INTDIR} PARENT_SCOPE)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI this is only required if the build is standalone now. The regular build will always have these included via the resource dir now.

@mjklemm
Copy link
Contributor

mjklemm commented Apr 8, 2024

If this PR can wait a bit, I can have a look at the Fortran part for this.

@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 8, 2024

If this PR can wait a bit, I can have a look at the Fortran part for this.

Specifically, clang has lib/clang/19/include for its resource directory. This is where omp.h gets installed to and it's always included. I'm assuming flang has something similar, but here we only have the logic to get the clang resource directory, so I'm unsure about it.

In any case, this patch should solve the issues w.r.t. the offload/ move for ompt so it shouldn't be a blocking issue, since it retains the old behavior I think.

@mjklemm
Copy link
Contributor

mjklemm commented Apr 8, 2024

Ok. Then let's move the Fortran part to a different PR.

@shiltian
Copy link
Contributor

shiltian commented Apr 8, 2024

IIRC there is a case where omp.h as well as other headers are installed into clang's directory.

if(${OPENMP_STANDALONE_BUILD})
set(LIBOMP_HEADERS_INTDIR ${CMAKE_CURRENT_BINARY_DIR})
else()
set(LIBOMP_HEADERS_INTDIR ${LLVM_BINARY_DIR}/${LIBOMP_HEADERS_INSTALL_PATH})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is LLVM_BINARY_DIR still valid if user only does -DLLVM_ENABLE_PROJECTS="openmp"? In this case LLVM will not be probably built.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LLVM is always built, I don't think it's possible to turn it off. Everything goes through cmake ../llvm so it will be set when that CMake runs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it INSTDIR or INTDIR? What does INTDIR mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done to match LLVM_RUNTIME_OUTPUT_INTDIR conceptually, It's just intermediate directory. I.e. not where it's being installed, but where it's stored in the build.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh "intermediate"

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to `liboffload`. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.
@llvmbot llvmbot added the clang Clang issues not falling into any other category label Apr 8, 2024
@llvmbot
Copy link
Member

llvmbot commented Apr 8, 2024

@llvm/pr-subscribers-clang

Author: Joseph Huber (jhuber6)

Changes

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to liboffload. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.


Full diff: https://github.com/llvm/llvm-project/pull/88007.diff

2 Files Affected:

  • (modified) clang/test/Headers/Inputs/include/stdint.h (+8)
  • (modified) openmp/runtime/src/CMakeLists.txt (+16-9)
diff --git a/clang/test/Headers/Inputs/include/stdint.h b/clang/test/Headers/Inputs/include/stdint.h
index 5bf26a7b67b066..67b27b8dfc7b92 100644
--- a/clang/test/Headers/Inputs/include/stdint.h
+++ b/clang/test/Headers/Inputs/include/stdint.h
@@ -16,4 +16,12 @@ typedef unsigned __INTPTR_TYPE__ uintptr_t;
 #error Every target should have __INTPTR_TYPE__
 #endif
 
+#ifdef __INTPTR_MAX__
+#define  INTPTR_MAX    __INTPTR_MAX__
+#endif
+
+#ifdef __UINTPTR_MAX__
+#define UINTPTR_MAX   __UINTPTR_MAX__
+#endif
+
 #endif /* STDINT_H */
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
index f05bcabb441742..000d02c33dc093 100644
--- a/openmp/runtime/src/CMakeLists.txt
+++ b/openmp/runtime/src/CMakeLists.txt
@@ -10,12 +10,19 @@
 
 include(ExtendPath)
 
+# The generated headers will be placed in clang's resource directory if present.
+if(${OPENMP_STANDALONE_BUILD})
+  set(LIBOMP_HEADERS_INTDIR ${CMAKE_CURRENT_BINARY_DIR})
+else()
+  set(LIBOMP_HEADERS_INTDIR ${LLVM_BINARY_DIR}/${LIBOMP_HEADERS_INSTALL_PATH})
+endif()
+
 # Configure omp.h, kmp_config.h and omp-tools.h if necessary
-configure_file(${LIBOMP_INC_DIR}/omp.h.var omp.h @ONLY)
-configure_file(${LIBOMP_INC_DIR}/ompx.h.var ompx.h @ONLY)
-configure_file(kmp_config.h.cmake kmp_config.h @ONLY)
+configure_file(${LIBOMP_INC_DIR}/omp.h.var ${LIBOMP_HEADERS_INTDIR}/omp.h @ONLY)
+configure_file(${LIBOMP_INC_DIR}/ompx.h.var ${LIBOMP_HEADERS_INTDIR}/ompx.h @ONLY)
+configure_file(kmp_config.h.cmake ${LIBOMP_HEADERS_INTDIR}/kmp_config.h @ONLY)
 if(${LIBOMP_OMPT_SUPPORT})
-  configure_file(${LIBOMP_INC_DIR}/omp-tools.h.var omp-tools.h @ONLY)
+  configure_file(${LIBOMP_INC_DIR}/omp-tools.h.var ${LIBOMP_HEADERS_INTDIR}/omp-tools.h @ONLY)
 endif()
 
 # Generate message catalog files: kmp_i18n_id.inc and kmp_i18n_default.inc
@@ -419,15 +426,15 @@ else()
 endif()
 install(
   FILES
-  ${CMAKE_CURRENT_BINARY_DIR}/omp.h
-  ${CMAKE_CURRENT_BINARY_DIR}/ompx.h
+  ${LIBOMP_HEADERS_INTDIR}/omp.h
+  ${LIBOMP_HEADERS_INTDIR}/ompx.h
   DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH}
 )
 if(${LIBOMP_OMPT_SUPPORT})
-  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH})
+  install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH})
   # install under legacy name ompt.h
-  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h)
-  set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
+  install(FILES ${LIBOMP_HEADERS_INTDIR}/omp-tools.h DESTINATION ${LIBOMP_HEADERS_INSTALL_PATH} RENAME ompt.h)
+  set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${LIBOMP_HEADERS_INTDIR} PARENT_SCOPE)
 endif()
 if(${BUILD_FORTRAN_MODULES})
   set (destination ${LIBOMP_HEADERS_INSTALL_PATH})

@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 8, 2024

IIRC there is a case where omp.h as well as other headers are installed into clang's directory.

These are currently installed into clang's directory, this patch just puts it in the resource directory for the build.

Copy link
Contributor

@jplehr jplehr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes seem reasonable to me.

Comment on lines +19 to +26
#ifdef __INTPTR_MAX__
#define INTPTR_MAX __INTPTR_MAX__
#endif

#ifdef __UINTPTR_MAX__
#define UINTPTR_MAX __UINTPTR_MAX__
#endif

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these changes required to make this work?

Copy link
Contributor Author

@jhuber6 jhuber6 Apr 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this now installed omp.h in a place where the tests will sometimes find it. In that case we need these extra definitions to make it work.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternatively we could just delete this stdint.h altogether, because this only happens because it's using this one instead. But I assume that we override the regular stdint.h to reduce the number of live definitions in tests or something.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This header is useful when invoking front end directly such that we don't need to pass things like -internal-isystem which usually are added by compiler driver.

Copy link
Contributor

@shiltian shiltian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jhuber6 jhuber6 merged commit 8671429 into llvm:main Apr 8, 2024
psteinfeld added a commit to psteinfeld/llvm-project that referenced this pull request Apr 9, 2024
…irectory (llvm#88007)"

This reverts commit 8671429.

This commit broke the flang build, so I'm reverting it.  See the
comments in merge request llvm#88007 for more information.
@psteinfeld
Copy link
Contributor

psteinfeld commented Apr 9, 2024

Hey, @jhuber. This change broke the flang build.

When I revert the change, everything builds cleanly. So I reverted it in merge request #88083.

After this change was added, I started getting messages like:

[4/205] Building CXX object projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o
FAILED: projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o 
/usr/bin/c++ -DDEBUG_PREFIX="\"TARGET x86_64 RTL\"" -DGTEST_HAS_RTTI=0 -DLIBOMPTARGET_NEXTGEN_GENERIC_PLUGIN_TRIPLE=\"x86_64-pc-linux-gnu\" -DOMPT_SUPPORT=1 -DTARGET_ELF_ID=EM_X86_64 -DTARGET_NAME=x86_64 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/local/home/psteinfeld/up/build/projects/openmp/libomptarget/plugins-nextgen/host -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host -I/local/home/psteinfeld/up/build/include -I/local/home/psteinfeld/up/llvm-project/llvm/include -I/local/home/psteinfeld/up/build/lib/clang/19/include -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/include -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/common/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Wcast-qual -Wimplicit-fallthrough -Wsign-compare -Wno-extra -Wno-pedantic -Wno-maybe-uninitialized -fno-semantic-interposition -fdata-sections -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=protected  -fno-exceptions -funwind-tables -fno-rtti -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -fno-exceptions -fno-rtti -MD -MT projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o -MF projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o.d -o projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o -c /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp
In file included from /usr/include/wchar.h:35,
                 from /usr/include/c++/8/cwchar:44,
                 from /usr/include/c++/8/bits/postypes.h:40,
                 from /usr/include/c++/8/bits/char_traits.h:40,
                 from /usr/include/c++/8/string:40,
                 from /local/home/psteinfeld/up/llvm-project/llvm/include/llvm/Support/DynamicLibrary.h:16,
                 from /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp:13:
/local/home/psteinfeld/up/build/lib/clang/19/include/stddef.h:31:42: error: missing binary operator before token "("
 #if !defined(__STDDEF_H) || __has_feature(modules) ||                          \
                                          ^
In file included from /usr/include/wchar.h:38,
                 from /usr/include/c++/8/cwchar:44,
                 from /usr/include/c++/8/bits/postypes.h:40,
                 from /usr/include/c++/8/bits/char_traits.h:40,
                 from /usr/include/c++/8/string:40,
                 from /local/home/psteinfeld/up/llvm-project/llvm/include/llvm/Support/DynamicLibrary.h:16,
                 from /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp:13:
/local/home/psteinfeld/up/build/lib/clang/19/include/stdarg.h:31:42: error: missing binary operator before token "("

@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 9, 2024

Hey, @jhuber. This change broke the flang build.

When I revert the change, everything builds cleanly. So I reverted it in merge request #88083.

After this change was added, I started getting messages like:

[4/205] Building CXX object projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o
FAILED: projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o 
/usr/bin/c++ -DDEBUG_PREFIX="\"TARGET x86_64 RTL\"" -DGTEST_HAS_RTTI=0 -DLIBOMPTARGET_NEXTGEN_GENERIC_PLUGIN_TRIPLE=\"x86_64-pc-linux-gnu\" -DOMPT_SUPPORT=1 -DTARGET_ELF_ID=EM_X86_64 -DTARGET_NAME=x86_64 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/local/home/psteinfeld/up/build/projects/openmp/libomptarget/plugins-nextgen/host -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host -I/local/home/psteinfeld/up/build/include -I/local/home/psteinfeld/up/llvm-project/llvm/include -I/local/home/psteinfeld/up/build/lib/clang/19/include -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/include -I/local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/common/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Wcast-qual -Wimplicit-fallthrough -Wsign-compare -Wno-extra -Wno-pedantic -Wno-maybe-uninitialized -fno-semantic-interposition -fdata-sections -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=protected  -fno-exceptions -funwind-tables -fno-rtti -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -fno-exceptions -fno-rtti -MD -MT projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o -MF projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o.d -o projects/openmp/libomptarget/plugins-nextgen/host/CMakeFiles/omptarget.rtl.x86_64.dir/dynamic_ffi/ffi.cpp.o -c /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp
In file included from /usr/include/wchar.h:35,
                 from /usr/include/c++/8/cwchar:44,
                 from /usr/include/c++/8/bits/postypes.h:40,
                 from /usr/include/c++/8/bits/char_traits.h:40,
                 from /usr/include/c++/8/string:40,
                 from /local/home/psteinfeld/up/llvm-project/llvm/include/llvm/Support/DynamicLibrary.h:16,
                 from /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp:13:
/local/home/psteinfeld/up/build/lib/clang/19/include/stddef.h:31:42: error: missing binary operator before token "("
 #if !defined(__STDDEF_H) || __has_feature(modules) ||                          \
                                          ^
In file included from /usr/include/wchar.h:38,
                 from /usr/include/c++/8/cwchar:44,
                 from /usr/include/c++/8/bits/postypes.h:40,
                 from /usr/include/c++/8/bits/char_traits.h:40,
                 from /usr/include/c++/8/string:40,
                 from /local/home/psteinfeld/up/llvm-project/llvm/include/llvm/Support/DynamicLibrary.h:16,
                 from /local/home/psteinfeld/up/llvm-project/openmp/libomptarget/plugins-nextgen/host/dynamic_ffi/ffi.cpp:13:
/local/home/psteinfeld/up/build/lib/clang/19/include/stdarg.h:31:42: error: missing binary operator before token "("

So the error is caused by your c++ not supporting __has_feature presumably. However I have no clue why that would happen due to this patch. I believe in a few days @jdoerfert will flip the switch and we won't even allow libomptarget to be built without using the runtimes support so this might not be worth thinking about too hard.

Any suggestions for reproducing it?

psteinfeld added a commit that referenced this pull request Apr 9, 2024
#88083)

…irectory (#88007)"

This reverts commit 8671429.

This commit broke the flang build, so I'm reverting it. See the comments
in merge request #88007 for more information.
@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 9, 2024

Hey, @jhuber. This change broke the flang build.

When I revert the change, everything builds cleanly. So I reverted it in merge request #88083.

In any case, the flang bot is going to need to be changed very soon if this is an error so I would recommend pinging whoever's in charge of that. The recommended method is LLVM_ENABLE_RUNTIMES=openmp.

@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 9, 2024

So the error is caused by your c++ not supporting __has_feature presumably. However I have no clue why that would happen due to this patch. I believe in a few days @jdoerfert will flip the switch and we won't even allow libomptarget to be built without using the runtimes support so this might not be worth thinking about too hard.

Any suggestions for reproducing it?

Oh, I think I get it. We're adding the resource directory include to the include paths. This is not conflicting with the ones from GCC. Honestly we only need this for ompt stuff which I could just do directly I suppose.

@psteinfeld
Copy link
Contributor

I should have mentioned, I'm building with GCC 9.3.0. Most of my team uses this compiler.

@jhuber6
Copy link
Contributor Author

jhuber6 commented Apr 9, 2024

I should have mentioned, I'm building with GCC 9.3.0. Most of my team uses this compiler.

Yeah, that's fine for building LLVM but in the future we'll probably require building the offloading runtime with an up-to-date clang. I think for now I can just restrict this patch to runtimes builds.

jhuber6 added a commit that referenced this pull request Apr 9, 2024
…#88007)

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to `liboffload`. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.
daltenty added a commit to daltenty/llvm-project that referenced this pull request May 6, 2024
…hanges

Revert the portion of llvm#75125 which touch the LIBOMP_HEADERS_INSTALL_PATH in standalone build.

This change is harmful for standalone builds, since it tries to overwrite the omp.h inside the build compiler. For all-in-one builds, I've confirmed this change is unncessary as llvm#88007 already set it up so that omp.h will be put into the project build clang's resource directory.
daltenty added a commit that referenced this pull request May 6, 2024
…91243)

Revert the portion of #75125
which modified the LIBOMP_HEADERS_INSTALL_PATH in standalone build.

This change is harmful for real standalone builds (i.e. builds where we
build openmp by itself), since it tries to overwrite the `omp.h` inside
the build compiler. For all-in-one builds with clang, testing shows this
change is unnecessary as #88007
already set up that build configuration so that omp.h will be put into
the project build's `clang` resource directory.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang Clang issues not falling into any other category openmp:libomp OpenMP host runtime
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants