rubyx/lib/elf
Torsten Ruger 2485f7e9eb misc fixes and (finally, sigh) green again
deeeep dive, almost 40 commits
2018-07-04 09:18:55 +03:00
..
constants.rb some reek assited coding on assembler 2016-12-16 15:41:26 +02:00
null_section.rb fix names and requires to get some elf out again (still crashes though) 2014-04-19 23:25:46 +03:00
object_file.rb rename unit and sint to human readable forms 2016-12-31 18:45:22 +02:00
object_writer.rb misc fixes and (finally, sigh) green again 2018-07-04 09:18:55 +03:00
README.md polish docs 2018-03-11 16:11:15 +05:30
section.rb adds first version of the expanded as assembler from mikko 2014-04-14 18:09:56 +03:00
stream_reader.rb rename unit and sint to human readable forms 2016-12-31 18:45:22 +02:00
stream_writer.rb rename unit and sint to human readable forms 2016-12-31 18:45:22 +02:00
string_table_section.rb adds first version of the expanded as assembler from mikko 2014-04-14 18:09:56 +03:00
symbol_table_section.rb rename unit and sint to human readable forms 2016-12-31 18:45:22 +02:00
text_section.rb rename length to mem_length and suffer the consequences 2014-09-17 12:04:54 +03:00

Minimal elf support

This is really minimal and works only for our current use case

  • no external functions (all syscalls)
  • only position independent code (no relocation)
  • embedded data (into text), no data section

I was close to going the wilson way, ie assmble, load into memory and jump

But it is nice to produce executables. Also easier to test, what with segfaults and such.

Executable files are not supported (yet?), but object files work. So the only thing that remains is to call the linker on the produced object file. The resulting file is an executable that actually works!!

Thanks to Mikko for starting this arm/elf project in the first place: https://github.com/cyndis/as

This part definitely needs tlc, so anyone who is interested, dig in!