Page MenuHomePhabricator

jakehehrlich (Jake Ehrlich)
User

Projects

User does not belong to any projects.

User Details

User Since
May 16 2017, 11:34 AM (118 w, 8 h)

Recent Activity

Fri, Aug 2

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

This looks fine to me

Fri, Aug 2, 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.

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

This looks awesome!

Fri, Aug 2, 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.

Fri, Aug 2, 3:03 PM · Restricted Project
jakehehrlich accepted D65627: [clang-doc] Add flag to continue after mapping errors.
Fri, Aug 2, 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.

Fri, Aug 2, 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?

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

Tue, Jul 23

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?

Tue, Jul 23, 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
jakehehrlich accepted D62898: [llvm-objcopy] - Emit error and don't crash if program header reaches past end of file..

"goes past the end of the file" is the phrasing that I've seen GNU tools use and gets more to the point so I agree with James. Other than that this looks good to me!

Jun 5 2019, 3:24 PM · Restricted Project

Jun 4 2019

jakehehrlich added a reviewer for D61767: [llvm-elfabi] Emit ELF header and string table section: smeenai.
Jun 4 2019, 7:48 PM · Restricted Project
jakehehrlich added a comment to D62364: llvm-objcopy: Implement --extract-partition and --extract-main-partition..

I'm happy with this as is but I'd like @jhenderson, @rupprecht, and @alexshap to take a look since this represents a fairly major feature addition even if the code is pretty small. I don't believe this imposes any extra assumptions or requirements on the rest of the code however.

Jun 4 2019, 2:22 PM · Restricted Project
jakehehrlich accepted D62817: [test][llvm-objcopy] Test llvm-objcopy with standard streams.

Neat! I didn't even know this was possible TBH

Jun 4 2019, 12:30 AM · Restricted Project

May 31 2019

