Page MenuHomePhabricator

rprichard (Ryan Prichard)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 7 2017, 9:53 PM (232 w, 2 d)

Recent Activity

Dec 7 2021

rprichard accepted D110720: Verify inferattrs doesn't infer unexpected attributes.

The lines where CHECK is split into CHECK-LINUX and CHECK-NOLINUX are also enabling the test for nvptx.

It's true that the nvptx case is now checking more than it used to, but not everything; making it check everything could probably be done, but is it worthwhile? I experimented with passing CHECK to the nvptx case, and it doesn't pass; there would have to be a CHECK-NVPTX line paralleling each CHECK: line, pretty much. Seems like a lot of effort, but is nvptx really that special?
I'll do it if someone says Yes, it's worth the trouble; but unless someone can say that, I'd rather not.

Dec 7 2021, 9:39 PM · Restricted Project

Dec 6 2021

rprichard added a comment to D114523: [compiler-rt][AArch64] Add a workaround for Exynos 9810.

... but it seems much easier to put the -fno-outline-atomics flag into the linker's .bp file instead of changing the behavior of __system_property_get.

Dec 6 2021, 2:25 PM · Restricted Project, Restricted Project

Dec 1 2021

rprichard added a comment to D114523: [compiler-rt][AArch64] Add a workaround for Exynos 9810.

From what I understand, for dynamic executables, si->call_constructors() [1] calls the constructor of each loaded shared object. Right?

I put the LD_DEBUG=2 environment variable and found that libc.so's constructor is called before the main executable or any other shared object's constructor. And libc.so calls __libc_preinit_impl -> __libc_init_common -> __system_properties_init.
So the point is that __system_properties_init is initialized before this compiler-rt code is called. But I don't know if this is guaranteed behavior.

Of course, I think this code should work fine even if __system_properties_init is not yet called.

[1] https://cs.android.com/android/platform/superproject/+/9aafec59ccad4b3851269e4119561efd8a2f5e65:bionic/linker/linker_main.cpp;l=508

Dec 1 2021, 10:16 PM · Restricted Project, Restricted Project

Nov 29 2021

rprichard added a comment to D114523: [compiler-rt][AArch64] Add a workaround for Exynos 9810.

Also: is it OK to use a mix of LSE and non-LSE atomic operations to access the same memory concurrently? I would think that should be fine, but it seems worth mentioning.

Nov 29 2021, 9:12 PM · Restricted Project, Restricted Project
rprichard added a comment to D114523: [compiler-rt][AArch64] Add a workaround for Exynos 9810.

I noticed that using __system_property_get from a constructor function probably doesn't work within the Bionic loader (linker[64]), but maybe Bionic ought to be fixed (and it shouldn't matter much in practice):

  • The Bionic dynamic loader calls the constructor functions before calling __system_properties_init. (see tmp_linker_so.call_constructors();)
  • However, a static executable calls __system_properties_init before the constructors, so static executables should be OK.
  • Maybe the dynamic loader ought to call __system_properties_init before constructors.
  • Calling __system_property_get before __system_properties_init is probably OK? It looks like SystemProperties::Find would return nullptr, and __system_property_get would return 0.
  • In any case, it wouldn't actually matter unless someone ran a new loader on an affected device+kernel.
Nov 29 2021, 4:05 PM · Restricted Project, Restricted Project

Nov 5 2021

rprichard added a comment to D111358: TargetLibraryInfo checker tool.

The motivating issue happened with Android (D107509).

Nov 5 2021, 12:17 AM · Restricted Project
rprichard updated subscribers of D111358: TargetLibraryInfo checker tool.

Adding some Android folks to the subscriber list.

Nov 5 2021, 12:11 AM · Restricted Project

Sep 29 2021

rprichard added a comment to D110720: Verify inferattrs doesn't infer unexpected attributes.

The dereferenceable.ll and dereferenceable-inseltpoison.ll files are also confusing to me. It *sounds* like they're trying to test inferred attributes, but its CHECK* lines would allow any or no attributes on the functions, so it's not actually testing anything attribute-related.

Sep 29 2021, 7:00 PM · Restricted Project

Aug 5 2021

