Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

enh (Elliott Hughes)
User

Projects

User does not belong to any projects.

User Details

User Since
May 15 2015, 4:56 PM (437 w, 2 d)

Recent Activity

Fri, Sep 29

enh added inline comments to D158930: [libc++][print] Fixes error reporting..
Fri, Sep 29, 3:07 PM · Restricted Project, Restricted Project

Mon, Sep 25

enh accepted D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions..

yeah, lgtm from the Android side too, unless rprichard has more comments?

Mon, Sep 25, 7:08 PM · Restricted Project, Restricted Project, Restricted Project

Mon, Sep 11

enh added a comment to D157331: [clang] Implement C23 <stdckdint.h>.

(yeah, similar for Android --- we'll just use the clang one as-is. but if there's already precedent for allowing include_next, that doesn't hurt us either.)

Mon, Sep 11, 11:15 AM · Restricted Project, Restricted Project

Aug 29 2023

enh added inline comments to D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions..
Aug 29 2023, 11:57 AM · Restricted Project, Restricted Project, Restricted Project

Aug 28 2023

enh added inline comments to D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions..
Aug 28 2023, 9:15 AM · Restricted Project, Restricted Project, Restricted Project

Aug 24 2023

enh added inline comments to D158641: [AArch64] Fix FMV ifunc resolver usage on old Android APIs. Rename internal compiler-rt FMV functions..
Aug 24 2023, 7:25 AM · Restricted Project, Restricted Project, Restricted Project

Aug 17 2023

enh added inline comments to D158123: [scudo] Modify hard-coded page size for Android..
Aug 17 2023, 9:23 AM · Restricted Project, Restricted Project

Aug 16 2023

enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 16 2023, 3:45 PM · Restricted Project, Restricted Project
enh added inline comments to D158123: [scudo] Modify hard-coded page size for Android..
Aug 16 2023, 3:21 PM · Restricted Project, Restricted Project
enh added a comment to D151585: Remove hardcoded page size when compiling on android.

Sorry, I've been trying multiple ways of incorporating the value into the config and none of them work easily. They require changes to just about every file in the tree. I have a back up but that simply uses a #define instead of specialized on SCUDO_ANDROID. I think that might be the best way to go since it's not easy to use a config variable for this particular call.

Aug 16 2023, 2:19 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 16 2023, 1:16 PM · Restricted Project, Restricted Project

Aug 9 2023

enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 9 2023, 11:01 AM · Restricted Project, Restricted Project
enh added a comment to D157331: [clang] Implement C23 <stdckdint.h>.

I try to grep "std>" in clang/test/Headers but find nothing, and nothing in stdalign.h is about >

Aug 9 2023, 7:00 AM · Restricted Project, Restricted Project

Aug 8 2023

enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 8 2023, 3:56 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 8 2023, 3:13 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 8 2023, 2:38 PM · Restricted Project, Restricted Project

Aug 7 2023

enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 7 2023, 4:04 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 7 2023, 4:02 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 7 2023, 4:00 PM · Restricted Project, Restricted Project
enh added inline comments to D157331: [clang] Implement C23 <stdckdint.h>.
Aug 7 2023, 3:50 PM · Restricted Project, Restricted Project

Jul 14 2023

enh accepted D155339: Enable zba and zbs for RISCV64 Android.
Jul 14 2023, 4:28 PM · Restricted Project, Restricted Project

Jul 11 2023

enh accepted D155026: [compiler-rt][AArch64] Correct how FMV use ifunc resolver abi..
Jul 11 2023, 3:57 PM · Restricted Project, Restricted Project

Jul 7 2023

enh accepted D154733: [scudo] Explicit casting for u16 arithmetic operation.
Jul 7 2023, 11:42 AM · Restricted Project, Restricted Project

Jun 12 2023

enh added inline comments to D152729: Enable zbb for riscv android.
Jun 12 2023, 3:54 PM · Restricted Project, Restricted Project
enh accepted D152729: Enable zbb for riscv android.

thanks!

Jun 12 2023, 10:32 AM · Restricted Project, Restricted Project

Jun 7 2023

enh accepted D137131: [libc++] Android temp dir is /data/local/tmp, enable Windows test.

i'd probably change the commit message to make it clear that Android's _global fallback_ temporary directory is /data/local/tmp. (for most apps, it's an app-specific directory that [on new enough versions of Android] you can get from $TMPDIR). but i see the _code_ works like that anyway --- prefer $TMPDIR, but fall back to /data/local/tmp. so, yes, that's correct. (i know nothing about Windows though :-) )

Jun 7 2023, 1:09 PM · Restricted Project, Restricted Project

Jun 6 2023

enh accepted D151512: Remove small data limit for riscv64.*android triples.

(sgtm from Android. we're reusing gp for SCS.)

Jun 6 2023, 6:59 AM · Restricted Project, Restricted Project

Jun 5 2023

enh added inline comments to D151512: Remove small data limit for riscv64.*android triples.
Jun 5 2023, 11:24 AM · Restricted Project, Restricted Project

May 15 2023

enh added a comment to D150490: Enable frame pointer for all non-leaf functions on riscv64 Android.

Is there more context on why Android enables the frame pointer?

From what i gathered, this is more of an effort to have parity such that existing build flag overrides continue to be consistent.

May 15 2023, 10:59 AM · Restricted Project, Restricted Project

May 12 2023

enh accepted D150490: Enable frame pointer for all non-leaf functions on riscv64 Android.

(lgtm with craig.topper's suggested simplification.)

May 12 2023, 5:36 PM · Restricted Project, Restricted Project
enh added inline comments to D150490: Enable frame pointer for all non-leaf functions on riscv64 Android.
May 12 2023, 3:52 PM · Restricted Project, Restricted Project
enh added inline comments to D150490: Enable frame pointer for all non-leaf functions on riscv64 Android.
May 12 2023, 3:19 PM · Restricted Project, Restricted Project

May 8 2023

enh accepted D150004: [RISCV][MC] .debug_line/.debug_frame/.eh_frame: emit relocations for assembly input files with relaxation.

sgtm, but you probably want a grownup like craig.topper to do a real review :-)

May 8 2023, 12:51 PM · debug-info, Restricted Project, Restricted Project

Apr 20 2023

enh accepted D148779: [Sema] -Wformat: recognize %lb for the printf/scanf family of functions.

thanks!

Apr 20 2023, 7:46 AM · Restricted Project, Restricted Project

Apr 17 2023

enh accepted D147849: [Android] Use ELF TLS for Android API level 29+.

(yeah, thanks so much for doing this!)

Apr 17 2023, 4:28 PM · Restricted Project, Restricted Project

Apr 10 2023

enh added a comment to D147849: [Android] Use ELF TLS for Android API level 29+.

nit: In the description/commit message, the "when the API level is > 29" should be "when the API level is >= 29".

I think it's OK, but I'd like confirmation that it works with LTO?

One issue I noticed earlier was that the compiler flag (-f[no-]emulated-tls) doesn't work with LTO:

  • The flag is ignored when the compiler is only outputting LLVM IR, and
  • The flag is also ignored at link-time when the IR is converted to emutls-or-efltls machine code.

This link-time LTO setting can be changed using -Wl,-plugin-opt,-emulated-tls={0,1}.

Apr 10 2023, 3:35 PM · Restricted Project, Restricted Project

Mar 22 2023

enh added inline comments to D146560: [PATCH] [PATCH] Enable targeting riscv64-linux-android.
Mar 22 2023, 7:43 AM · Restricted Project, Restricted Project, Restricted Project

Mar 21 2023

enh accepted D146560: [PATCH] [PATCH] Enable targeting riscv64-linux-android.
Mar 21 2023, 1:43 PM · Restricted Project, Restricted Project, Restricted Project

Feb 27 2023

enh accepted D144898: [scudo] Set name for reserved regions in SizeClassAllocator64.

thanks!

Feb 27 2023, 11:27 AM · Restricted Project, Restricted Project

Feb 24 2023

enh added inline comments to D142658: [scudo] Improve the uses of roundUpTo/roundDownTo/isAligned.
Feb 24 2023, 9:34 AM · Restricted Project, Restricted Project

Feb 13 2023

enh added a comment to D143619: [llvm][codegen] Disallow default Emulated TLS for RISCV.

Does this mean that Android, OpenBSD, and Cygwin have emulated TLS support for all supported architectures other than RISC-V?

For OpenBSD, yes.

Feb 13 2023, 8:38 AM · Restricted Project, Restricted Project

Jan 27 2023

enh added a comment to D137268: [clang][Headers] Do not define varargs macros for __need___va_list.

Could you check if this fixes your issue?

Jan 27 2023, 7:39 AM · Restricted Project, Restricted Project, Restricted Project

Jan 20 2023

enh added a comment to D137268: [clang][Headers] Do not define varargs macros for __need___va_list.

I think I have caught this because your standard conformance tests checks for gnuc_va_list
on wchar.h, wich is always defined on on GCC (git log shows it was changed to fix XPG7
tests, but I am not sure exactly why the author has changed the va_list to
gnuc_va_list).

Jan 20 2023, 12:13 PM · Restricted Project, Restricted Project, Restricted Project
enh added a comment to D137268: [clang][Headers] Do not define varargs macros for __need___va_list.

is there a corresponding glibc change so that va_list is exported for _POSIX_SOURCE cases? see https://android-review.git.corp.google.com/c/platform/bionic/+/2397313 where i'm having to disable some bionic testing against glibc because the glibc (2.17!) <wchar.h> now no longer exports va_list. i did look for a ToT glibc patch to backport (until we've _actually_ switched from glibc to musl for the host), but couldn't obviously find it?

Jan 20 2023, 11:25 AM · Restricted Project, Restricted Project, Restricted Project

Oct 27 2022

enh added inline comments to D136897: [tsan] re-exec when ASLR is enabled for x86_64 as well.
Oct 27 2022, 4:18 PM · Restricted Project, Restricted Project

Oct 12 2022

enh added a comment to D131230: [RISCV] Allow mismatched SmallDataLimit and use Min for conflicting values.

@MaskRay for his opinion...

Oct 12 2022, 5:17 PM · Restricted Project, Restricted Project, Restricted Project

Sep 9 2022

enh added a comment to D132611: [ASan] rename left/right to before/after..

We had a bunch of gtest death tests to check that the sanitizers are working. They did a write to the left or right if an array, and checked that that a) crashed b) the crash message contained the text "left of" / "right of". Fairly easy to update, but also a bit churny, for subjectively not a lot of upside. (But if y'all think this is a better diag, that's enough of course.)

