Fix type registration bug where package would be added twice to certain struct fields
Fix type registration bug for the go.shape builtin package
itab.go: ifn/tfn offsets computed relative to correct base address of parent type
inlinetree: use funcID of inlined func, otherwise use FuncID_normal
buildModuleTypeHash(): use same recursion approach as registerType()
Add ABI wrapper funcs with the proper suffix to prevent relocating into a wrapper instead of the actual function - this was previously preventing the building of forbidden packages due to the presence of a mix of both ABI0 and ABIInternal wrapper funcs. As a result, there are no more forbidden packages (any package including runtime can be rebuilt and loaded)
Pointer align data on amd64 as well as arm64
Bugfix addSymbolMap where firstmodule prefixed functions would actually point at the new module's code
Add basic reachability analysis/deadcode elimination to avoid building package dependencies deeper than necessary
Limit concurrency of compilation of dependent packages to GOMAXPROCS
Features:
darwin/arm64
anddarwin/amd64
withCGO_ENABLED=0
(via handwritten CGo asm wrappers fordlopen
/dlsym
)darwin/arm64
JIT write protection and instruction cache invalidation now also possible without CGo-dynlink
support to use GOTPCREL relocs instead of PCRELAssorted bugfixes:
go.shape
builtin packageitab.go
: ifn/tfn offsets computed relative to correct base address of parent typebuildModuleTypeHash()
: use same recursion approach asregisterType()
runtime
can be rebuilt and loaded)