rprichard committed rGdaab81cda18a: Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC. (authored by rprichard).
Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC.
Aug 5 2021, 9:56 PM
rprichard closed D107614: Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC..
Aug 5 2021, 9:55 PM · Restricted Project
rprichard added inline comments to D107614: Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC..
Aug 5 2021, 5:28 PM · Restricted Project
rprichard added reviewers for D107614: Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC.: MaskRay, efriedma.

Follow up from D107527 review.

Aug 5 2021, 5:24 PM · Restricted Project
rprichard requested review of D107614: Replace "CHECK-NOT: #{{.*}}" with same-line positive checks. NFC..
Aug 5 2021, 5:22 PM · Restricted Project
rprichard committed rG623cf3dfdf3e: Mark getc_unlocked as unavailable by default (authored by rprichard).
Mark getc_unlocked as unavailable by default
Aug 5 2021, 4:36 PM
rprichard closed D107527: Mark getc_unlocked as unavailable by default.
Aug 5 2021, 4:36 PM · Restricted Project
rprichard added inline comments to D107527: Mark getc_unlocked as unavailable by default.
Aug 5 2021, 4:32 PM · Restricted Project

Aug 4 2021

rprichard added reviewers for D107527: Mark getc_unlocked as unavailable by default: xbolva00, MaskRay, efriedma, echristo.

I noticed this inconsistency while reviewing D107509.

Aug 4 2021, 8:36 PM · Restricted Project
rprichard updated the diff for D107527: Mark getc_unlocked as unavailable by default.

Update test.

Aug 4 2021, 8:26 PM · Restricted Project
rprichard requested review of D107527: Mark getc_unlocked as unavailable by default.
Aug 4 2021, 8:13 PM · Restricted Project
rprichard accepted D107509: Disable LibFuncs for stpcpy and stpncpy for Android < 21.

Yes, Android did add stpcpy and stpncpy in API 21:
https://android.googlesource.com/platform/bionic/+/refs/heads/android11-dev/libc/libc.map.txt

Aug 4 2021, 6:29 PM · Restricted Project

Jul 30 2021

rprichard added a comment to D107127: [builtins] Try to ensure single copy of emulated TLS state.

It resolves everything to the first definition in the lookup order. The only special handling of weak symbols that I've found is that missing definition is not an error.

Jul 30 2021, 3:37 PM · Restricted Project
rprichard added a comment to D107127: [builtins] Try to ensure single copy of emulated TLS state.

Weak symbol is a purely link-time concept, AFAIK. It is ignored in the dynamic loader, so, unless we link multiple copies of this file into the same DSO, "weak" attribute here should not have any effect.

Jul 30 2021, 2:27 PM · Restricted Project
rprichard accepted D107127: [builtins] Try to ensure single copy of emulated TLS state.

Yeah, this looks fine to me.

Jul 30 2021, 2:02 PM · Restricted Project

May 27 2021

rprichard committed rGb834d6309455: [sanitizer] Android ELF TLS is supported from Q (API 29) (authored by rprichard).
[sanitizer] Android ELF TLS is supported from Q (API 29)
May 27 2021, 2:54 PM
rprichard closed D103214: [sanitizer] Android ELF TLS is supported from Q (API 29).
May 27 2021, 2:54 PM · Restricted Project

May 26 2021

rprichard added reviewers for D103214: [sanitizer] Android ELF TLS is supported from Q (API 29): oontvoo, vitalybuka.
May 26 2021, 4:40 PM · Restricted Project
rprichard updated the diff for D103214: [sanitizer] Android ELF TLS is supported from Q (API 29).

Update another place.

May 26 2021, 4:39 PM · Restricted Project
rprichard requested review of D103214: [sanitizer] Android ELF TLS is supported from Q (API 29).
May 26 2021, 4:38 PM · Restricted Project

May 19 2021

rprichard committed rG65d0264ba2e5: [MC][ARM] Reject Thumb "ror rX, #0" (authored by rprichard).
[MC][ARM] Reject Thumb "ror rX, #0"
May 19 2021, 3:06 PM
rprichard closed D102455: [MC][ARM] Reject Thumb "ror rX, #0".
May 19 2021, 3:05 PM · Restricted Project

May 13 2021

