Page MenuHomePhabricator

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

jakehehrlich (Jake Ehrlich)
User

Projects

User does not belong to any projects.

User Details

User Since
May 16 2017, 11:34 AM (341 w, 4 d)

Recent Activity

Apr 28 2020

jakehehrlich added a comment to D79038: [objcopy][ELF] Handle sections not contained in PT_LOAD segments.

I don't understand the issue here personally. Can you elaborate? The formula also doesn't make sense to me since Sec.Addr isn't really well defined at that point in the code. e.g. this *is* the layout algorithm so you shouldn't be using Sec.Addr here IMO

Apr 28 2020, 3:07 PM · Restricted Project

Apr 27 2020

jakehehrlich added a comment to D78786: [llvm-objcopy] Don't specialize the all zero p_paddr case.

Yeah I don't suspect anyone will be bitten by this, it speeds up this use case, and speeds up all other use cases, and I don't think there was ever a strong reason for adding this specific behavior.

Apr 27 2020, 11:17 AM · Restricted Project
jakehehrlich accepted D78786: [llvm-objcopy] Don't specialize the all zero p_paddr case.
Apr 27 2020, 11:17 AM · Restricted Project
jakehehrlich added a comment to D78786: [llvm-objcopy] Don't specialize the all zero p_paddr case.

So confirmed from reading that this behavoir was just copied by a bit of digging in the code itself. I don't believe a real world use case came up that required this. Reading the bug that Fangrui linked but after that this has my LGTM

Apr 27 2020, 11:17 AM · Restricted Project
Herald added a reviewer for D41619: [llvm-objcopy] Use physical instead of virtual address when aligning and placing sections in binary: rupprecht.
Apr 27 2020, 11:17 AM · Restricted Project
jakehehrlich added a comment to D78786: [llvm-objcopy] Don't specialize the all zero p_paddr case.

https://reviews.llvm.org/D41619 is where I think this stuff was introduced for context.

Apr 27 2020, 11:17 AM · Restricted Project

Nov 4 2019

jakehehrlich accepted D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.

You did it!!!

Nov 4 2019, 2:11 PM · Restricted Project
jakehehrlich accepted D69739: [llvm-objcopy][ELF] Add OriginalType & OriginalFlags.

Nice. This will unblock --only-keep-debug. Thanks Fangrui!

Nov 4 2019, 11:44 AM · Restricted Project

Nov 1 2019

jakehehrlich added inline comments to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.
Nov 1 2019, 12:54 PM · Restricted Project

Oct 31 2019

jakehehrlich added a comment to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.

I'd still like to avoid changing the section type for the reason mentioned, at least until the appropriate point in finalization. I don't want this dangling assumption that casts don't always do what you think they should do.

Oct 31 2019, 10:48 AM · Restricted Project

Oct 29 2019

jakehehrlich accepted D69020: Illustrate a redirector using the example of round function from math.h..

Please wait on another reviewer to give the ok and respond to remaining comments however.

Oct 29 2019, 3:46 PM · Restricted Project
jakehehrlich added a comment to D69020: Illustrate a redirector using the example of round function from math.h..

Personally this looks good to me!

Oct 29 2019, 3:44 PM · Restricted Project
jakehehrlich added inline comments to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.
Oct 29 2019, 10:45 AM · Restricted Project
jakehehrlich added a comment to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.

I had another thought. Right now the sections first layout algorithm is actually pretty general and doesn't make too much use of being specific to a particular flag. That's a good thing. That bad bit is that we're changing the section type.

Oct 29 2019, 10:36 AM · Restricted Project

Oct 28 2019

jakehehrlich added a comment to D69188: [llvm-objcopy] Preserve .ARM.attributes section when stripping files.

My impression is that a large fleet of devices for some reason decided to do this much like the infamous 8-byte aligned note bug. I think we should allow people to cope while giving them the best results possible. I'm personally in favor of adding this for now and removing it later personally.

Oct 28 2019, 6:06 PM · Restricted Project
jakehehrlich added a comment to D69020: Illustrate a redirector using the example of round function from math.h..

