Re: 2.4 kernels + >=binutils-2.14.90.0.8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux