Commit Graph

152 Commits

Author SHA1 Message Date
Luke Street 98ab89a1de Don't relocate against linker symbols for certain relocations 2023-08-10 00:02:28 -04:00
Luke Street cf328b8707 Only create relocations for direct branches 2023-08-09 23:59:26 -04:00
Luke Street 457ee10a42 Emit FORCEACTIVE in LCF & various fixes 2023-08-09 01:24:23 -04:00
Luke Street d9e1ae2777 MW 2.7 LD compatibility fixes & more
- More robust .comment section handling
- Auto-create .comment section for objects with common symbols (MW 2.7+ hack)
- Support loading REL modules in `dol split` (currently only for references)
- Add `dol diff` for quick diffing between linked ELF and expected symbols
- Add `dol apply` for applying linked ELF symbols to symbol config file
2023-08-08 23:34:00 -04:00
Luke Street 5bdffa94c4 Generated TU name adjustments 2023-08-08 01:54:01 -04:00
Luke Street 46801939a3 Fix up .comment section writing & support symbol force_active 2023-08-08 01:53:47 -04:00
Luke Street bf0dd310e6 Bump version 2023-08-07 20:07:13 -04:00
Luke Street 40786587e3 Support common BSS in update_splits & resolve_link_order 2023-08-07 20:05:57 -04:00
Luke Street c9eb824034 Emit __init_cpp_exceptions_reference symbols as global 2023-08-07 20:05:19 -04:00
Luke Street 9684701d5b Include common symbols in ObjSymbols::for_range 2023-08-07 20:05:00 -04:00
Luke Street e215b6d843 Fix write_elf for common symbols & only write filename in file symbol 2023-08-07 20:04:40 -04:00
Luke Street e802b61001 Fix autogenerated unit output in config.json 2023-08-07 20:03:58 -04:00
Luke Street c07826e57f Output common/rename in write_split 2023-08-07 20:03:34 -04:00
Luke Street a046bf9a66 Updates for build system integration
- Use a config file as input to `dol split`
- Add depfile output
- Adjust splits config writing
2023-08-06 15:46:51 -04:00
Luke Street 4b6e317d0b Adjustments for use with ninja build 2023-08-05 20:27:05 -04:00
Luke Street 771c380129 ci: Pin ziglang / cargo-zigbuild versions 2023-08-05 18:41:18 -04:00
Luke Street fefe4a36f0 Small dol split output adjustments 2023-08-05 18:35:11 -04:00
Luke Street 2ccb5f7b36 Fix clippy issue & add fmt check 2023-08-04 10:46:02 -04:00
Luke Street b9fd6e077a Remove more unused imports 2023-08-03 19:24:47 -04:00
Luke Street 636213fdfd Remove unused imports 2023-08-03 19:19:05 -04:00
Luke Street 4ee63abea4 Mark autogenerated splits & rework ObjInfo::add_split 2023-08-03 19:18:20 -04:00
Luke Street 43856f1b79 Fix generated extab symbol sizes 2023-08-03 19:12:58 -04:00
Luke Street 5c04800964 Run apply_signatures_post appropriately 2023-08-03 19:05:40 -04:00
Luke Street 6723245ed6 dol split: Write units file 2023-08-03 19:05:00 -04:00
Luke Street f06a6ffbdd Ignore ABS symbols in ObjSymbols::for_range
- Add ObjSymbols::iter_ordered for all symbols (including ABS)
- Extract duplicated logic into ObjSymbols::for_relocation
2023-08-03 19:04:17 -04:00
Luke Street 8f461b8e0a Add & use ObjSymbolFlagSet helper functions 2023-08-03 19:00:10 -04:00
Luke Street 26a3021f45 Fix lcf generation for missing .sbss2 2023-08-03 18:57:18 -04:00
Luke Street bd0422e92a Migrate argh to argp, topological-sort to petgraph 2023-08-03 18:57:08 -04:00
Luke Street 8660984d40 Improve prologue/epilogue detection 2023-08-03 18:51:15 -04:00
Luke Street b267b79f7b Fix string detection overwriting known symbols 2023-08-03 18:50:27 -04:00
Luke Street 6b81faa5e1 dwarf dump: More register names, fix padding handling 2023-08-02 18:29:03 -04:00
Luke Street 08663e8c3e Remove accidental nightly feature 2023-07-21 18:06:04 -04:00
Luke Street b958a23396
Minor README.md fix 2023-07-21 18:00:52 -04:00
Luke Street 0fa0aafaea 6 months of occasional work I guess 2023-07-21 17:59:07 -04:00
Luke Street f1b4afa885 Add `dwarf dump` cmd 2023-02-14 21:50:23 -05:00
Luke Street 36e609eab7 Adjust extern relocation warning 2023-01-28 00:18:39 -05:00
Luke Street 4359ec1fa3 Only warn on extabindex relocations 2023-01-27 23:44:06 -05:00
Luke Street 15546a6880 Merge branch 'main' into experimental 2023-01-27 23:17:36 -05:00
Luke Street 830f7b172f Reorganize files; start RSO support; config & split updates 2023-01-27 23:15:52 -05:00
Luke Street e12a43fcd2
ci: Build i686-unknown-linux-musl 2023-01-24 20:09:57 -05:00
Luke Street 827e0806be gerge branch 'main' into experimental 2023-01-19 12:54:52 -05:00
Luke Street d864b0e395 Very experimental analyzer, DOL & REL support, function signatures 2023-01-18 12:52:38 -08:00
Luke Street 947874adfd Version 0.2.3
- Fix `ar create` on Windows
- Clippy fixes
2023-01-05 08:51:44 -05:00
Luke Street d76c554d31 Support duplicate filenames in ELF loader 2022-12-27 18:22:27 -05:00
Luke Street 9f4cc2f542 Add `elf split`; rework asm generation
`elf split` allows splitting an ELF
directly into relocatable object files
2022-12-24 03:10:12 -05:00
Luke Street 54f2abd35f Update README.md 2022-12-14 21:21:04 -05:00
Luke Street 828766b22b Version 0.2.2
- Add `ar create` command for static libraries
- Update `elf fixup` to add an "(asm)" suffix
  to object file symbols, for use with progress
  tracking.
2022-12-14 20:39:59 -05:00
Luke Street 21c386d1a6 Version 0.2.1
- Build static Linux binaries
- Use cargo-zigbuild for cross compilation
2022-12-14 13:20:22 -05:00
Luke Street 141339fcb0 Version 0.2.0
- Add `elf disasm` (disassemble an ELF)
- Add `elf fixup` (for GNU assembler)
- Add `map order` (link order deduction)
- Add `map slices` (ppcdis slices.yml, WIP)
- Add `map symbols` (ppcdis symbols.yml, WIP)
- Big speed improvement for map processing
- Minor `elf2dol` cleanup
2022-12-10 01:51:42 -05:00
Luke Street f6dbe94bac Add -o option to shasum 2022-11-27 23:43:46 -05:00