98f2273d97
This preserves the name and value of every symbol. The type and other info of a symbol might be lost. In gdb, one can now "disas main" or "disas '.ret'" to disassemble functions by name. Most symbols are in sections, so I also teach cvmach to emit the Mach section headers. The entry point in plat/osx*/descr moves down to make room for the section headers and LC_SYMTAB. I fix some bugs in calculations of cvmach. They were wrong if ROM had a greater alignment than TEXT, or if DATA did not start on a page boundary. I introduce machseg[] to simplify the mess of variables in main(). I declare most functions as static. Also, cvmach becomes the first program to #include <object.h>.
16 lines
196 B
Lua
16 lines
196 B
Lua
cprogram {
|
|
name = "cvmach",
|
|
srcs = { "./cvmach.c" },
|
|
deps = {
|
|
"h+emheaders",
|
|
"modules/src/object+lib",
|
|
}
|
|
}
|
|
|
|
installable {
|
|
name = "pkg",
|
|
map = {
|
|
["$(PLATDEP)/cvmach"] = "+cvmach",
|
|
}
|
|
}
|