I guess my question is more, whats the evidence that there isn't a way to avoid the two call overhead? The use case makes sense to me but my impression is that __round_redirector could be declared to have extern "C" linkage and then llvm_libc::round can be an alias for it. That gets rid of 1 layer of indirection. Getting rid of the next call seems more gross to me but I think some additional objcopy magic can be done to make __round_redirector an alias for ::round then I think this would all link correctly, right?

Oct 28 2019, 12:03 PM · Restricted Project
jakehehrlich added inline comments to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.
Oct 28 2019, 11:53 AM · Restricted Project
jakehehrlich added a comment to D67137: [llvm-objcopy] Implement --only-keep-debug for ELF.

This looks highly promising to me BTW.

Oct 28 2019, 11:46 AM · Restricted Project

Oct 25 2019

jakehehrlich added a comment to D69020: Illustrate a redirector using the example of round function from math.h..

I've missed some emails and the round table at llvm. Could you describe more about why this mechanism for redirecting is used? It seems to me that there should be a way for LLVM_LIBC_ENTRYPOINT(round) to be an alias for ::round rather than requiring two (likely tail) calls here. Could you motivate this mechanism?

Oct 25 2019, 2:38 PM · Restricted Project

Oct 11 2019

jakehehrlich committed rGcde860a1c996: [libFuzzer] Don't prefix absolute paths in fuchsia. (authored by jakehehrlich).
[libFuzzer] Don't prefix absolute paths in fuchsia.
Oct 11 2019, 4:42 PM
jakehehrlich closed D68774: [libFuzzer] Don't prefix absolute paths in fuchsia..
Oct 11 2019, 4:42 PM · Restricted Project, Restricted Project
jakehehrlich committed rL374612: [libFuzzer] Don't prefix absolute paths in fuchsia..
[libFuzzer] Don't prefix absolute paths in fuchsia.
Oct 11 2019, 4:33 PM
jakehehrlich added a comment to D68886: Remove unnecessary codes in llvm-dwarfdump.

I'm not sure why I was added but this looks fine to me. If it compiles and runs on everyone's system I can't see how this could be anything but good.

Oct 11 2019, 2:13 PM · debug-info, Restricted Project

Oct 9 2019

jakehehrlich committed rGe7bfce786369: [libFuzzer] Fix Alarm callback in fuchsia. (authored by jakehehrlich).
[libFuzzer] Fix Alarm callback in fuchsia.
Oct 9 2019, 2:03 PM
jakehehrlich committed rL374228: [libFuzzer] Fix Alarm callback in fuchsia..
[libFuzzer] Fix Alarm callback in fuchsia.
Oct 9 2019, 2:03 PM
jakehehrlich closed D68724: [libFuzzer] Fix Alarm callback in fuchsia..
Oct 9 2019, 2:02 PM · Restricted Project, Restricted Project
jakehehrlich accepted D68724: [libFuzzer] Fix Alarm callback in fuchsia..

LGTM except a nit

Oct 9 2019, 1:19 PM · Restricted Project, Restricted Project

Oct 7 2019

jakehehrlich added a comment to D68146: [FileCheck] Implement --ignore-case option..

Seems like a good idea to me!

Oct 7 2019, 11:43 AM · Restricted Project

Sep 24 2019

jakehehrlich added a comment to D67689: [llvm-objcopy] Add support for --gap-fill and --pad-to options.

"Interstitial data" is data covered by by a segment but not a section. Gap fill should IMO set the bytes for all of that space. This is consistent with James's recommendation how things work. --pad-to when padding to a page aligned address this can for instance ensure that all executable bytes contain either valid code or a trap instruction.

Sep 24 2019, 3:23 PM · Restricted Project
jakehehrlich added a comment to D67689: [llvm-objcopy] Add support for --gap-fill and --pad-to options.

What's the use case for these two flags? Where has it come up in actual practice that these were needed? I think they basically exist to cover an issue left by the linker that lld no longer leaves. I'm particularly hesitant to add --pad-to

