|
| 1 | +## 0.8.0 |
| 2 | + |
| 3 | +### 🚀 Features |
| 4 | + |
| 5 | +- Support `--hash-style={sysv, both}` (#1281) |
| 6 | +- Support negation ('^') in version script globs (#1284) |
| 7 | +- Support `PT_GNU_PROPERTY` (#1297) |
| 8 | +- Support `--defsym=symbol=expression` (#1300) |
| 9 | +- Support symbol definitions in linker script (#1307) |
| 10 | +- Support merging non-string sections (#1306) |
| 11 | +- Handle `-z x86-64-*` ISA needed (#1320) |
| 12 | +- Ignore `--discard-all/-x` option (#1377) |
| 13 | +- Support SFrame (#1287) |
| 14 | +- Support `--section-start=.section=address` (#1385) |
| 15 | +- Add --no-update-in-place flag (#1395) |
| 16 | +- Support `-z max-page-size` (#1400) |
| 17 | +- LoongArch64 support (#1409) |
| 18 | +- Support expressions in `--defsym` and linker script symbol assignment (#1418) |
| 19 | +- Sort .init_array and .fini_array by priority (#1408) |
| 20 | +- Support `--no-eh-frame-hdr` (#1440) |
| 21 | +- Support `-z stack-size=SIZE` (#1448) |
| 22 | +- Include metrics connected to '.eh_frame' (#1443) |
| 23 | +- Add `--pic-executable` as an alias for `--pie` (#1453) |
| 24 | +- Support `variant_pcs` (#1272) |
| 25 | +- Support `.variant_cc` (#1280) |
| 26 | + |
| 27 | +### ⚡ Performance |
| 28 | + |
| 29 | +- Make --update-in-place default and fallback to unlinking on ETXTBSY (#1238) |
| 30 | +- Parallelize copying data sections (#1277) |
| 31 | +- Avoid heap allocating each task during string merging (#1286) |
| 32 | +- Minor improvement to cache efficiency of resolution (#1294) |
| 33 | +- Merge some of the GC phases into a single phase (#1330) |
| 34 | +- Process merge-string sections in mostly equal chunks (#1345) |
| 35 | +- Run string merging and GC in parallel (#1339) |
| 36 | +- Preallocate a Vec to avoid resizes (#1349) |
| 37 | +- Optimize version script from rustc (#1355) |
| 38 | +- Tweak how we determine the target number of groups (#1432) |
| 39 | + |
| 40 | +### 🪲 Bug Fixes |
| 41 | + |
| 42 | +- Ensure we write every byte of file even when updating in-place (#1276) |
| 43 | +- Align output kind with LD in more cases (#1279) |
| 44 | +- Don't try to emit copy relocations for non-canonical symbol aliases (#1308) |
| 45 | +- Put common TLS symbols into correct section (#1310) |
| 46 | +- Handle non-absolute paths with `--no-allow-shlib-undefined` (#1321) |
| 47 | +- Do not add duplicated rpath entries (#1338) |
| 48 | +- `save_dir::make_relative_path()` now works as expected (#1337) |
| 49 | +- Reorder some sections so that objcopy doesn't complain (#1358) |
| 50 | +- *(save-dir)* Handle @filename when processing save-dir (#1362) |
| 51 | +- Use DT_SONAME to help determine if SO deps are met (#1390) |
| 52 | +- *(save-dir)* Don't make paths in linker scripts relative if in sysroot (#1393) |
| 53 | +- Relax debug info comparison against bfd (#1397) |
| 54 | +- Don't exclude all libs when not yet supported --exclude-libs <lib> is passed (#1394) |
| 55 | +- Properly resolve and retain defsym target symbols (#1402) |
| 56 | +- *(save-dir)* Normalize source paths before checking if it's in sysroot (#1406) |
| 57 | +- Resolve `__real_foo` in `--wrap` even without `__wrap_foo` (#1419) |
| 58 | +- *(CREL)* Reduce allocation for non-EH relocations (#1426) |
| 59 | +- Don't try to copy CREL sections to output file (#1438) |
| 60 | +- Ifunc address equality for data section references (#1441) |
| 61 | +- Ifunc address equality for GOT-relative relocations (#1446) |
| 62 | + |
| 63 | +### 📚 Documentation |
| 64 | + |
| 65 | +- Improve building and benching docs for rustc (#1283) |
| 66 | +- Add some info about our monthly dev team meetings (#1291) |
| 67 | +- Update rustc building instructions & format all the rustflags consistently (#1324) |
| 68 | +- Add alternative Clang invocation (#1334) |
| 69 | +- Add instructions for using wild with clang and gcc (#1354) |
| 70 | +- Add `PACKAGING.md` instructions (#1342) |
| 71 | +- Improve instructions on checking if wild was actually used (#1316) |
| 72 | + |
| 73 | +### 🎨 Styling |
| 74 | + |
| 75 | +- Wrap comments at 100 characters (#1268) |
| 76 | + |
| 77 | +### 📦 Packaging |
| 78 | + |
| 79 | +- Update for inclusion in Nixpkgs (#1318) |
| 80 | + |
| 81 | +### 🛠️ Dev tooling |
| 82 | + |
| 83 | +- Make absolute address checking work correctly (#1417) |
| 84 | +- Add support for writing perfetto traces (#1323) |
| 85 | +- Add a tool to aid with running benchmarks (#1454) |
| 86 | +- Add Dockerfile for Gentoo (#1373) |
| 87 | + |
| 88 | +### ⚖️ Linker Diff |
| 89 | + |
| 90 | +- Ignore VER_NDX_LOCAL vs GLOBAL for undefined symbols (#1424) |
| 91 | +- LoongArch64 support (#1428) |
| 92 | + |
| 93 | +### 🧪 Testing |
| 94 | + |
| 95 | +- Make a test failure message less confusing (#1275) |
| 96 | +- Set `timeout-minutes` for CI jobs (#1301) |
| 97 | +- Add a test for backtraces (#1353) |
| 98 | +- Use a separate subdirectory for each tests build (#1404) |
| 99 | +- Drop ubuntu 25.04 (#1433) |
| 100 | +- Improve robustness of integration-test usage of run-with (#1437) |
| 101 | +- Add cache for a couple of build jobs (#1434) |
| 102 | +- Use separate archive sources for a couple of tests (#1401) |
| 103 | +- Move contents of `exit.c` to `runtime.c` (#1447) |
| 104 | +- Add a test for `-Bsymbolic-non-weak` (#1427) |
| 105 | +- Use rust-cache actions (#1444) |
| 106 | +- Introduce `WILD_TEST_CROSS=all` (#1425) |
| 107 | +- Introduce `SkipArch` integration test directive (#1415) |
| 108 | +- Include next upcoming LTS Ubuntu release (#1416) |
| 109 | +- Run loongarch64 external tests (#1421) |
| 110 | + |
| 111 | +### 🔨 Refactor |
| 112 | + |
| 113 | +- A few simplifications to sysvs .hash computations (#1282) |
| 114 | +- Change resolution to use a work queue (#1290) |
| 115 | +- Make timing annotations use tracing indirectly (#1295) |
| 116 | +- Make secondary output sections more flexible (#1312) |
| 117 | +- Decouple OutputKind from Args (#1293) |
| 118 | +- Preparations to run string merging in parallel with GC (#1329) |
| 119 | +- Change GC to use a channel for work control (#1331) |
| 120 | +- Change GC phase to use rayon scopes (#1344) |
| 121 | +- Rewrite input opening work control (#1348) |
| 122 | +- Change symbol resolution to use rayon scopes (#1363) |
| 123 | +- Have linker script emit symbol defs directly (#1364) |
| 124 | +- Work towards being able to load additional batches of files (#1365) |
| 125 | +- Separate Epilogue into two separate entities (#1367) |
| 126 | +- Move dynamic symbol definitions onto layout (#1368) |
| 127 | +- Move gnu property notes to the layout (#1369) |
| 128 | +- Move riscv attributes to the layout (#1370) |
| 129 | +- Move eflags out of the prelude (#1371) |
| 130 | +- Get rid of SymbolDb::num_symbols_per_group (#1372) |
| 131 | +- Allow SymbolDb to be built in stages (#1374) |
| 132 | +- Allow symbol resolution to be done in stages (#1375) |
| 133 | +- Parse files as we open them (#1380) |
| 134 | +- Make InputRef implement Copy (#1382) |
| 135 | +- Get rid of InputFile::kind (#1383) |
| 136 | +- Split ResolvedObject into dynamic and non-dynamic variants (#1389) |
| 137 | +- Drop fd-lock dev dependency (#1319) |
| 138 | +- Port linked-diff table to tabled crate (#1361) |
| 139 | + |
| 140 | +### 👥 Contributors |
| 141 | + |
| 142 | +- davidlattimore |
| 143 | +- lapla-cogito |
| 144 | +- marxin |
| 145 | +- mati865 |
| 146 | +- karolzwolak |
| 147 | +- RossSmyth |
| 148 | +- YamasouA |
| 149 | +- csfore |
| 150 | +- zyxhere |
| 151 | +- tshepang |
| 152 | +- TechnoPorg |
| 153 | + |
1 | 154 | ## 0.7.0 |
2 | 155 |
|
3 | 156 | ### 🚀 Features |
|
0 commit comments