- move encoding bitfield comments outside their functions
Mon, Oct 5
- amend according to review feedback
@smeenai and I agreed that this diff should contain a complete set of tests.
- rebase & amend according to review feedback
Sun, Oct 4
Sat, Oct 3
The encodings of adrp, add, stp, ldr, ... are described here:
Fri, Oct 2
- correct some reloc length validity sets in arm64RelocAttrs
Thu, Oct 1
- add stubs support
Wed, Sep 30
- remove some left-over X86_64 code
Sep 24 2020
All devs do incremental builds. Of course incremental builds should work.
I went ahead and fixed this in https://github.com/llvm/llvm-project/commit/0389eff4047a74bb1ba6c0603c9002b5c73b203e
Going forward, please don't leave stuff broken overnight.
Feel free to land when you have the -pie + compact unwind testcase.
Sep 23 2020
In lld/MachO/SyntheticSections.cpp, there are three instances of ...
@thakis, the failure only affects incremental build & test. Everything is good on a clean tree. What do you advise now?
Be sure to remove Flags<[HelpHidden]> from ldd/MachO/Options.td for these.
Sep 22 2020
- Add overview comments to tests
I only skip 0x when base == 16. My change does nothing to alter the base == 0 case, and GetAutoSenseRadix continues to operate as before.
- revert unnecessary parens in MachHeaderSection::getSize()
- Count instances of LCDylib inside constructor rather than at construction sites
- Elide uninteresting columns from llvm-objdump --all-headers output to reduce length and noise of the lines
- Add tests for all types of LCDylib: self, load, reexport
- Add tests for null-effect of -headerpad_max_install_names when no LCDylibs are present
- Add test for -headerpad N exceeding size of -headerpad_max_install_names
- Fix braino in findLibrary() (consecutive returns: first always shadows second)
- Refine tests to catch the braino
- add testcase for 0X prefix alongside 0x
- resequence diff stack so this can land now
- check args once and save result in Config::searchDylibsFirst
- split some long command lines in lld/test/MachO/link-search-order.s
Sep 21 2020
- add a test case
I just added the rationale to the diff summary.
Sep 19 2020
Sep 18 2020
- Remove redundant change to lld/MachO/OutputSegment.cpp
- Final round of cleanups & review-feedback integration
Sep 17 2020
- add UNWIND_INFO_COMMON_ENCODINGS_MAX
- revise, expand & prune comments
- improve variable names for CU entry folding
- clean-up some ugly special cases by excluding __LD from outputSegments
Sep 12 2020
- Folding adjacent CU entries requires a vector with monotonically increasing functionAddress, and to get that we must first apply std::sort().
- Abandon passing pageBreak 2nd compare arg via lambda-capture, because it is a fragile technique. It is only by an accident of the implementation that it works on std::lower_bound. It does not work for std::upper_bound, std::binary_search, or std::equal_range.
Sep 11 2020
- finalize LD,compact_unwind before relocating
Sep 9 2020
- follow review feedback
Sep 5 2020
- use %python prefix in test file
- minor cleanups
Do the work in finalize() member rather than getSize() const. Drop mutable from data members. Ahhh! So much nicer!
Sep 2 2020
- Remove redundant unwind_info_section_header_lsda_entry, and use existing unwind_info_section_header_lsda_index_entry instead.
- Don't cache UnwindInfoSection::isNeeded() result since it is only called once.
- Permute the register save set in order to generate a larger variety of encodings.
- Align generated functions at larger boundary so it works for testing ld64 also.
- Expand the object-file encoding regexp to capture optional personality+lsda
Sep 1 2020
Improvements & cleanups to validate-unwind-info.py:
- accept input from multiple files or stdin
- fail if any expected categories of input are absent
Aug 31 2020
Improvements & cleanups to generate-cfi-funcs.py:
- add --functions=N arg
- move some comments into doc strings
- Revise the arg signature for the comparison lambda for std::lower_bound() to emphasize that the 2nd pointer argument is ignored. Rather, we pass the comparand via lambda capture.
Aug 30 2020
- Correction in lld/MachO/UnwindInfo.h: s/LLD_MACHO_COMPACT_UNWIND_H/LLD_MACHO_UNWIND_INFO_H/
- Move some constant definitions that belong in libunwind/include/mach-o/compact_unwind_encoding.h
- constify all CompactUnwindEntry64*
- simplify level-1 index sentinel address calculation
- pass functionAddressMax via lambda capture rather than via constructed cuEntry
- heed clang-tidy's advice
- Revert to simple llvm-lit test format, since bash is unnecessary
- Rework pageBounds as a simple vector rather than a vector of pairs, and expand associated comments
Aug 29 2020
Update according to Jez's simple review-feedback items - i.e., everything except the hackiness surrounding __LD,__compact_unwind's anomalies as a MergedOutputSection.
Aug 28 2020
- Relocate some macro definitions into libunwind/include/mach-o/compact_unwind_encoding.h
- Decouple target word size from the host word size for the compact unwind entry structs