Sep 24 2019, 2:53 PM · Restricted Project
jakehehrlich added a comment to D67689: [llvm-objcopy] Add support for --gap-fill and --pad-to options.

--gap-fill should likely overwrite all interstitial data which includes data at the end of loadable segments not just the data between sections that we previously preserved. I view the --gap-fill use case as being a use case for things like lld's trap filling. Yes this violates the strict interpretation of "don't overwrite segment contents" but its ok in this case I think. Making binaries more secure is a good thing!

Sep 24 2019, 2:51 PM · Restricted Project

Sep 19 2019

jakehehrlich added a comment to D67693: [llvm-objcopy][test] Clean up -B tests.

To be clear though, we have a test ensuring that -B is ignored, correct?

Sep 19 2019, 10:26 AM · Restricted Project

Sep 18 2019

jakehehrlich accepted D67139: [llvm-objcopy] Refactor ELF-specific config out to ELFCopyConfig. NFC..
Sep 18 2019, 4:13 PM · Restricted Project

Sep 17 2019

jakehehrlich added inline comments to D67656: [llvm-objcopy] Add --set-section-alignment.
Sep 17 2019, 11:44 AM · Restricted Project

Sep 16 2019

jakehehrlich committed rG4b23c24bc8ec: [libFuzzer] Always print DSO map on Fuchsia libFuzzer launch (authored by jakehehrlich).
[libFuzzer] Always print DSO map on Fuchsia libFuzzer launch
Sep 16 2019, 5:36 PM
jakehehrlich committed rL372056: [libFuzzer] Always print DSO map on Fuchsia libFuzzer launch.
[libFuzzer] Always print DSO map on Fuchsia libFuzzer launch
Sep 16 2019, 5:35 PM
jakehehrlich closed D66233: Always print DSO map on Fuchsia libFuzzer launch.
Sep 16 2019, 5:35 PM · Restricted Project, Restricted Project
jakehehrlich accepted D67610: [llvm-objcopy] - Remove python invocations from 2 test cases..
Sep 16 2019, 12:06 PM · Restricted Project

Sep 13 2019

jakehehrlich accepted D67144: [llvm-objcopy] Default --output-target to --input-target when unspecified.

I'm happy with this since the votes seem to favor this behavior.

Sep 13 2019, 4:06 PM · Restricted Project
jakehehrlich accepted D67481: [ELF] Add -z separate-loadable-segments to complement separate-code and noseparate-code.

LGTM! Thanks for working on this.

Sep 13 2019, 4:06 PM · Restricted Project
jakehehrlich added a comment to D67139: [llvm-objcopy] Refactor ELF-specific config out to ELFCopyConfig. NFC..

What about having ELFcopyConfig inherit from CopyConfig?

Sep 13 2019, 3:56 PM · Restricted Project

Sep 4 2019

jakehehrlich added a comment to D67090: [llvm-objcopy][llvm-strip] Support --only-keep-debug.

We should certainly check perf. I'd also like to wait on this until Roland gets back in order for him to chime in since he had specific examples of use cases where program headers are required as I recall. Specifically the section virtual addresses are not sufficient in the arcane case of prelinking but prelinking isn't really something I know very much about.

Sep 4 2019, 4:31 PM · Restricted Project
jakehehrlich added a comment to D67144: [llvm-objcopy] Default --output-target to --input-target when unspecified.

If our intent is to prefer using -O over -B when possible (as seems to be the case) then this all looks good to me. I just want an explanation if one exists.

Sep 4 2019, 11:25 AM · Restricted Project
jakehehrlich added a comment to D67144: [llvm-objcopy] Default --output-target to --input-target when unspecified.

So it seems like we've been preferring the architecture implied by -O instead of the one preferred by -B. My intuition is that it should be the opposite. Did we find a reason to prefer using -O?

Sep 4 2019, 11:21 AM · Restricted Project

Sep 3 2019

jakehehrlich added a comment to D67090: [llvm-objcopy][llvm-strip] Support --only-keep-debug.

