一如既往,主要在工具链领域耕耘。给这些high-profile OSS贡献的时候,希望透过这个微小的角度改变世界。
llvm-project
- Enabled
--features=layering_check
for Bazel's llvm and clang projects - Implemented
LLVM_ENABLE_REVERSE_ITERATION
forStringMap
- Added
llvm::xxh3_64bits
and adopted it in llvm/clang/lld
Reviewed many commits. A lot of people don't add a
Reviewed By:
tag. Anyway, counting commits with the tag can
give an underestimate.
1 | % git shortlog -sn 2679e8bba3e166e3174971d040b9457ec7b7d768...main --grep 'Reviewed .*MaskRay' | awk '{s+=$1}END{print s}' |
Many GitHub pull requests are not counted.
I made 700+ commits this year. Many are clean-up commits or fixup for others' work. I hope that I can do more useful work next year.
I created a read-only archive of the LLVM phabricator instance.
lld/ELF
I made some slides on how I improved the performance of lld/ELF.
binutils
Reported many bugs and feature requests:
ld: Should --gc-sections respect RHS of a symbol assignment?
objcopy: add support for changing ELF symbol visibility
rtld: resolve ifunc relocations after JUMP_SLOT/GLOB_DAT/etc
ld riscv: --emit-relocs does not retain the original relocation type
gas aarch64: GOT relocations referencing a local symbol should not be changed to reference STT_SECTION
objcopy --set-section-flags: support toggling a flag
gas x86: reject {call,jmp} [offset func] in Intel syntax
My commits:
PR30592 objcopy: allow --set-section-flags to add or remove SHF_X86_64_LARGE
ld: Allow R_386_GOT32 for call *__tls_get_addr@GOT(%reg)
ld: Allow R_X86_64_GOTPCREL for call *__tls_get_addr@GOTPCREL(%rip)
RISC-V: Add --[no-]relax-gp to ld
Linux kernel
8 commits. Consulted on a number of toolchain questions.
Blog
Wrote 28 blog posts (including this one, mainly about toolchains) and revised many posts initially written between 2020 and 2023.
Misc
Trips: Orlando, Pennsylvania, New York City, Alaska, Ontario, Quebec, Halifax, Montreal, Chicago, Atlanta, Miami, Jamaica, Haiti.
Mastodon: https://hachyderm.io/@meowray