I'm trying to write an ELF loader for a PowerPC vmlinux, and I've come across
something I don't understand.
In vmlinux, there are two Program Segments, the first of which is PT_LOAD. What
is the difference between the block of data inside this section, and
vmlinux.bin? I thought that vmlinux.bin is nothing more than the PT_LOAD
section of vmlinux. However, when I do a memcmp, there is a difference at
offset 3080192 (vmlinux.bin is 4874532 bytes long):
memcmp @ 3080192 125 != 31
32 bytes @ 412f0000:
7d 20 00 28 31 29 ff ff 7d 20 01 2d 40 a2 ff f4
2f 89 00 00 41 9e 01 9c 7f e3 fb 78 4b d7 b0 75
32 bytes @ 42300000:
1f 8b 08 08 b7 e7 7a 44 00 03 62 75 73 79 62 6f
78 2d 31 2e 31 2e 33 2e 69 6d 67 00 ec 5d 7d 74
So when Kbuild creates vmlinux.bin, what does it do besides extract the PT_LOAD
segment?
--
Timur Tabi
Linux kernel developer at Freescale
Timur Tabi wrote:
> So when Kbuild creates vmlinux.bin, what does it do besides extract the PT_LOAD
> segment?
Never mind, I was doing something stupid which was trashing my in-memory copy of
vmlinux.bin.
--
Timur Tabi
Linux kernel developer at Freescale