Thiemo Seufer wrote:
Well, then the effects I wrote about were not caused by that patch
but by a broken linker. Re-doing the final link with the old linker
should be enough to prove that.
From the different alignment, this _might_ be related to Maciej's
binutils patch for PAGE_SIZE != 4k.
http://sources.redhat.com/ml/binutils/2003-12/msg00380.html
This patch looks to be the culprit. Removing it from
binutils-2.15.90.0.1.1 source and rebuilding my cross-compiler creates a
bootable kernel (2.4.25). I also noticed it changed the output of
'readelf -l vmlinux' so that there is a second 'LOAD' program header.
The PaX patch doesn't make a bit of difference, and I've test booted
kernels built without Maciej's patch, including and excluding the PaX patch.
In the readelf -l <target> snippets below, one was built with Maciej's
patch, one without, and the one without is the one that booted on my Indy.
With:
Elf file type is EXEC (Executable file)
Entry point 0x88144040
There are 3 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
REGINFO 0x1573c0 0x881573c0 0x881573c0 0x00018 0x00018 R 0x4
LOAD 0x000000 0x88000000 0x88000000 0x16d000 0x194400 RWE
0x10000
PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4
Section to Segment mapping:
Segment Sections...
00 .reginfo
01 .text .fixup .kstrtab __ex_table __ksymtab .data.init_task
.text.init .data.init .setup.init .initcall.init .data.cacheline_aligned
.reginfo .data .bss
02
Without:
Elf file type is EXEC (Executable file)
Entry point 0x88144040
There are 4 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
REGINFO 0x1563c0 0x881573c0 0x881573c0 0x00018 0x00018 R 0x4
LOAD 0x001000 0x88002000 0x88002000 0x13ffc0 0x13ffc0 R E
0x1000
LOAD 0x141000 0x88142000 0x88142000 0x2b000 0x52400 RWE 0x1000
PAX_FLAGS 0x000000 0x00000000 0x00000000 0x00000 0x00000 0x4
Section to Segment mapping:
Segment Sections...
00 .reginfo
01 .text .fixup .kstrtab __ex_table __ksymtab
02 .data.init_task .text.init .data.init .setup.init
.initcall.init .data.cacheline_aligned .reginfo .data .bss
03
--Kumba
--
"Such is oft the course of deeds that move the wheels of the world:
small hands do them because they must, while the eyes of the great are
elsewhere." --Elrond
|