Sep 9 2022, 11:50 AM · Restricted Project, Restricted Project
enh added a comment to D133582: [ASan] rename internal references to left of/right of..

yeah, that makes sense to me.

Sep 9 2022, 10:16 AM · Restricted Project, Restricted Project, Restricted Project

Sep 7 2022

enh added inline comments to D132983: Fix std::fpos pretty printer on musl.
Sep 7 2022, 12:24 PM · Restricted Project, Restricted Project

Aug 23 2022

enh accepted D132514: [lldb] Remove obsolete Android-specific definitions.
Aug 23 2022, 5:17 PM · Restricted Project, Restricted Project

Aug 9 2022

enh added a comment to D128958: Add assembler plumbing for sanitize_memtag.

For now though, to allow experimentation and further development, it would be great to temporarily reserve some section identifiers and semantics. Do you think we should use aarch64 reservations, or Android reservations? I would hope that we can avoid a RELR-style launch where Android supports some scheme for a few generations, then the generic ABI variant comes about, and then Android has to support both (and app developers have to use the old one for backwards compatibility, but that's not always obvious).

Aug 9 2022, 11:24 AM · Restricted Project, Restricted Project, Restricted Project

Aug 4 2022

enh added a comment to D131057: [Sema] -Wformat: support C23 format specifier %b %B.

GCC 12 -Wformat -pedantic emits a warning:

warning: ISO C17 does not support the ‘%b’ gnu_printf format [-Wformat=]

The behavior is not ported (and it's unclear to me how to implement it).

If you really want this, I think it can be implemented by looking at LangOpts::LangStd.

Something like !getLangOpts().C2X I suppose, but I do not find how to check both -Wformat and -Wpedantic.
Also, for the nature of the diagnostic, I think something in TableGen like def ext_... InGroup<C2x> would make sense but using a C23/C2x related -W option would deviate from the GCC behavior.
ISTM adding the diagnostic (even if we do) is not so necessary in this patch.

Aug 4 2022, 10:29 AM · Restricted Project, Restricted Project

Aug 3 2022

enh added a comment to D131057: [Sema] -Wformat: support C23 format specifier %b %B.

I think making scanf in the same patch makes sense. Let me check existing tests...

Aug 3 2022, 11:43 AM · Restricted Project, Restricted Project
enh accepted D131057: [Sema] -Wformat: support C23 format specifier %b %B.

thanks!

Aug 3 2022, 11:06 AM · Restricted Project, Restricted Project

Jul 13 2022

enh added a comment to D128958: Add assembler plumbing for sanitize_memtag.

The implementation looks good to me. I assume that you have authority to define a value in SHT_ANDROID_*.

Jul 13 2022, 11:56 AM · Restricted Project, Restricted Project, Restricted Project

Feb 23 2022

enh added a comment to D117611: [Sema] Warn about printf %n on Android and Fuchsia.

This doesn't leave much room to use __attribute__((format(printf))) on custom printf implementations that do support %n on Android does it?

Feb 23 2022, 3:01 PM · Restricted Project

Jan 19 2022

enh added a comment to D117611: [Sema] Warn about printf %n on Android and Fuchsia.

@srhines can you also take a look at the Android changes or suggest other reviewers?

sorry, took me this long to log in :-(

yeah, lgtm, thanks! %n hasn't worked for about 10 years; it changed from being silently ignored (which, in retrospect, was a cure every bit as bad as the disease) to causing a FORTIFY abort in Q/API 29. but, yeah, since it doesn't do what the C standard says in any version of Android that the NDK still supports, it makes sense for clang to just reject it regardless of API level.

in case anyone's thinking "citation needed": search for %n on https://android.googlesource.com/platform/bionic/+/master/docs/status.md

Jan 19 2022, 1:32 PM · Restricted Project
enh added a comment to D117611: [Sema] Warn about printf %n on Android and Fuchsia.

@srhines can you also take a look at the Android changes or suggest other reviewers?

sorry, took me this long to log in :-(

yeah, lgtm, thanks! %n hasn't worked for about 10 years; it changed from being silently ignored (which, in retrospect, was a cure every bit as bad as the disease) to causing a FORTIFY abort in Q/API 29. but, yeah, since it doesn't do what the C standard says in any version of Android that the NDK still supports, it makes sense for clang to just reject it regardless of API level.

Jan 19 2022, 1:28 PM · Restricted Project
enh accepted D117611: [Sema] Warn about printf %n on Android and Fuchsia.
Jan 19 2022, 1:27 PM · Restricted Project
enh added a comment to D117611: [Sema] Warn about printf %n on Android and Fuchsia.

@srhines can you also take a look at the Android changes or suggest other reviewers?

Jan 19 2022, 1:27 PM · Restricted Project

Oct 28 2021

enh added a comment to D111833: [clang] Fortify warning for scanf calls with field width too big..

Previously this patch did not cover %c and %[, but now it does.

Oct 28 2021, 5:12 PM · Restricted Project
enh accepted D111833: [clang] Fortify warning for scanf calls with field width too big..

add tests for %c and %[ too? (it's genuinely unclear to me from a quick skim whether this patch covers them.)

Oct 28 2021, 9:41 AM · Restricted Project

Oct 15 2021

enh added inline comments to D111833: [clang] Fortify warning for scanf calls with field width too big..
Oct 15 2021, 9:53 AM · Restricted Project

Oct 14 2021

enh added a comment to D111833: [clang] Fortify warning for scanf calls with field width too big..

"shut up and take my money!" :-)

Oct 14 2021, 2:30 PM · Restricted Project

May 21 2021

enh added a comment to D102790: [compiler-rt/profile] register __llvm_profile_write_file to run during quick_exit..

I'm going to abandon this incarnation of the patch. Once Android has a well-defined behavior of this interaction, we can call at_quick_exit here under a #ifdef.

May 21 2021, 11:48 AM · Restricted Project

Nov 30 2020

enh abandoned D87950: Make libc++ headers "just work" on all Android versions..

yeah, https://reviews.llvm.org/D90188 sounds better to me too.

Nov 30 2020, 4:57 PM · Restricted Project

Nov 17 2020

enh accepted D91664: Add a less ambiguous macro for Android version..
Nov 17 2020, 4:22 PM · Restricted Project

Nov 12 2020

enh added a comment to D90897: [llvm-objcopy] --only-keep-debug: place zero-size segment according to its parent segment.

Won't this fail if the PT_LOAD the PT_TLS should be in has a zero size too?

PT_LOAD with p_memsz is invalid on Linux. Attempting to mmap a zero-sized segment will fail.

It is both Linux and FreeBSD (according to rL288808). LLD has removeEmptyPTLoad.

This is an implementation detail that won't necessarily be true for all systems. Kernels could also quite happily ignore zero-sized segments with a trivial piece of code to check the size before calling mmap.

Nov 12 2020, 12:50 PM · Restricted Project

Sep 18 2020

enh requested review of D87950: Make libc++ headers "just work" on all Android versions..
Sep 18 2020, 3:05 PM · Restricted Project

Aug 24 2020

enh added a comment to D86321: Fix test for D77924..

sorry about the breakage... thanks for testing on real hardware!

Aug 24 2020, 3:34 PM · Restricted Project
enh committed rG96a979c0c295: Fix test for D77924. (authored by enh).
Fix test for D77924.
Aug 24 2020, 3:33 PM
enh closed D86321: Fix test for D77924..
Aug 24 2020, 3:33 PM · Restricted Project

Aug 21 2020

enh added reviewers for D86321: Fix test for D77924.: EricWF, ldionne.
Aug 21 2020, 4:00 PM · Restricted Project
enh added a comment to D86321: Fix test for D77924..

The test got failed again. I got the following output:

ubuntu@jetson8:~$ ./t.tmp.exe
Testing 29715 symbols.
1ILeeeEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE -> <-0x1.cecececececececececececececep+11983L
Got instead: <-0x1.cecececececececececececececep+11983L>
t.tmp.exe: C:/buildbot/temp/llvm-project/libcxxabi/test/test_demangle.pass.cpp:30001: void testFPLiterals(): Assertion `false' failed.
Aborted (core dumped)

looks like it does not expect trailing >.

Aug 21 2020, 10:46 AM · Restricted Project
enh updated the diff for D86321: Fix test for D77924..

Address vvereschaka's comment.

Aug 21 2020, 10:45 AM · Restricted Project

Aug 20 2020

enh added a comment to D77924: ld128 demangle: allow space for 'L' suffix..

I ran the test directly on our aarch64 board.

Aug 20 2020, 4:02 PM · Restricted Project, Restricted Project
enh requested review of D86321: Fix test for D77924..
Aug 20 2020, 4:01 PM · Restricted Project
enh added a comment to D77924: ld128 demangle: allow space for 'L' suffix..
Aug 20 2020, 9:49 AM · Restricted Project, Restricted Project

Aug 18 2020

enh added a comment to D77924: ld128 demangle: allow space for 'L' suffix..

(sorry, didn't see these comments until after i'd git pushed. i've failed to set up gmail filters so i see the mail i need to see without drowning in thousands of mails i don't need to see :-( )

Aug 18 2020, 4:27 PM · Restricted Project, Restricted Project
enh committed rGa7d0b7a786c7: ld128 demangle: allow space for 'L' suffix. (authored by enh).
ld128 demangle: allow space for 'L' suffix.
Aug 18 2020, 4:15 PM
enh closed D77924: ld128 demangle: allow space for 'L' suffix..
Aug 18 2020, 4:14 PM · Restricted Project, Restricted Project

Jun 25 2020

enh updated the diff for D77924: ld128 demangle: allow space for 'L' suffix..

clang-format the new test (but leave the other 30kloc).

Jun 25 2020, 4:23 PM · Restricted Project, Restricted Project
enh added a comment to D77924: ld128 demangle: allow space for 'L' suffix..
In D77924#2088349, @enh wrote:

Is it possible to add a test to always trigger this bug?

only if you run with hwasan.

Do the current tests fail under hwasan? If not, please add a test case that fails under hwasan, it's better than nothing.

Jun 25 2020, 1:05 PM · Restricted Project, Restricted Project
enh updated the diff for D77924: ld128 demangle: allow space for 'L' suffix..

Add test.

Jun 25 2020, 1:05 PM · Restricted Project, Restricted Project

Jun 11 2020

enh updated the diff for D77924: ld128 demangle: allow space for 'L' suffix..

Use actual upper bound.

Jun 11 2020, 1:47 PM · Restricted Project, Restricted Project
enh added a comment to D77924: ld128 demangle: allow space for 'L' suffix..

Is it possible to add a test to always trigger this bug?

Jun 11 2020, 1:47 PM · Restricted Project, Restricted Project

Apr 10 2020

enh created D77924: ld128 demangle: allow space for 'L' suffix..
Apr 10 2020, 5:47 PM · Restricted Project, Restricted Project

Nov 11 2019

enh added a comment to D69983: [libcxx] Omit unneeded locale fallbacks on Android 21+.

actually, it looks like clang is inlining the code for all the is*_l
functions anyway. you're paying for the indirection on
strcoll_l/strxfrm_l/wcscoll_l/wcsxfrm_l, but no one should be using
those anyway.

Nov 11 2019, 8:04 AM · Restricted Project

Nov 7 2019

enh added a comment to D69983: [libcxx] Omit unneeded locale fallbacks on Android 21+.

honestly, if it was me, i'd keep all these inlines even for current releases: inlining a call to the underlying function saves you a layer of useless cruft at runtime. (the Android "implementations" are just one-liners that drop the extra argument and call the underlying function, just like these inlines.)

Nov 7 2019, 9:30 PM · Restricted Project

Nov 6 2019

enh created D69929: Fix _LIBCPP_HAS_ definitions for Android..
Nov 6 2019, 9:09 PM · Restricted Project

Jul 16 2019

enh added a comment to D64299: Make ~mutex and ~condition_variable trivial with Bionic pthreads.

i assume the idea here is "all libc++ mutexes are covered by RAII anyway, so there's no value to the error checking"?

Jul 16 2019, 9:31 AM

Sep 19 2018

enh updated subscribers of D52251: [builtins] Add __emutls_unregister_key function.

yeah, we always used the low numbers internally.

Sep 19 2018, 4:05 PM

Jul 14 2015

enh added a comment to D10522: Implement target independent TLS compatible with glibc's emutls.c..

not really though --- i think you're getting that from libgcc. so
although short term you don't need to add this stuff to compiler-rt to
test, it will be necessary for anyone not using libgcc. (like us, at
some point in the future.)

Jul 14 2015, 3:49 PM