rprichard added reviewers for D102455: [MC][ARM] Reject Thumb "ror rX, #0": nickdesaulniers, kristof.beyls, srhines.
May 13 2021, 5:33 PM · Restricted Project
rprichard requested review of D102455: [MC][ARM] Reject Thumb "ror rX, #0".
May 13 2021, 5:30 PM · Restricted Project

Apr 9 2021

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

error: [FE_UPWARD] in __compiler_rt_scalbn(-0x1p+0 [BFF0000000000000], 10000) = -0x1.fffffffffffffp+1023 [FFEFFFFFFFFFFFFF] != -inf [FFF0000000000000]

Apr 9 2021, 5:17 PM · Restricted Project

Mar 22 2021

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

It is actually using clang-r416183 from toolchains.py. From there, you can go to the manifest for building those prebuilts. This line shows you the SHA for the toolchain/llvm-project used to build the prebuilts. Finally, you can look here to see what was merged. Note that there's a typo for the revision number in the commit message, but the upstream LLVM SHA mentioned there is correct. Here is where this toolchain was built in case that is useful/interesting.

Mar 22 2021, 1:03 PM · Restricted Project

Mar 19 2021

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

With NDK r22, I only see libunwind.a for armv7. Will it be provided for other architectures in future NDK versions?

Mar 19 2021, 5:07 PM · Restricted Project

Mar 9 2021

rprichard committed rGa478b0a199f4: [Android] Default to --rtlib=compiler-rt (authored by rprichard).
[Android] Default to --rtlib=compiler-rt
Mar 9 2021, 6:38 PM
rprichard closed D96404: [Android] Default to --rtlib=compiler-rt.
Mar 9 2021, 6:38 PM · Restricted Project
rprichard updated the diff for D96404: [Android] Default to --rtlib=compiler-rt.

Rebase this revision.

Mar 9 2021, 2:53 PM · Restricted Project
rprichard added a comment to D98173: [compiler-rt] Normalize i?86 to i386 and armv* to arm for COMPILER_RT_DEFAULT_TARGET_ARCH.

I think this is OK for Android.

Mar 9 2021, 12:42 AM · Restricted Project

Feb 26 2021

rprichard added a reverting change for rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline": rGd20220141022: Reland "[builtins] Define fmax and scalbn inline".
Feb 26 2021, 4:22 PM
rprichard committed rGd20220141022: Reland "[builtins] Define fmax and scalbn inline" (authored by rprichard).
Reland "[builtins] Define fmax and scalbn inline"
Feb 26 2021, 4:22 PM
rprichard closed D91841: [builtins] Define fmax and scalbn inline.
Feb 26 2021, 4:22 PM · Restricted Project
rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

MSVC's scalbn appears to ignore the current rounding mode, so the value returned from __compiler_rt_scalbn[f] disagreed with the value returned from scalbn[f]. I think it's sufficient to disable the non-default-rounding-mode tests for MSVC. With this change, the __divdc3 and __divsc3 builtins, when compiled with MSVC, should produce the same results as on Linux systems (or as with MinGW and the other Unix systems I tested).

Feb 26 2021, 4:59 AM · Restricted Project
rprichard updated the diff for D91841: [builtins] Define fmax and scalbn inline.

Disable non-default-rounding-mode scalbn[f] tests when using the MSVC libraries.

Feb 26 2021, 4:27 AM · Restricted Project
rprichard reopened D91841: [builtins] Define fmax and scalbn inline.
Feb 26 2021, 4:26 AM · Restricted Project

Feb 25 2021