jakehehrlich accepted D62655: [llvm-readobj/llvm-readelf] - Remove gnu-relocations.test completely..
May 31 2019, 3:13 PM · Restricted Project
jakehehrlich added a comment to D62711: [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar.

It would be nice to get tests for these cases, although I realize that can be difficult as it requires malformed inputs.

May 31 2019, 3:13 PM · Restricted Project
jakehehrlich accepted D62711: [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar.

Might label as NFC.

May 31 2019, 3:07 PM · Restricted Project
jakehehrlich added inline comments to D62718: [llvm-objcopy] Change handling of output file permissions.
May 31 2019, 3:06 PM · Restricted Project
jakehehrlich accepted D62718: [llvm-objcopy] Change handling of output file permissions.

This looks good to me but please have someone else accept first as well.

May 31 2019, 3:03 PM · Restricted Project
jakehehrlich added inline comments to D62364: llvm-objcopy: Implement --extract-partition and --extract-main-partition..
May 31 2019, 2:58 PM · Restricted Project
jakehehrlich added a comment to D62364: llvm-objcopy: Implement --extract-partition and --extract-main-partition..

Ok I spoke offline about some of my questions with Peter. Here are some useful facts:

May 31 2019, 2:58 PM · Restricted Project

May 30 2019

jakehehrlich added a comment to D62620: [llvm-objcopy] Fix SHT_GROUP ordering..

Alternatively we could only sort program headers in the layout algorithm and then just layout sections in whatever order we please. It will just mean that our layout won't mirror the input but it will be valid.

May 30 2019, 11:42 AM · Restricted Project
jakehehrlich added a comment to D62620: [llvm-objcopy] Fix SHT_GROUP ordering..

Alternatively we can sort by Index to allow ourselves to make mistakes in maintaining the order along the way but I think I'd rather not do that since that's just a hack.

May 30 2019, 11:41 AM · Restricted Project
jakehehrlich added a comment to D62620: [llvm-objcopy] Fix SHT_GROUP ordering..

Can we just sort in the layout code instead of sorting everything? Then we don't have to sort at all. I think we've largely been good about making operations stable so order should be maintained if just don't sort.

May 30 2019, 11:41 AM · Restricted Project

May 29 2019

jakehehrlich accepted D62578: [llvm-objcopy][MachO] Print an error message on use of unsupported options.
May 29 2019, 2:09 PM · Restricted Project
jakehehrlich added a comment to D62364: llvm-objcopy: Implement --extract-partition and --extract-main-partition..

A few questions

May 29 2019, 12:42 PM · Restricted Project
jakehehrlich added a comment to D62594: [llvm-readobj] - Rewrite reloc-types.test to use YAML. NFCI..

If it isn't too much work I'd prefer these be split up as well. Otherwise this looks like a strict improvement to me!

May 29 2019, 12:20 PM · Restricted Project

May 23 2019

jakehehrlich accepted D58426: llvm-objcopy: Change sectionWithinSegment() to use virtual addresses instead of file offsets for SHT_NOBITS sections..

I think this is good. The current behavior treats sectionWithinSegment as not mattering in this case because this predicate is used for getting file offsets right and ignores the SHT_NOBITS case. This is a strict improvement that just sets the predicate in such a way that llvm-objcopy will output the conventional offset now.

May 23 2019, 5:15 PM · Restricted Project

May 22 2019

jakehehrlich accepted D62260: [llvm-objdump] - Many minor NFC changes to cleanup/improve the code in ELF/Object.cpp..

Solid improvement. LGTM.

May 22 2019, 11:29 AM · Restricted Project

May 21 2019

jakehehrlich accepted D62072: [llvm-objcopy] Tidy up error messages.
May 21 2019, 8:16 PM · Restricted Project
jakehehrlich added a comment to D62072: [llvm-objcopy] Tidy up error messages.

Thanks for fixing all of my mistakes!

May 21 2019, 8:15 PM · Restricted Project

May 20 2019

jakehehrlich accepted D61993: [llvm-objcopy] Add file names to error messages.

Awesome. LGTM. Tell me if you want me or someone else to land it. You can also email Chris Latner to get access yourself.

May 20 2019, 12:49 PM · Restricted Project

May 16 2019

jakehehrlich added inline comments to D61767: [llvm-elfabi] Emit ELF header and string table section.
May 16 2019, 1:27 PM · Restricted Project
jakehehrlich added a comment to D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.

I'm still confused. If the behavior intended only has to do with the existence of relocations why are we making this change? A clear difference of behavior needs to be pointed out and that hasn't been made clear.

May 16 2019, 1:27 PM · Restricted Project
jakehehrlich added a comment to D61937: [llvm-readelf] - Rework how we parse the .dynamic section..

I have the same question as James with respect to requiring PT_DYNAMIC but otherwise the code looks good to me. I'm still looking at the tests.

May 16 2019, 1:17 PM · Restricted Project
jakehehrlich added a comment to D61969: llvm-objdump:Fix Bugzilla ID 41862 to support checking addresses of disassembled object.

Also what does GNU objdump do in this case?

May 16 2019, 1:12 PM · Restricted Project
jakehehrlich added a comment to D61969: llvm-objdump:Fix Bugzilla ID 41862 to support checking addresses of disassembled object.

When uploading changes make sure to upload the whole context. If using git diff use git diff -U100000 or some other large number to get all of the surrounding context.

May 16 2019, 1:09 PM · Restricted Project
jakehehrlich added reviewers for D61969: llvm-objdump:Fix Bugzilla ID 41862 to support checking addresses of disassembled object: rupprecht, echristo, jhenderson, grimar.
May 16 2019, 1:06 PM · Restricted Project
jakehehrlich added a comment to D61969: llvm-objdump:Fix Bugzilla ID 41862 to support checking addresses of disassembled object.

link to the bug for the lazy: https://bugs.llvm.org/show_bug.cgi?id=41862

May 16 2019, 1:06 PM · Restricted Project

May 13 2019

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

I'm still a bit unclear. Does it strip symbols that are duplicates of symbols in .dynsym? Does it just get rid of the the whole symbol table no matter what?

May 13 2019, 1:47 PM · Restricted Project

May 10 2019

jakehehrlich added a comment to D60974: Clang IFSO driver action..

This shouldn't emit the .tbe format at all, the .tbe format is meant to be in near 1-1 correspondence with .so files, not with .o files. It has things like DT_NEEDED, and DT_SONAME related information that don't make sense for .o files for instance.

May 10 2019, 10:25 AM · Restricted Project, Restricted Project

May 9 2019

jakehehrlich added a comment to D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

The following is the first split. Subsequent splits will be much smaller (adding support for program headers, adding support for soname and needed, adding support for symbols, etc...): https://reviews.llvm.org/D61767#change-LCioCf1j7osU

May 9 2019, 3:55 PM · Restricted Project
jakehehrlich created D61767: [llvm-elfabi] Emit ELF header and string table section.
May 9 2019, 3:55 PM · Restricted Project
jakehehrlich added a comment to D61672: [llvm-objcopy] Allow strip symtab in executables and DSOs.

I'm confused as to what this is trying to accomplish. This really just marks every symbol as unneeded in a DSO and keeps the behavior for other cases. In that case why not strip the symbol table all togethor? This is a very round about way to accomplish that.

May 9 2019, 11:00 AM · Restricted Project

May 6 2019

jakehehrlich added a comment to D61510: [SanitizerCoverage] Use different module ctor names for trace-pc-guard and inline-8bit-counters.

Can you explain how this occurred a bit more and how this is solving the issue?

May 6 2019, 11:02 AM · Restricted Project

May 3 2019

jakehehrlich updated the diff for D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.
  1. No more TLS stuff but STT_TLS symbol types are preserved which appears to be sufficient for all known use cases
  2. Fixed all the tests, accidental extra tests, minor issues, and made all tests pass.
May 3 2019, 4:44 PM · Restricted Project
jakehehrlich added a comment to D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

@MuskRay Have you checked other linkers or tools?

May 3 2019, 3:11 PM · Restricted Project
jakehehrlich updated the diff for D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

Ok so I went digging on the PT_TLS and tls section issues. Seems like removing both the segment and the section is the right way to go.

May 3 2019, 3:11 PM · Restricted Project
jakehehrlich added a comment to D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

Is llvm-elfabi used to create interface shared objects? Do you use it to create real(runnable) modules?

If not and if section/segment specification is not required, it can be very simple.
You just need the symbol table and very little other information.
There is one place in lld that checks if the symbol is in a readonly segment (addCopyRelSymbol).
1 PT_LOAD(RWX) + 1 PT_GNU_RELRO works just fine. You don't even need PT_TLS - STT_TLS symbols can be placed in an arbitrary section. Linkers and various binutils don't validate PT_TLS.

May 3 2019, 1:07 PM · Restricted Project
jakehehrlich abandoned D59531: [ELF] Produce multiple PT_NOTE segments as needed.
May 3 2019, 12:43 PM · Restricted Project

May 2 2019

jakehehrlich accepted D61296: [ELF] Place SHT_NOTE sections with the same alignment into one PT_NOTE.

Ok so I'm good with this. We would like to land this ASAP.

May 2 2019, 2:12 PM · Restricted Project
jakehehrlich added a comment to D60974: Clang IFSO driver action..

Jake, I am still not sure what you would prefer for moving forward. The current patch can output the yaml format I originally proposed or the one that looks similar to the one you proposed. What I need to know is:

Do you want the merging if the "ifo" files to happen inside of llvm-elfabi?
Do you care if we upstream the yaml we proposed as a first step (which is really a distilled version of that yaml2obj can consume anyways. this right now functions actually) ???
Or, would you rather the ifo files be merged by a different separate tool (something maybe called llvm-ifsogen)???

May 2 2019, 1:55 PM · Restricted Project, Restricted Project
jakehehrlich added inline comments to D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.
May 2 2019, 1:37 PM · Restricted Project

May 1 2019

jakehehrlich updated the diff for D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

Ok we're getting closer

May 1 2019, 8:11 PM · Restricted Project
jakehehrlich added a comment to D55864: [elfabi] Write program headers, .dynamic, .dynstr, and .shstrtab.

I can't upload a new patch right now but I plan on making all recommended changes, even the ones I didn't reply to.

May 1 2019, 1:36 PM · Restricted Project
jakehehrlich accepted D61343: [llvm-objcopy] Cache gnu_debuglink's target CRC.

This code looks good to me and the use case seems valid. I'll give my LGTM but please wait for others.

May 1 2019, 1:04 PM · Restricted Project
jakehehrlich accepted D61377: [llvm-strip]Add --no-strip-all to disable --strip-all behaviour (including default stripping).

Good idea! The code looks good as well as testing.

May 1 2019, 12:53 PM · Restricted Project