I don't know where I should report gnu-efi bug. The ia32 support in gnu-efi-3.0b-041222 doesn't work with newer gcc and binutils. The problem is in the linker script. The new gcc may put functions in .text* sections. The newer linker handles orphaned sections differently. I tested this patch on both ia32 and ia64 with different versions of gcc and binutils by building elilo 3.6. Elilo 3.6 loads and run kernel correctly on ia64. It seems to work find on ia32. Thanks. H.J. --- gnu-efi/gnuefi/elf_ia32_efi.lds.ia32 2004-12-22 07:52:28.000000000 -0800 +++ gnu-efi/gnuefi/elf_ia32_efi.lds 2006-03-17 11:47:21.000000000 -0800 @@ -9,7 +9,11 @@ SECTIONS . = ALIGN(4096); .text : { - *(.text) + *(.text*) + } + .reloc : + { + *(.reloc) } . = ALIGN(4096); .data : @@ -48,12 +52,9 @@ SECTIONS . = ALIGN(4096); .dynstr : { *(.dynstr) } . = ALIGN(4096); - .ignored.reloc : + /DISCARD/ : { *(.rel.reloc) - } - .ignored : - { *(.eh_frame) } } --- gnu-efi/gnuefi/elf_ia64_efi.lds.ia32 2004-12-22 10:18:10.000000000 -0800 +++ gnu-efi/gnuefi/elf_ia64_efi.lds 2006-03-17 11:51:51.000000000 -0800 @@ -59,13 +59,10 @@ SECTIONS .dynsym : { *(.dynsym) } . = ALIGN(4096); .dynstr : { *(.dynstr) } - .ignored_reloc : + /DISCARD/ : { *(.rela.plabel) *(.rela.reloc) - } - /DISCARD/ : - { *(.IA_64.unwind*) *(.IA64.unwind*) } - : send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |