mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-23 19:26:55 -04:00
kern: put rela in bss
NOTE: This saves ~0x4000 of space at the cost of crimes against the linker script.
This commit is contained in:
parent
fba962ef11
commit
960ba52a43
4 changed files with 25 additions and 19 deletions
|
@ -9,7 +9,6 @@ def align_up(val, algn):
|
|||
val += algn - 1
|
||||
return val - (val % algn)
|
||||
|
||||
|
||||
def main(argc, argv):
|
||||
if argc != 4:
|
||||
print('Usage: %s kernel_ldr.bin kernel.bin output.bin' % argv[0])
|
||||
|
@ -21,8 +20,15 @@ def main(argc, argv):
|
|||
kernel_metadata_offset = 4
|
||||
assert (kernel_metadata_offset <= len(kernel) - 0x40)
|
||||
assert (kernel[kernel_metadata_offset:kernel_metadata_offset + 4] == b'MSS0')
|
||||
kernel_end = up('<I', kernel[kernel_metadata_offset + 0x38:kernel_metadata_offset + 0x3C])[0]
|
||||
assert (kernel_end >= len(kernel))
|
||||
|
||||
bss_start, bss_end, kernel_end = up('<III', kernel[kernel_metadata_offset + 0x30:kernel_metadata_offset + 0x3C])
|
||||
assert (bss_end >= bss_start)
|
||||
assert (bss_end == kernel_end)
|
||||
|
||||
assert (len(kernel) <= kernel_end)
|
||||
if len(kernel) < kernel_end:
|
||||
kernel += b'\x00' * (kernel_end - len(kernel))
|
||||
assert (kernel_end == len(kernel))
|
||||
|
||||
embedded_ini = b''
|
||||
try:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue