<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libcxx/src/include/overridable_function.h, branch main</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>[libc++][NFC] Update the documentation for _LIBCPP_OVERRIDABLE_FUNCTION (#140121)</title>
<updated>2025-05-16T11:29:46+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2025-05-16T11:29:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e829963a4fefa1b9540647799800b16d88bf0412'/>
<id>e829963a4fefa1b9540647799800b16d88bf0412</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libcxx][NFC] Use macros for functions that support overriding detection (#133876)</title>
<updated>2025-05-09T18:25:14+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2025-05-09T18:25:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=25a03c1c7cec62ad7b6ed7a176df4e91ba968332'/>
<id>25a03c1c7cec62ad7b6ed7a176df4e91ba968332</id>
<content type='text'>
We plan to replace the existing mechanism for overriding detection with
one that doesn't require the use of a special section as an alternative
to llvm/llvm-project#120805 which had other downsides.

This change is a pure refactoring that lays the foundation for a
subsequent change that will introduce the new detection mechanism.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We plan to replace the existing mechanism for overriding detection with
one that doesn't require the use of a special section as an alternative
to llvm/llvm-project#120805 which had other downsides.

This change is a pure refactoring that lays the foundation for a
subsequent change that will introduce the new detection mechanism.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[libcxx] Use alias for detecting overriden function" (#124431)</title>
<updated>2025-01-28T06:26:15+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2025-01-28T06:26:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4167ea2cb082a2acb00b8b1dc09aa780dc0e3110'/>
<id>4167ea2cb082a2acb00b8b1dc09aa780dc0e3110</id>
<content type='text'>
Reverts llvm/llvm-project#120805

This change while desirable has two issues we discovered:

- It is incompatible with `-funique-internal-linkage-names`, see
https://github.com/llvm/llvm-project/pull/120805#discussion_r1913709817
- It is incompatible with `-fvisibility-global-new-delete=force-hidden`,
see
https://github.com/llvm/llvm-project/issues/123224#issuecomment-2607963878

We were hoping to address both of these issues with
https://github.com/llvm/llvm-project/pull/122983, but that change has
other issues we haven't yet managed to resolve. For now, we have decided
to revert the change to avoid shipping a broken feature in LLVM 20, and
we plan to follow up with a new approach post branch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#120805

This change while desirable has two issues we discovered:

- It is incompatible with `-funique-internal-linkage-names`, see
https://github.com/llvm/llvm-project/pull/120805#discussion_r1913709817
- It is incompatible with `-fvisibility-global-new-delete=force-hidden`,
see
https://github.com/llvm/llvm-project/issues/123224#issuecomment-2607963878

We were hoping to address both of these issues with
https://github.com/llvm/llvm-project/pull/122983, but that change has
other issues we haven't yet managed to resolve. For now, we have decided
to revert the change to avoid shipping a broken feature in LLVM 20, and
we plan to follow up with a new approach post branch.</pre>
</div>
</content>
</entry>
<entry>
<title>[libcxx] Use alias for detecting overriden function (#120805)</title>
<updated>2025-01-07T21:45:48+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2025-01-07T21:45:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=841895543edcf98bd16027c6b85fe7c6419a4566'/>
<id>841895543edcf98bd16027c6b85fe7c6419a4566</id>
<content type='text'>
This mechanism is preferable in environments like embedded since it
doesn't require special handling of the custom section.

This is a reland of https://github.com/llvm/llvm-project/pull/114961
which addresses the issue reported by downstream users. Specifically,
the two differences from the previous version are:

* The internal `symbol##_impl__` symbol in the Mach-O implementation is
  annotated with `__attribute__((used))` to prevent LTO from deleting it
  which we've seen in the previous version.
* `__is_function_overridden` is marked as `inline` so these symbols are
  placed in a COMDAT (or fully inlined) to avoid duplicate symbol errors
  which we've seen in the previous version.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This mechanism is preferable in environments like embedded since it
doesn't require special handling of the custom section.

This is a reland of https://github.com/llvm/llvm-project/pull/114961
which addresses the issue reported by downstream users. Specifically,
the two differences from the previous version are:

* The internal `symbol##_impl__` symbol in the Mach-O implementation is
  annotated with `__attribute__((used))` to prevent LTO from deleting it
  which we've seen in the previous version.
* `__is_function_overridden` is marked as `inline` so these symbols are
  placed in a COMDAT (or fully inlined) to avoid duplicate symbol errors
  which we've seen in the previous version.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[libcxx] Use alias for detecting overriden function (#114961)"</title>
<updated>2024-12-19T20:54:06+00:00</updated>
<author>
<name>Nico Weber</name>
<email>thakis@chromium.org</email>
</author>
<published>2024-12-19T20:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8dfae0c462e9558df77c83c97d89b4b83ed1baff'/>
<id>8dfae0c462e9558df77c83c97d89b4b83ed1baff</id>
<content type='text'>
This reverts commit 62bd10f7d18ca6f544286767cae2c9026d493888.
Breaks building with -flto=thin, see
https://github.com/llvm/llvm-project/pull/114961#issuecomment-2555754056
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 62bd10f7d18ca6f544286767cae2c9026d493888.
Breaks building with -flto=thin, see
https://github.com/llvm/llvm-project/pull/114961#issuecomment-2555754056
</pre>
</div>
</content>
</entry>
<entry>
<title>[libcxx] Use alias for detecting overriden function (#114961)</title>
<updated>2024-12-17T16:16:26+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2024-12-17T16:16:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62bd10f7d18ca6f544286767cae2c9026d493888'/>
<id>62bd10f7d18ca6f544286767cae2c9026d493888</id>
<content type='text'>
This mechanism is preferable in environments like embedded since it
doesn't require special handling of the custom section.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This mechanism is preferable in environments like embedded since it
doesn't require special handling of the custom section.</pre>
</div>
</content>
</entry>
<entry>
<title>[PAC] Make __is_function_overridden pauth-aware on ELF platforms (#107498)</title>
<updated>2024-09-09T23:34:41+00:00</updated>
<author>
<name>Anton Korobeynikov</name>
<email>anton@korobeynikov.info</email>
</author>
<published>2024-09-09T23:34:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=33c1325a73c4bf6bacdb865c2550038afe4377d2'/>
<id>33c1325a73c4bf6bacdb865c2550038afe4377d2</id>
<content type='text'>
Apparently, there are two almost identical implementations: one for
MachO and another one for ELF. The ELF bits somehow slipped while
https://github.com/llvm/llvm-project/pull/84573 was reviewed.

The particular implementation is identical to MachO case.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Apparently, there are two almost identical implementations: one for
MachO and another one for ELF. The ELF bits somehow slipped while
https://github.com/llvm/llvm-project/pull/84573 was reviewed.

The particular implementation is identical to MachO case.</pre>
</div>
</content>
</entry>
<entry>
<title>[libcxx] Disable invalid `__start/__stop` reference on NVPTX (#99381)</title>
<updated>2024-08-14T18:40:48+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2024-08-14T18:40:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23617f2dc094e3f960d9e0aedaa87a0866e8dc2d'/>
<id>23617f2dc094e3f960d9e0aedaa87a0866e8dc2d</id>
<content type='text'>
Summary:
The logic for this `__is_function_overridden` check requires accessing a
runtime array normally created by the linker. The NVPTX target is an
`__ELF__` target, however it does not support emitting the
`__start/__stop` symbols for C-identifier named sections. This needs to
be disabled explicitly so that the user can compile this with anything.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
The logic for this `__is_function_overridden` check requires accessing a
runtime array normally created by the linker. The NVPTX target is an
`__ELF__` target, however it does not support emitting the
`__start/__stop` symbols for C-identifier named sections. This needs to
be disabled explicitly so that the user can compile this with anything.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][libc++abi] Minor follow-up changes after ptrauth upstreaming (#87481)</title>
<updated>2024-07-23T18:04:54+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-07-23T18:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e64e745e8fb802ffb06259b1a5ba3db713a17087'/>
<id>e64e745e8fb802ffb06259b1a5ba3db713a17087</id>
<content type='text'>
This patch applies the comments provided on #84573. This is done as a
separate PR to avoid merge conflicts with downstreams that already had
ptrauth support.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch applies the comments provided on #84573. This is done as a
separate PR to avoid merge conflicts with downstreams that already had
ptrauth support.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][NFC] Remove outdated comment about overridable_function being in libcxx/include</title>
<updated>2024-07-12T20:02:54+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-07-12T20:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3fe8ce390df3a3cdadee3089f158d14c02d07d78'/>
<id>3fe8ce390df3a3cdadee3089f158d14c02d07d78</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
