2017-06-14, 20:31
Hi there.
I discovered that built wimboot EFI kernel is unusable outside of ipxe.
The problem root is in PE prefix: it have some issues that cannot be parsed with e.g. grub2 or other loaders.
For example: objdump for prebuilt 2.6.0-signed:
Look at "Number of fixups" and real count of entries in first block, and second block content (looks like actually garbage).
My opinion is it needs to migrate to automatic prefix generation via objcopy.
I discovered that built wimboot EFI kernel is unusable outside of ipxe.
The problem root is in PE prefix: it have some issues that cannot be parsed with e.g. grub2 or other loaders.
For example: objdump for prebuilt 2.6.0-signed:
Code:
Virtual Address: 00008000 Chunk size 80 (0x50) Number of fixups 36
...
reloc 32 offset 8fd [88fd] HIGHLOW
reloc 33 offset 902 [8902] HIGHLOW
reloc 34 offset 0 [8000] ABSOLUTE
reloc 35 offset 0 [8000] ABSOLUTE
reloc 36 offset 0 [8000] REL32
reloc 37 offset 0 [8000] ABSOLUTE
reloc 38 offset 190 [8190] ABSOLUTE
reloc 39 offset 0 [8000] ABSOLUTE
Virtual Address: 30673054 Chunk size 814166132 (0x30873074) Number of fixups 407083062
reloc 0 offset 97 [306730eb] HIGHLOW
reloc 1 offset aa [306730fe] HIGHLOW
reloc 2 offset ba [3067310e] HIGHLOW
reloc 3 offset cd [30673121] HIGHLOW
reloc 4 offset e0 [30673134] HIGHLOW
...
Look at "Number of fixups" and real count of entries in first block, and second block content (looks like actually garbage).
My opinion is it needs to migrate to automatic prefix generation via objcopy.