The desired behavior is to keep the program headers intact as much as possible. elf utils for instance just flatout ignores them in this case. Program headers are needed by many tools to matchup the virtual addresses with the sections. I think outside of virtual address and memory size there isn't much that's actully needed in practice however. Ideally we wouldn't even change the file size of segments but I think I've structured llvm-objcopy in a way that makes that difficult unfortunately. I'm 100% ok using a distinct layout algorithm for --only-keep-debug as its a special snowflake where the meaning of segments drastically changes and segments are critical to layout. I'm also ok changing the file size of segments as I don't think its likely to cause a problem with tools like debuggers (there also exist other tools that aren't debuggers that need to perform the same kinds of actions).

Sep 3 2019, 4:24 PM · Restricted Project
jakehehrlich added a comment to D46791: Make -gsplit-dwarf generally available.

This is obsolete I think. Clang doesn't use llvm-objcopy for this anymore if I understand correct. @pcc should be able to confirm.

Sep 3 2019, 1:40 PM

Aug 26 2019

jakehehrlich accepted D66712: [Driver] Enable ShadowCallStack, not SafeStack, by default on AArch64 Fuchsia.

Landing aside, this looks good to me

Aug 26 2019, 4:19 PM · Restricted Project

Aug 2 2019

jakehehrlich accepted D65622: [clang-doc] Update documentation.

This looks fine to me

Aug 2 2019, 4:35 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D65628: [clang-doc] Parallelize reducing phase.

LGTM other than a couple atomicity issues.

Aug 2 2019, 4:10 PM · Restricted Project, Restricted Project
jakehehrlich added inline comments to D65483: [clang-doc] Add link to source code in file definitions.
Aug 2 2019, 3:49 PM · Restricted Project, Restricted Project
jakehehrlich accepted D65030: [clang-doc] Add second index for sections within info's content.

This looks awesome!

Aug 2 2019, 3:28 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D65003: [clang-doc] Add index in each info html file.

I think everything but the implementation of genIndex being confusing looks good to me. I haven't actually groked how that code works yet other than the fact that it generates the index tree that I expect and all the surrounding code looks good to me. I understand that some of the trickiness here comes from the fact that you're building from a list of values but trying to generate the tree structure from that list which is hard. I think we can structure that code better; lets see if we can't device a better algorithm.

Aug 2 2019, 3:03 PM · Restricted Project
jakehehrlich accepted D65627: [clang-doc] Add flag to continue after mapping errors.
Aug 2 2019, 2:36 PM · Restricted Project, Restricted Project
jakehehrlich accepted D64958: [clang-doc] Fix link generation.

The code looks fine to me but I don't understand the global details of this. Hopefully Julie can still review things from there but if not we don't get timely reviews then we can still land this.

Aug 2 2019, 12:24 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D65627: [clang-doc] Add flag to continue after mapping errors.

What's the use case for this and how do we handle return codes when an error occurs but we continue on?

Aug 2 2019, 12:05 PM · Restricted Project, Restricted Project

Jul 23 2019

jakehehrlich added a comment to D64281: [Object] Create MutableELFObject Class for Doing Mutations on ELFObjectFiles [Part 1].

Sorry there's a lot for me to catch up on it would seem. Would it be possible to get an of how having a mutable subclass of ELFObjectFile works us towards our goal of having a library?

Jul 23 2019, 1:59 PM · Restricted Project

Jul 18 2019

jakehehrlich added a comment to D64790: [LLVM][NFC] Adding an Alignment type to LLVM.

First things first, thx a lot for the review. I really appreciate it.

Ok so I thought about endianness more and I think that's not an issue because computations are generally done in native endianness.

Ok

I do however think you should definitely have either the 64 bit version be the default or have both a 32 and 64 bit version. This type is most useful in cases where tools like lld, llvm-objcopy, yaml2obj, etc... would be using an internal structure or temporary variable and generally you want to handle both 32-bit and 64-bit operations in these cases. The solution is always to default to the highest bit size which is 64-bits because it will handle the 32-bit case just fine. Unless there's a compelling reason to not use 64-bits I think you should just make it your default. Certainly before lld or llvm-objcopy can use this we need to have a 64-bit version.

Throughout LLVM we mostly use unsigned to represent an alignment. I don't know for sure what was the rationale for using it instead of uint64_t, it can be for historic reasons (just use the machine's word type) or for space reasons.
A quick estimation via git grep -E "^\s+unsigned [Aa]lign.*" | wc -l gives the following number of occurrences (for the whole llvm-project repo)

  • unsigned 200
  • uint16_t 4
  • uint32_t 132
  • uint64_t 44

One of the occurrences for the uint16_t is in llvm/include/llvm/CodeGen/TargetLowering.h so for this one at least is seems that storage is important.

This tends to prove that the Alignment type should be parameterized as you suggest.

Jul 18 2019, 1:32 PM · Restricted Project
jakehehrlich added a comment to D64539: [clang-doc] Add stylesheet to generated html docs.

I'm blindly accepting the CSS but all other code looks fine. I still have that chrome bug where I can't LGTM sometimes but consider this reviewed and accepted by me as well

Jul 18 2019, 11:40 AM · Restricted Project, Restricted Project

Jul 16 2019

jakehehrlich added inline comments to D64790: [LLVM][NFC] Adding an Alignment type to LLVM.
Jul 16 2019, 2:52 PM · Restricted Project
jakehehrlich added a comment to D64790: [LLVM][NFC] Adding an Alignment type to LLVM.

Ok so I thought about endianness more and I think that's not an issue because computations are generally done in native endianness. I do however think you should definitely have either the 64 bit version be the default or have both a 32 and 64 bit version. This type is most useful in cases where tools like lld, llvm-objcopy, yaml2obj, etc... would be using an internal structure or temporary variable and generally you want to handle both 32-bit and 64-bit operations in these cases. The solution is always to default to the highest bit size which is 64-bits because it will handle the 32-bit case just fine. Unless there's a compelling reason to not use 64-bits I think you should just make it your default. Certainly before lld or llvm-objcopy can use this we need to have a 64-bit version.

Jul 16 2019, 1:50 PM · Restricted Project

Jul 12 2019

jakehehrlich added a comment to D63828: Add FileWriter to GSYM and encode/decode functions to AddressRange and AddressRanges.

I think teaching more raw_ostreams about seeking is probably right. I started to propose a solution but it boiled down to make our own abstractions over existing ostreams and what amounts to raw_string_ostream. I think raw_string_ostream and raw_os_ostream should both support seeking

Jul 12 2019, 2:37 PM · Restricted Project

Jul 8 2019

jakehehrlich added a comment to D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.

(sorry I just realized this was already landed, I was out when it was bumped).

Jul 8 2019, 4:02 PM · Restricted Project
jakehehrlich reopened D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.
Jul 8 2019, 3:53 PM · Restricted Project
jakehehrlich added a comment to D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.

Sorry looking now.

Jul 8 2019, 3:50 PM · Restricted Project
jakehehrlich added a comment to D63663: [clang-doc] Add html links to references.

The code looks good to me. I'll let Julie give the final architectural approval.

Jul 8 2019, 3:01 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D63857: [clang-doc] Add a structured HTML generator.

As in I'm not quite ready for this to land but It looks preety solid. I think if you respond to those comments I'll take one last look and then give an actual accept

Jul 8 2019, 1:22 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D63857: [clang-doc] Add a structured HTML generator.

This looks good to me!

Jul 8 2019, 1:21 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D64236: [llvm-objcopy] Don't change permissions of non-regular output files.

I can't verify the windows parts today. If you can wait until tomorrow I can run it on a windows machine to test it.

Jul 8 2019, 10:59 AM · Restricted Project
jakehehrlich accepted D64236: [llvm-objcopy] Don't change permissions of non-regular output files.

LGTM

Jul 8 2019, 10:51 AM · Restricted Project

Jul 2 2019

jakehehrlich accepted D63820: [docs][llvm-objcopy] Write documentation for llvm-objcopy.

(fixed it)

