Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tamaroning/bold
https://github.com/tamaroning/bold
Last synced: 19 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/tamaroning/bold
- Owner: tamaroning
- Created: 2024-01-05T18:53:33.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-25T08:56:47.000Z (11 months ago)
- Last Synced: 2024-04-18T02:12:59.344Z (9 months ago)
- Language: Rust
- Size: 181 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bold
An experimental x86-64 linker.
This is my second linker which I write to understand how linker works.
bold aims to link Rust and C++ programs.## Status
Implemented features are as follows:
- .o and .a files
- static link (Some relocation types are missing)# Run
```bash
$ cargo run ...
``````bash
$ ./tests/hello_nolibc.sh
$ ./a.out
Hello, world
```## TODO
- Support weak symbols
- preliminary
- Support special(?) symbols
- _GLOBAL_OFFSET_TABLE_
- __start* and __stop*
- and more?
- Support SHN_COMMON
- .bss section## References
- mold, https://github.com/rui314/mold
- ELF spec, https://refspecs.linuxfoundation.org/elf/elf.pdf
- System V ABI spec, https://refspecs.linuxbase.org/elf/x86_64-abi-0.99.pdf
- ELF Handling For Thread-Local-Storage, https://refspecs.linuxbase.org/elf/x86_64-abi-0.99.pdf## Licenses
- gnu.ld: Copyright (C) 2014-2022 Free Software Foundation, Inc.
- Others: MIT