<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/cmake, branch users/ccc03-18-_yaml_nfc_precommit_wrong_test_case</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[cmake] Resolve symlink when finding install prefix (#124743)</title>
<updated>2025-03-18T13:48:40+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-03-18T13:48:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2fbfbf499eabb84024541060c61f0d88e882c167'/>
<id>2fbfbf499eabb84024541060c61f0d88e882c167</id>
<content type='text'>
When determining the install prefix in LLVMConfig.cmake etc resolve
symlinks in CMAKE_CURRENT_LIST_FILE first. The motivation for this is to
support symlinks like `/usr/lib64/cmake/llvm` to
`/usr/lib64/llvm19/lib/cmake/llvm`. This only works correctly if the
paths are relative to the resolved symlink.

It's worth noting that this *mostly* already works out of the box,
because cmake automatically does the symlink resolution when the library
is found via CMAKE_PREFIX_PATH. It just doesn't happen when it's found
via the default prefix path.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When determining the install prefix in LLVMConfig.cmake etc resolve
symlinks in CMAKE_CURRENT_LIST_FILE first. The motivation for this is to
support symlinks like `/usr/lib64/cmake/llvm` to
`/usr/lib64/llvm19/lib/cmake/llvm`. This only works correctly if the
paths are relative to the resolved symlink.

It's worth noting that this *mostly* already works out of the box,
because cmake automatically does the symlink resolution when the library
is found via CMAKE_PREFIX_PATH. It just doesn't happen when it's found
via the default prefix path.</pre>
</div>
</content>
</entry>
<entry>
<title>[cmake] Move FindLibcCommonUtils to shared cmake, to fix standalone builds (#131586)</title>
<updated>2025-03-17T13:00:09+00:00</updated>
<author>
<name>Michał Górny</name>
<email>mgorny@gentoo.org</email>
</author>
<published>2025-03-17T13:00:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ed57ab0c2b8f359e7937f2c565239bd7cf124a9f'/>
<id>ed57ab0c2b8f359e7937f2c565239bd7cf124a9f</id>
<content type='text'>
Move `FindLibcCommonUtils` from LLVM's CMake module directory to the
shared top-level CMake directory, as the module is intended to be used
from within the source tree rather than the installed LLVM version. This
fixes standalone offload builds after #131205.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move `FindLibcCommonUtils` from LLVM's CMake module directory to the
shared top-level CMake directory, as the module is intended to be used
from within the source tree rather than the installed LLVM version. This
fixes standalone offload builds after #131205.</pre>
</div>
</content>
</entry>
<entry>
<title>Bump version to 21.0.0git (#124870)</title>
<updated>2025-01-29T03:48:43+00:00</updated>
<author>
<name>Tom Stellard</name>
<email>tstellar@redhat.com</email>
</author>
<published>2025-01-29T03:48:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3bd3e06f3fe418e24af65457877f40cee0544f9d'/>
<id>3bd3e06f3fe418e24af65457877f40cee0544f9d</id>
<content type='text'>
Also clear the release notes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also clear the release notes.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Enable CMP0179 alongside CMP0156 for deduplication on LLD (#116497)</title>
<updated>2024-11-21T19:33:40+00:00</updated>
<author>
<name>Raul Tambre</name>
<email>raul@tambre.ee</email>
</author>
<published>2024-11-21T19:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=505e049aa078c8961f00cacefc3983398a46fb04'/>
<id>505e049aa078c8961f00cacefc3983398a46fb04</id>
<content type='text'>
LLD has a bug regarding ordering of static link libraries in the ELF backend, which has been reported as #116669.
CMake 3.31.0 started properly deduplicating static libraries for LLD causing the following linking failure for `libclang-cpp.so` with `-DLLVM_LINK_LLVM_DYLIB=ON`:
```
ld.lld: error: undefined symbol: llvm::omp::getOpenMPClauseName(llvm::omp::Clause)
&gt;&gt;&gt; referenced by OpenMPKinds.cpp
&gt;&gt;&gt;               tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/OpenMPKinds.cpp.o:(clang::getOpenMPSimpleClauseTypeName(llvm::omp::Clause, unsigned int))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced 166 more times

[tons more]
```

CMake 3.31 also introduced CMP0179, which builds on CMP0156 and makes the deduplication consistent across platforms.
By coincidence this works around the above LLD deficiency and is the fix that CMake 3.31.1 will implement.
However, the fix is to ignore CMP0156 unless CMP0179 is also enabled, i.e. no more deduplication.
So enable CMP0179 to keep the benefits of deduplication from CMP0156 on LLD and fix the build for CMake 3.31.0.

See: #116669
See: https://gitlab.kitware.com/cmake/cmake/-/issues/26447
Fixes: cb90d5b</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLD has a bug regarding ordering of static link libraries in the ELF backend, which has been reported as #116669.
CMake 3.31.0 started properly deduplicating static libraries for LLD causing the following linking failure for `libclang-cpp.so` with `-DLLVM_LINK_LLVM_DYLIB=ON`:
```
ld.lld: error: undefined symbol: llvm::omp::getOpenMPClauseName(llvm::omp::Clause)
&gt;&gt;&gt; referenced by OpenMPKinds.cpp
&gt;&gt;&gt;               tools/clang/lib/Basic/CMakeFiles/obj.clangBasic.dir/OpenMPKinds.cpp.o:(clang::getOpenMPSimpleClauseTypeName(llvm::omp::Clause, unsigned int))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced by SemaOpenMP.cpp
&gt;&gt;&gt;               tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaOpenMP.cpp.o:(clang::SemaOpenMP::CheckOMPRequiresDecl(clang::SourceLocation, llvm::ArrayRef&lt;clang::OMPClause*&gt;))
&gt;&gt;&gt; referenced 166 more times

[tons more]
```

CMake 3.31 also introduced CMP0179, which builds on CMP0156 and makes the deduplication consistent across platforms.
By coincidence this works around the above LLD deficiency and is the fix that CMake 3.31.1 will implement.
However, the fix is to ignore CMP0156 unless CMP0179 is also enabled, i.e. no more deduplication.
So enable CMP0179 to keep the benefits of deduplication from CMP0156 on LLD and fix the build for CMake 3.31.0.

See: #116669
See: https://gitlab.kitware.com/cmake/cmake/-/issues/26447
Fixes: cb90d5b</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Enable CMP0156 if available (#115046)</title>
<updated>2024-11-06T18:34:48+00:00</updated>
<author>
<name>Evan Wilde</name>
<email>ewilde@apple.com</email>
</author>
<published>2024-11-06T18:34:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cb90d5b3ef463f0a471f9c6d39978c3764021dea'/>
<id>cb90d5b3ef463f0a471f9c6d39978c3764021dea</id>
<content type='text'>
Some linkers do not require that libraries are repeated on the command
line. The Apple linker emits warnings when duplicate libraries are
specified, resulting in a wall of warnings.

CMP0156 deduplicates libraries on the command line when the linker
doesn't require them.

This patch enables CMP0156 to quiet the warnings when using a version of
CMake that recognizes it (CMake 3.29 and newer).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some linkers do not require that libraries are repeated on the command
line. The Apple linker emits warnings when duplicate libraries are
specified, resulting in a wall of warnings.

CMP0156 deduplicates libraries on the command line when the linker
doesn't require them.

This patch enables CMP0156 to quiet the warnings when using a version of
CMake that recognizes it (CMake 3.29 and newer).</pre>
</div>
</content>
</entry>
<entry>
<title>[cmake] Remove obsolete files, docs and CMake variables related to the standalone build (#112741)</title>
<updated>2024-11-04T22:53:38+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-11-04T22:53:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6127724786d581d2653df7420d1f28709288a107'/>
<id>6127724786d581d2653df7420d1f28709288a107</id>
<content type='text'>
The runtimes used to support a build mode called the "Standalone build",
which isn't supported anymore (and hasn't been for a few years).
However, various places in the code still contained stuff whose only
purpose was to support that build mode, and some outdated documentation.
This patch cleans that up (although I probably missed some).

- Remove HandleOutOfTreeLLVM.cmake which isn't referenced anymore
- Remove the LLVM_PATH CMake variable which isn't used anymore
- Update some outdated documentation referencing standalone builds</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The runtimes used to support a build mode called the "Standalone build",
which isn't supported anymore (and hasn't been for a few years).
However, various places in the code still contained stuff whose only
purpose was to support that build mode, and some outdated documentation.
This patch cleans that up (although I probably missed some).

- Remove HandleOutOfTreeLLVM.cmake which isn't referenced anymore
- Remove the LLVM_PATH CMake variable which isn't used anymore
- Update some outdated documentation referencing standalone builds</pre>
</div>
</content>
</entry>
<entry>
<title>[cmake] Promote message when failing to find compiler-rt to warning (#111834)</title>
<updated>2024-10-24T14:27:51+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-10-24T14:27:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cb445e8d1d66daf294e64a07bf69b6266fe1cded'/>
<id>cb445e8d1d66daf294e64a07bf69b6266fe1cded</id>
<content type='text'>
This makes the message stand out a bit more, which can be helpful to
debug situations where compiler-rt is missing but shouldn't.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the message stand out a bit more, which can be helpful to
debug situations where compiler-rt is missing but shouldn't.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] Do not set CMP0114 explicitly to old (#90384)</title>
<updated>2024-10-16T06:15:05+00:00</updated>
<author>
<name>Aiden Grossman</name>
<email>aidengrossman@google.com</email>
</author>
<published>2024-10-16T06:15:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=49de1541655cc71cfedbee10d6b4a4c12fc7e13b'/>
<id>49de1541655cc71cfedbee10d6b4a4c12fc7e13b</id>
<content type='text'>
CMP0114 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0116 check just in case something
breaks.

Partially fixes #83727.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CMP0114 was originally set to old to get rid of warnings. However, this
behavior is now set to new by default with the minimum CMake version
that LLVM requires so does not produce any warnings, and setting it
explicitly to old does produce a warning in newer CMake versions. Due to
these reasons, remove this check for now.

Splitting off from removing the CMP0116 check just in case something
breaks.

Partially fixes #83727.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake] enable CMP0147 policy if available (#109150)</title>
<updated>2024-09-24T20:30:31+00:00</updated>
<author>
<name>c8ef</name>
<email>c8ef@outlook.com</email>
</author>
<published>2024-09-24T20:30:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cf9fc5e22fa51e5b3a8182e7ef408cd77064a664'/>
<id>cf9fc5e22fa51e5b3a8182e7ef408cd77064a664</id>
<content type='text'>
Closes #38383.

This enables parallel custom build commands, which improve compilation
time on Windows with Visual Studio.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #38383.

This enables parallel custom build commands, which improve compilation
time on Windows with Visual Studio.</pre>
</div>
</content>
</entry>
<entry>
<title>[CMake][compiler-rt] Support for using compiler-rt atomic library (#106603)</title>
<updated>2024-09-03T17:28:49+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-09-03T17:28:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=26a4edf655aac138ef4f8cebf865d34b9ab4ff2d'/>
<id>26a4edf655aac138ef4f8cebf865d34b9ab4ff2d</id>
<content type='text'>
Not every toolchain provides and want to use libatomic which is a part
of GCC, some toolchains may opt into using compiler-rt atomic library.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not every toolchain provides and want to use libatomic which is a part
of GCC, some toolchains may opt into using compiler-rt atomic library.</pre>
</div>
</content>
</entry>
</feed>
