<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libunwind/src, branch users/meinersbur/clang_openmp_interchange</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>[libunwind] fix unwinding from signal handler (#92291)</title>
<updated>2024-07-09T19:57:00+00:00</updated>
<author>
<name>Azat Khuzhin</name>
<email>a3at.mail@gmail.com</email>
</author>
<published>2024-07-09T19:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7b604cdf75fd1c741a15138684ea0e98dca5e46f'/>
<id>7b604cdf75fd1c741a15138684ea0e98dca5e46f</id>
<content type='text'>
In case of this is frame of signal handler, the IP should be
incremented, because the IP saved in the signal handler points to first
non-executed instruction, while FDE/CIE expects IP to be after the first
non-executed instruction.

Refs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26208</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case of this is frame of signal handler, the IP should be
incremented, because the IP saved in the signal handler points to first
non-executed instruction, while FDE/CIE expects IP to be after the first
non-executed instruction.

Refs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26208</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind] Remove needless `sys/uio.h` (#97495)</title>
<updated>2024-07-03T14:25:43+00:00</updated>
<author>
<name>Izaak Schroeder</name>
<email>izaak.schroeder@gmail.com</email>
</author>
<published>2024-07-03T14:25:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=495452e7da8fad7bd311fd041530d72c101da643'/>
<id>495452e7da8fad7bd311fd041530d72c101da643</id>
<content type='text'>
No reference to `readv` or `writev`. This makes `libcxx` happy when
compiling against clang's `libc` as part of
https://github.com/llvm/llvm-project/issues/97191.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No reference to `readv` or `writev`. This makes `libcxx` happy when
compiling against clang's `libc` as part of
https://github.com/llvm/llvm-project/issues/97191.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind][AIX] Cast NULL as type uintptr_t. (#93204)</title>
<updated>2024-05-23T20:06:21+00:00</updated>
<author>
<name>Xing Xue</name>
<email>xingxue@outlook.com</email>
</author>
<published>2024-05-23T20:06:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=42b5daba504a8b4fd60a57dde93ee5d0118abf0b'/>
<id>42b5daba504a8b4fd60a57dde93ee5d0118abf0b</id>
<content type='text'>
Casting NULL as type `uintptr_t` to allow type checking in both 32-bit
and 64-bit mode.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Casting NULL as type `uintptr_t` to allow type checking in both 32-bit
and 64-bit mode.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] __USING_WASM_EXCEPTIONS__ -&gt; __WASM_EXCEPTIONS__ (#92840)</title>
<updated>2024-05-22T04:01:36+00:00</updated>
<author>
<name>Heejin Ahn</name>
<email>aheejin@gmail.com</email>
</author>
<published>2024-05-22T04:01:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=64f640680f7b1ddc8d2015eac75865f231166f8c'/>
<id>64f640680f7b1ddc8d2015eac75865f231166f8c</id>
<content type='text'>
We've decided to change `__USING_WASM_EXCEPTIONS__` preprocessor to
`__WASM_EXCEPTIONS__` given that it's more concise.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We've decided to change `__USING_WASM_EXCEPTIONS__` preprocessor to
`__WASM_EXCEPTIONS__` given that it's more concise.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind][WebAssembly] Make libunwind compilable (#92192)</title>
<updated>2024-05-21T22:43:08+00:00</updated>
<author>
<name>Heejin Ahn</name>
<email>aheejin@gmail.com</email>
</author>
<published>2024-05-21T22:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f6ff87dd90074b694e420d93389c749189bca0ec'/>
<id>f6ff87dd90074b694e420d93389c749189bca0ec</id>
<content type='text'>
This tries to make Wasm compilable in LLVM tree with CMake for
non-Emscripten platform.

This
- Adds `-D__USING_WASM_EXCEPTIONS__` when you compile with
`-fwasm-exceptions` (like other EH options) in Clang
- Exclude `UnwindLevel1.c`, `UnwindRegistersSave.S`, and
`UnwindRegistersRestore.S` when compiling with Wasm
- Changed some `__USING_WASM_EXCEPTIONS__` to `__wasm__`; they should be
applied when compiling with Wasm w/o exceptions.
- Define some unused macros to make it compile

Fixes #72771.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This tries to make Wasm compilable in LLVM tree with CMake for
non-Emscripten platform.

This
- Adds `-D__USING_WASM_EXCEPTIONS__` when you compile with
`-fwasm-exceptions` (like other EH options) in Clang
- Exclude `UnwindLevel1.c`, `UnwindRegistersSave.S`, and
`UnwindRegistersRestore.S` when compiling with Wasm
- Changed some `__USING_WASM_EXCEPTIONS__` to `__wasm__`; they should be
applied when compiling with Wasm w/o exceptions.
- Define some unused macros to make it compile

Fixes #72771.</pre>
</div>
</content>
</entry>
<entry>
<title>[runtimes] Prefer -fvisibility-global-new-delete=force-hidden (#84917)</title>
<updated>2024-03-13T20:01:01+00:00</updated>
<author>
<name>Martin Storsjö</name>
<email>martin@martin.st</email>
</author>
<published>2024-03-13T20:01:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1f973efd335f34c75fcba1ccbe288fd5ece15a64'/>
<id>1f973efd335f34c75fcba1ccbe288fd5ece15a64</id>
<content type='text'>
27ce26b06655cfece3d54b30e442ef93d3e78ac7 added the new option
-fvisibility-global-new-delete=, where -fvisibility-global-new-delete=force-hidden
is equivalent to the old option -fvisibility-global-new-delete-hidden.
At the same time, the old option was deprecated.

Test for and use the new option form first; if unsupported, try 
using the old form.

This avoids warnings in the MinGW builds, if built with Clang 18 or
newer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
27ce26b06655cfece3d54b30e442ef93d3e78ac7 added the new option
-fvisibility-global-new-delete=, where -fvisibility-global-new-delete=force-hidden
is equivalent to the old option -fvisibility-global-new-delete-hidden.
At the same time, the old option was deprecated.

Test for and use the new option form first; if unsupported, try 
using the old form.

This avoids warnings in the MinGW builds, if built with Clang 18 or
newer.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind] Move errno.h and signal.h includes under the block where they're needed (#78054)</title>
<updated>2024-01-16T15:31:01+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne.2@gmail.com</email>
</author>
<published>2024-01-16T15:31:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c1a442462d9d47f86392da7e7019ab218d7a3088'/>
<id>c1a442462d9d47f86392da7e7019ab218d7a3088</id>
<content type='text'>
Commit fc1c478709e3 added includes of &lt;signal.h&gt; and &lt;errno.h&gt; to
UnwindCursor.hpp. The library previously built on platforms where these
headers are not provided. These headers should be included only in the
case where they are actually needed, i.e. on Linux.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit fc1c478709e3 added includes of &lt;signal.h&gt; and &lt;errno.h&gt; to
UnwindCursor.hpp. The library previously built on platforms where these
headers are not provided. These headers should be included only in the
case where they are actually needed, i.e. on Linux.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind][WebAssembly] Fix libunwind.cpp guard (#78230)</title>
<updated>2024-01-16T13:48:50+00:00</updated>
<author>
<name>Heejin Ahn</name>
<email>aheejin@gmail.com</email>
</author>
<published>2024-01-16T13:48:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4967d98eda48bed4a6f382d240f5a33177bc654c'/>
<id>4967d98eda48bed4a6f382d240f5a33177bc654c</id>
<content type='text'>
This should have been `&amp;&amp;`, meaning neither SjLj nor Wasm uses this
file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should have been `&amp;&amp;`, meaning neither SjLj nor Wasm uses this
file.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind]  fix dynamic .eh_frame registration (#77185)</title>
<updated>2024-01-16T02:13:11+00:00</updated>
<author>
<name>SihangZhu</name>
<email>zhusihang@huawei.com</email>
</author>
<published>2024-01-16T02:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=58b33d0301a36900fc641b4b0e110b683064bab8'/>
<id>58b33d0301a36900fc641b4b0e110b683064bab8</id>
<content type='text'>
Fix this issue
[#76957](https://github.com/llvm/llvm-project/issues/76957)
Libgcc provides __register_frame to register a dynamic .eh_frame
section, while __unw_add_dynamic_eh_frame_section can be used to do the
same in libunwind. However, the address after dynamic .eh_frame are
padding with 0 value, it will be identified as
legal CIE. And __unw_add_dynamic_eh_frame_section will continue to parse
subsequent addresses until illegal memory or other sections are
accessed.
This patch adds length formal parameter for dynamic registration.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix this issue
[#76957](https://github.com/llvm/llvm-project/issues/76957)
Libgcc provides __register_frame to register a dynamic .eh_frame
section, while __unw_add_dynamic_eh_frame_section can be used to do the
same in libunwind. However, the address after dynamic .eh_frame are
padding with 0 value, it will be identified as
legal CIE. And __unw_add_dynamic_eh_frame_section will continue to parse
subsequent addresses until illegal memory or other sections are
accessed.
This patch adds length formal parameter for dynamic registration.</pre>
</div>
</content>
</entry>
<entry>
<title>[libunwind] Replace process_vm_readv with SYS_rt_sigprocmask (#74791)</title>
<updated>2024-01-05T20:56:02+00:00</updated>
<author>
<name>Jordan R AW</name>
<email>103465530+ajordanr-google@users.noreply.github.com</email>
</author>
<published>2024-01-05T20:56:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fc1c478709e380164733560e4a2c8f9e8d5e2c1c'/>
<id>fc1c478709e380164733560e4a2c8f9e8d5e2c1c</id>
<content type='text'>
process_vm_readv is generally considered dangerous from a syscall
perspective, and is frequently blanket banned in seccomp filters such as
those in Chromium and ChromiumOS. We can get the same behaviour during
the invalid PC address case with the raw SYS_rt_sigprocmask syscall.

Testing to ensure that process_vm_readv does not appear, I ran the
output of check-unwind on an ARM64 device under strace. Previously,
bad_unwind_info in particular would use process_vm_readv, but with this
commit, it now no longer uses it:

```
strace test/Output/bad_unwind_info.pass.cpp.dir/t.tmp.exe \
  |&amp; grep process_vm_readv
```

The libunwind unittests were also tested on ARM64 ChromeOS (Gentoo
Linux) devices.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
process_vm_readv is generally considered dangerous from a syscall
perspective, and is frequently blanket banned in seccomp filters such as
those in Chromium and ChromiumOS. We can get the same behaviour during
the invalid PC address case with the raw SYS_rt_sigprocmask syscall.

Testing to ensure that process_vm_readv does not appear, I ran the
output of check-unwind on an ARM64 device under strace. Previously,
bad_unwind_info in particular would use process_vm_readv, but with this
commit, it now no longer uses it:

```
strace test/Output/bad_unwind_info.pass.cpp.dir/t.tmp.exe \
  |&amp; grep process_vm_readv
```

The libunwind unittests were also tested on ARM64 ChromeOS (Gentoo
Linux) devices.</pre>
</div>
</content>
</entry>
</feed>