rprichard committed rG91f8aacc040f: [Android] Use -l:libunwind.a with --rtlib=compiler-rt (authored by rprichard).
[Android] Use -l:libunwind.a with --rtlib=compiler-rt
Feb 25 2021, 3:40 PM
rprichard closed D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.
Feb 25 2021, 3:40 PM · Restricted Project
rprichard retitled D97356: [sanitizer] Pass -e dotbytes=10m to wget from [sanitizer] Pass -e dotbytes=1m to wget to [sanitizer] Pass -e dotbytes=10m to wget.
Feb 25 2021, 1:53 PM
rprichard committed rZORG1a9f4798fee2: [sanitizer] Pass -e dotbytes=10m to wget (authored by rprichard).
[sanitizer] Pass -e dotbytes=10m to wget
Feb 25 2021, 1:52 PM
rprichard closed D97356: [sanitizer] Pass -e dotbytes=10m to wget.
Feb 25 2021, 1:52 PM
rprichard committed rZORG0477d926afac: [sanitizer] Update x86 ABILIST filtering for x86_64 devices (authored by rprichard).
[sanitizer] Update x86 ABILIST filtering for x86_64 devices
Feb 25 2021, 1:52 PM
rprichard closed D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 25 2021, 1:52 PM
rprichard committed rZORG1e7891e19f50: [sanitizer] Set default rtlib to libgcc (authored by rprichard).
[sanitizer] Set default rtlib to libgcc
Feb 25 2021, 1:52 PM
rprichard closed D97354: [sanitizer] Set default rtlib to libgcc.
Feb 25 2021, 1:52 PM

Feb 24 2021

rprichard added a comment to D97356: [sanitizer] Pass -e dotbytes=10m to wget.

This happens only once after clean build, so it did not annoy us, but I don't mind for even bigger value e.g. 10m

Feb 24 2021, 5:10 PM
rprichard updated subscribers of D91841: [builtins] Define fmax and scalbn inline.

The new unit tests failed on sanitizer-windows. I reverted it for now. https://lab.llvm.org/buildbot/#builders/127/builds/6620

Feb 24 2021, 2:51 PM · Restricted Project
rprichard added a reverting change for rG341889ee9e03: [builtins] Define fmax and scalbn inline: rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline".
Feb 24 2021, 2:49 PM
rprichard added a reverting change for D91841: [builtins] Define fmax and scalbn inline: rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline".
Feb 24 2021, 2:49 PM · Restricted Project
rprichard committed rG680f836c2fa7: Revert "[builtins] Define fmax and scalbn inline" (authored by rprichard).
Revert "[builtins] Define fmax and scalbn inline"
Feb 24 2021, 2:49 PM
rprichard committed rG341889ee9e03: [builtins] Define fmax and scalbn inline (authored by rprichard).
[builtins] Define fmax and scalbn inline
Feb 24 2021, 2:33 PM
rprichard closed D91841: [builtins] Define fmax and scalbn inline.
Feb 24 2021, 2:33 PM · Restricted Project
rprichard updated the summary of D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 24 2021, 2:24 AM
rprichard updated the diff for D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

Account for both x86_64,arm64,x86,arm and x86_64,x86,arm64,arm orderings.

Feb 24 2021, 2:23 AM

Feb 23 2021

rprichard added a comment to D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

OTOH, my internal master Cuttlefish VM sets ro.product.cpu.abilist to x86_64,arm64-v8a,x86,armeabi-v7a,armeabi.

Feb 23 2021, 10:07 PM
rprichard added a comment to D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.

FWIW: The sanitizer tests passed on an x86_64 R emulator (RSR1.200819.001.A1).

Feb 23 2021, 9:57 PM
rprichard added a reviewer for D97356: [sanitizer] Pass -e dotbytes=10m to wget: vitalybuka.
Feb 23 2021, 9:52 PM
rprichard added a reviewer for D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices: vitalybuka.
Feb 23 2021, 9:52 PM
rprichard added a reviewer for D97354: [sanitizer] Set default rtlib to libgcc: vitalybuka.

I also tested a version of this change where I instead added --rtlib=libgcc to the flags in configure_android. It was necessary to add --rtlib=libgcc both for compiling and linking, because at compile-time, Clang can use outline-atomics on AArch64. On other architectures, though, the --rtlib=libgcc has no effect at compile-time, and Clang printed a warning. It looks like this stage2 compiler is only used to target Android, though, so it seemed simpler to just override the default.

Feb 23 2021, 9:51 PM
rprichard requested review of D97356: [sanitizer] Pass -e dotbytes=10m to wget.
Feb 23 2021, 9:43 PM
rprichard requested review of D97355: [sanitizer] Update x86 ABILIST filtering for x86_64 devices.
Feb 23 2021, 9:43 PM
rprichard requested review of D97354: [sanitizer] Set default rtlib to libgcc.
Feb 23 2021, 9:43 PM

Feb 22 2021