Jul 2 2019, 2:41 PM · Restricted Project
jakehehrlich added a comment to D63820: [docs][llvm-objcopy] Write documentation for llvm-objcopy.

LGTM (sorry a chrome bug is preventing me from using drop down menus...sigh)

Jul 2 2019, 2:41 PM · Restricted Project
jakehehrlich added a comment to D64014: [Object/ELF.h] - Improve error reporting..

Overall I think this looks good. Others have been following the details far more closely that I've been so I'll defer to them.

Jul 2 2019, 2:33 PM · Restricted Project
jakehehrlich added a comment to D63807: [llvm-objcopy] Add --only-keep-debug for ELF.

Speaking with Roland on this it seems to be that the established protocol for how you match up vaddrs is to use the program headers. Roland invoked arcane scary references about prelinking and other sharp corners about other possible methods but I don't know or understand the details. The guidance I'm getting is that we need to keep the program headers virtual address space correct. He has stated the program headers are used by many existing tools and that the consumers are more varied than just the two major debuggers. If you need more than a "here be dragons" from Roland I'll probe for more information but I'm content enough with just knowing that the existing protocol requires using program headers.

Jul 2 2019, 12:03 PM · Restricted Project
jakehehrlich added a comment to D63807: [llvm-objcopy] Add --only-keep-debug for ELF.

My feeling is that segments are not important. The offsets of those NOBITS sections are not important. If segments are laid out weirdly after objcopy --only-keep-debug, I think it doesn't matter if llvm-objcopy also fails to layout the segments in a sensible way. The important thing here is that debuggers can correctly load debug info from such --only-keep-debug processed files. So I asked you test the workflow:

Jul 2 2019, 11:50 AM · Restricted Project
jakehehrlich added a comment to D63807: [llvm-objcopy] Add --only-keep-debug for ELF.

I think this change as is should not go in. I think I'd like to explain some details that I've learned about this flag and how it functions in practice since I've had to consume binaries produced by this and it's equivalent in eu-strip.

Jul 2 2019, 11:45 AM · Restricted Project
jakehehrlich added a reviewer for D63807: [llvm-objcopy] Add --only-keep-debug for ELF: jakehehrlich.
Jul 2 2019, 11:12 AM · Restricted Project

Jul 1 2019

jakehehrlich added a comment to D64014: [Object/ELF.h] - Improve error reporting..

How important is using ErrSaver. Isn't it possible to just use std::string in these error cases?

Jul 1 2019, 4:34 PM · Restricted Project
jakehehrlich added a comment to D63820: [docs][llvm-objcopy] Write documentation for llvm-objcopy.

This is *awesome*. This is much more clear and precise that the GNU objcopy documentation!

Jul 1 2019, 11:58 AM · Restricted Project

Jun 28 2019

jakehehrlich accepted D63962: [clang-doc] Fix segfault in comment sorting.
Jun 28 2019, 4:57 PM · Restricted Project, Restricted Project
jakehehrlich added inline comments to D63857: [clang-doc] Add a structured HTML generator.
Jun 28 2019, 3:45 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D63857: [clang-doc] Add a structured HTML generator.

Can you upload git diff -U100000 <commit before genHTML> functions so that I can see the code without it being fragmented? It's hard to parse some of the more fragmented stuff here

Jun 28 2019, 3:34 PM · Restricted Project, Restricted Project
jakehehrlich added a comment to D63828: Add FileWriter to GSYM and encode/decode functions to AddressRange and AddressRanges.

This all LGTM now. Please wait long enough for others to get their say but overall I'm happy now.

Jun 28 2019, 3:07 PM · Restricted Project
jakehehrlich added a comment to D63180: [clang-doc] Adds HTML generator.

I'm getting confused in all the different patches. I reviewed the HTML generator one like yesterday and was awaiting changes. Doesn't this do the same thing?

Jun 28 2019, 2:39 PM · Restricted Project

Jun 27 2019

jakehehrlich added a comment to D63857: [clang-doc] Add a structured HTML generator.

Overall looks better. One of my comments causes a sweeping change to occur so I'll respond back after thats done.

Jun 27 2019, 2:31 PM · Restricted Project, Restricted Project

Jun 26 2019

jakehehrlich added a comment to D63828: Add FileWriter to GSYM and encode/decode functions to AddressRange and AddressRanges.

How invasive would it be to change this to not use an ostream but to instead use an in memory buffer? It would be useful to know where the use cases come from. Do we intend to use this inside of MC? Do we intend to output raw files? When outputting to MC is the space preallocated? Is there a reason that using an ostream would let us avoid a copy? If we can't avoid a copy or theres not an easy way to know the total size in advance then I'm pro using an std::vector<uint8_t> as the underlying storage mechanism instead of an ostream.

Jun 26 2019, 2:51 PM · Restricted Project

Jun 25 2019

jakehehrlich accepted D63104: Add GSYM utility files along with unit tests..

Sorry about the lull here. This LGTM

Jun 25 2019, 11:01 AM · Restricted Project

Jun 24 2019

jakehehrlich added a comment to D63180: [clang-doc] Adds HTML generator.

I got to the 'genHTML' functions and I decided that this general approach is not great.

Jun 24 2019, 12:24 PM · Restricted Project
jakehehrlich added a comment to D62970: [clang-doc] De-duplicate comments and locations.

LGTM

Jun 24 2019, 11:17 AM · Restricted Project, Restricted Project

Jun 20 2019

jakehehrlich added a comment to D63239: [llvm-objcopy][NFC] Refactor output target parsing.

General idea looks good to me!

Jun 20 2019, 11:33 AM · Restricted Project

Jun 17 2019

jakehehrlich added inline comments to D61767: [llvm-elfabi] Emit ELF header and string table section.
Jun 17 2019, 6:12 PM · Restricted Project
jakehehrlich added inline comments to D63104: Add GSYM utility files along with unit tests..
Jun 17 2019, 6:03 PM · Restricted Project

Jun 14 2019

jakehehrlich added inline comments to D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.
Jun 14 2019, 1:57 PM · Restricted Project
jakehehrlich added a comment to D63104: Add GSYM utility files along with unit tests..

A bunch of nits but this looks good to me.

Jun 14 2019, 12:44 PM · Restricted Project

Jun 13 2019

jakehehrlich accepted D63238: [llvm-objcopy] Add elf32-sparc and elf32-sparcel target.
Jun 13 2019, 5:23 PM · Restricted Project

Jun 12 2019

jakehehrlich added a comment to D63104: Add GSYM utility files along with unit tests..

Sorry I wasn't very quick to get to this. This looks really good to me. I'm going to go over some of the this with a fine tooth comb tomorrow but It basically looks good as at high level glance.

Jun 12 2019, 5:40 PM · Restricted Project

Jun 10 2019

jakehehrlich added inline comments to D61767: [llvm-elfabi] Emit ELF header and string table section.
Jun 10 2019, 1:04 PM · Restricted Project
jakehehrlich updated the diff for D61767: [llvm-elfabi] Emit ELF header and string table section.

Addressed Armando's comments

Jun 10 2019, 12:59 PM · Restricted Project

Jun 6 2019

jakehehrlich added a comment to D62970: [clang-doc] De-duplicate comments and locations.

Actually if we can make Description a hash set that would be best. I think using std::set would require an awkward < operator to be defined. There should be standard ways of getting hashes out of all the string and vector types and you can use hash_combine to combine all of these into a single hash.

Jun 6 2019, 2:48 PM · Restricted Project, Restricted Project
jakehehrlich added inline comments to D62970: [clang-doc] De-duplicate comments and locations.
Jun 6 2019, 2:32 PM · Restricted Project, Restricted Project

Jun 5 2019

jakehehrlich added a comment to D53379: GSYM symbolication format.

This is just where I got tired today but I think I can recommend how to split this up so I could move faster and provide more useful high level review. Prior to splitting I'll keep chugging away for at least a bit each day.

Jun 5 2019, 5:33 PM · Restricted Project