2008-02-19 22:52:16

by Timur Tabi

[permalink] [raw]
Subject: Difference between vmlinux and vmlinux.bin

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


2008-02-19 23:11:27

by Timur Tabi

[permalink] [raw]
Subject: Re: Difference between vmlinux and vmlinux.bin

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