rprichard committed rG729899f7b6bf: [libunwind] unw_* alias fixes for ELF and Mach-O (authored by rprichard).
[libunwind] unw_* alias fixes for ELF and Mach-O
Feb 22 2021, 4:55 PM
rprichard closed D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 22 2021, 4:54 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

The coff-dwarf.test buildbot failures were fixed by https://github.com/llvm/llvm-project/commit/0fd7c31a098efdfaa5a57dbac6e9c0921b00a999 (on Feb 11).

Feb 22 2021, 4:53 PM · Restricted Project, Restricted Project, Restricted Project

Feb 19 2021

rprichard added a comment to D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.

For reference, I know of four ways that LLVM's libunwind is currently linked into programs:

  • Fuchsia/Windows (i.e. Clang's default behavior): it's part of libc++, e.g.:
    • Fuchsia:
      • fuchsia/prebuilt/third_party/clang/linux-x64/lib/x86_64-unknown-fuchsia/c++/libc++.so is INPUT(libc++.so.2 -lunwind -lc++abi).
      • fuchsia/prebuilt/third_party/clang/linux-x64/lib/x86_64-unknown-fuchsia/c++/libc++.a is an archive that contains the libunwind object files.
    • In https://github.com/mstorsjo/llvm-mingw/releases/tag/20201020:
      • llvm-mingw\x86_64-w64-mingw32\bin\libc++.dll uses _Unwind_Resume from libunwind.dll
      • llvm-mingw\x86_64-w64-mingw32\lib\libc++.dll.a also seems to import _Unwind_Resume from libunwind.dll
      • llvm-mingw\x86_64-w64-mingw32\lib\libc++.a has the libunwind object files in it
  • FreeBSD: libclang_rt.builtins and libunwind are repackaged into libraries that look like libgcc, linked implicitly.
  • Darwin: it's part of libSystem, linked implicitly.
  • crosstool in google3: I think this build system is passing --unwindlib=libunwind to the driver.
Feb 19 2021, 6:15 PM · Restricted Project

Feb 16 2021

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

Ping.

Feb 16 2021, 2:47 PM · Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Maybe this is blocked on someone from Apple reviewing the Mach-O parts?

Feb 16 2021, 2:47 PM · Restricted Project, Restricted Project, Restricted Project

Feb 11 2021

rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Rebase and fix merge conflict in gn file.

Feb 11 2021, 9:52 PM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Update libunwind/src/BUILD.gn for macro name change.

Feb 11 2021, 9:49 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D96563: gn build: Support cross-compiling libunwind for Android..

The Android part of this change looks fine to me.

Feb 11 2021, 6:33 PM · Restricted Project
rprichard added a comment to D96560: libunwind: Don't attempt to authenticate a null return address..
In D96560#2558737, @pcc wrote:

It seems OK to me. Does it make sense to also skip (pc == 0) in UnwindCursor<A, R>::setInfoForSigReturn?

Hmm, that seems redundant with the check that I'm adding here. Let's start with one and we can reconsider if we find another bug here.

Feb 11 2021, 6:25 PM · Restricted Project, Restricted Project
rprichard added a comment to D96560: libunwind: Don't attempt to authenticate a null return address..

It seems OK to me. Does it make sense to also skip (pc == 0) in UnwindCursor<A, R>::setInfoForSigReturn?

Feb 11 2021, 4:37 PM · Restricted Project, Restricted Project

Feb 10 2021

rprichard added reviewers for D96404: [Android] Default to --rtlib=compiler-rt: danalbert, srhines, pcc.

Adding glandium and thakis for Firefox and Chrome. e.g. I suspect this change would cause the same sort of breakage seen in D95166.

Feb 10 2021, 3:11 AM · Restricted Project
rprichard added reviewers for D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt: srhines, danalbert, pcc.
Feb 10 2021, 3:05 AM · Restricted Project
rprichard requested review of D96404: [Android] Default to --rtlib=compiler-rt.
Feb 10 2021, 3:03 AM · Restricted Project
rprichard requested review of D96403: [Android] Use -l:libunwind.a with --rtlib=compiler-rt.
Feb 10 2021, 3:03 AM · Restricted Project
rprichard retitled D93003: [libunwind] unw_* alias fixes for ELF and Mach-O from [libunwind][ELF] Hide unw_getcontext with LIBUNWIND_HIDE_SYMBOLS to [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 10 2021, 12:56 AM · Restricted Project, Restricted Project, Restricted Project

Feb 9 2021

rprichard updated subscribers of D91841: [builtins] Define fmax and scalbn inline.

Adding a couple of other people as possible reviewers.

Feb 9 2021, 9:42 PM · Restricted Project
rprichard updated subscribers of D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

emaste: Just a heads up in case FreeBSD is affected. FWIW, I noticed that libgcc_eh.a on FreeBSD 12.1 doesn't hide the _Unwind_* or unw_* symbols. The build system is defining VISIBILITY_HIDDEN but libunwind doesn't respond to that name. FreeBSD libgcc_eh.a also defines hidden symbols named logAPIs, logUnwinding, and logDWARF. libunwind defines these internal names if NDEBUG isn't defined. They can break statically-linked programs on FreeBSD (e.g. duplicate symbol linker errors).

Feb 9 2021, 8:50 PM · Restricted Project, Restricted Project, Restricted Project
rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 9 2021, 7:57 PM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Restore Mach-O alias fixes.

Feb 9 2021, 7:49 PM · Restricted Project, Restricted Project, Restricted Project

Feb 8 2021

rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Feb 8 2021, 11:24 PM · Restricted Project, Restricted Project, Restricted Project

Feb 5 2021

rprichard retitled D93003: [libunwind] unw_* alias fixes for ELF and Mach-O from [libunwind] LIBUNWIND_HERMETIC_STATIC_LIBRARY fixes to [libunwind][ELF] Hide unw_getcontext with LIBUNWIND_HIDE_SYMBOLS.
Feb 5 2021, 4:04 AM · Restricted Project, Restricted Project, Restricted Project
rprichard added a comment to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

After renaming the CMake option, CMake prints a warning if I set the old option:

CMake Warning:
  Manually-specified variables were not used by the project:
Feb 5 2021, 4:03 AM · Restricted Project, Restricted Project, Restricted Project
rprichard updated the diff for D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.

Just fix ELF and leave Mach-O as-is.

Feb 5 2021, 4:02 AM · Restricted Project, Restricted Project, Restricted Project

Feb 3 2021

rprichard added a comment to D91841: [builtins] Define fmax and scalbn inline.

Implementing the relevant functions called by divxc3 is one choice, another choice is to emulate libgcc - don't use scalbn.

Feb 3 2021, 6:11 PM · Restricted Project

Jan 26 2021

rprichard accepted D95492: Pack relocations for Android when possible..
Jan 26 2021, 5:05 PM · Restricted Project

Jan 16 2021

rprichard added inline comments to D93003: [libunwind] unw_* alias fixes for ELF and Mach-O.
Jan 16 2021, 12:38 AM · Restricted Project, Restricted Project, Restricted Project

Jan 14 2021

rprichard added a comment to D90898: [libunwind] Unwind through aarch64/Linux sigreturn frame.

Could you add a bit of a comment explaining why the XOM case is not protected against?

I think I can expand on the comment.

libunwind can be used for generating backtraces during regular execution (e.g. profiling) and crashing if the XOM is in use seems unfortunate.

For profiling, I assume the unwind info needs to be accurate at every instruction? I know that's definitely not the case for AArch64, but I thought it's still only mostly-accurate on other archs? I don't *really* know that unwinding through a signal handler is important for Android, but I don't know how to rule it out either, and we do have a test for it. I think the test predated Android's libunwindstack unwinder. Maybe someone could be using _Unwind_Backtrace in a segfault handler, and that probably avoids the async-unwind-info problem most of the time. But I also don't think that's how third-party Android crash dumpers work.

Sure, though, libunwind is generic and is used outside of android as well, including other AArch64 targets, so we do need to consider those use cases while making changes.

Jan 14 2021, 4:16 PM · Restricted Project, Restricted Project

Jan 13 2021

rprichard committed rGc82deed6764c: [libunwind] Unwind through aarch64/Linux sigreturn frame (authored by rprichard).
[libunwind] Unwind through aarch64/Linux sigreturn frame
Jan 13 2021, 4:40 PM