Date: Fri, 18 Mar 2016 01:30:26 +0800 From: "dfh0522 ." <dfh0522@gmail.com> To: royger@freebsd.org, brahmann@lifec0re.net Cc: freebsd-virtualization@freebsd.org Subject: Re: ports/Xen on CURRENT, error: ELF start or entries are out of bounds. Message-ID: <CAG5Ns1%2BmpFp8uQHEhfzBdgvfeiEK5pm9aar7QPitYiea7BOO7A@mail.gmail.com> In-Reply-To: <CAG5Ns1%2Bor290mxhFFUPGQfm2HTo1E5FSCA_J-sR6L4Z_UL1G8Q@mail.gmail.com> References: <CAG5Ns1%2Bor290mxhFFUPGQfm2HTo1E5FSCA_J-sR6L4Z_UL1G8Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> I've just noticied this issue, it's probably due to an issue with kernel
> linking. It seems like the physical address specified in the ELF program
> headers is wrong. I'm currently trying to bisect it in order to find the
> commit that caused it, in the meantime I can confirm that r295683 and
> older revisions should work fine.
I need to add WITHOUT_ELFCOPY_AS_OBJCOPY after r296096,
> $ readelf -l /boot/kernel/kernel
# readelf -l /boot/kernel/kernel
Elf file type is EXEC (Executable file)
Entry point 0xffffffff802fb000
There are 6 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flg Align
PHDR 0x0000000000000040 0xffffffff80200040 0x0000000000200040
0x0000000000000150 0x0000000000000150 R E 0x8
INTERP 0x0000000000000190 0xffffffff80200190 0x0000000000200190
0x000000000000000d 0x000000000000000d R 0x1
[Requesting program interpreter: /red/herring]
LOAD 0x0000000000000000 0xffffffff80200000 0x0000000000200000
0x000000000147b978 0x000000000147b978 R E 0x200000
LOAD 0x000000000147b978 0xffffffff8187b978 0x000000000187b978
0x0000000000134e40 0x000000000056e448 RW 0x200000
DYNAMIC 0x000000000147b978 0xffffffff8187b978 0x000000000187b978
0x00000000000000d0 0x00000000000000d0 RW 0x8
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RWE 0x8
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .hash .dynsym .dynstr .text .rodata set_sysctl_set
set_sysinit_set set_sysuninit_set set_modmetadata_set set_kdb_dbbe_set
set_ah_chips set_ah_rfs set_kbddriver_set set_sdt_providers_set
set_sdt_probes_set set_sdt_argtypes_set set_cons_set
set_gdb_dbgport_set usb_host_id set_vt_drv_set set_ratectl_set
set_crypto_set set_ieee80211_ioctl_getset set_ieee80211_ioctl_setset
set_scanner_set set_videodriver_set set_scterm_set set_scrndr_set
set_vga_set kern_conf .eh_frame
03 .dynamic .got.plt .data set_pcpu .bss
04 .dynamic
05
# objcopy --version GNU objcopy 2.17.50 [FreeBSD] 2007-07-03
> With the non-working kernel?
# readelf -l /boot/kernel.old/kernel
Elf file type is EXEC (Executable file)
Entry point 0xffffffff802fb000
There are 6 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flg Align
PHDR 0x0000000000000040 0xffffffff80200040 0xffffffff80200040
0x0000000000000150 0x0000000000000150 R E 0x8
INTERP 0x0000000000000190 0xffffffff80200190 0xffffffff80200190
0x000000000000000d 0x000000000000000d R 0x1
[Requesting program interpreter: /red/herring]
LOAD 0x0000000000000000 0xffffffff80200000 0xffffffff80200000
0x000000000147a418 0x000000000147a418 R E 0x200000
LOAD 0x000000000147a418 0xffffffff8187a418 0xffffffff8187a418
0x0000000000134aa0 0x000000000056e0a8 RW 0x200000
DYNAMIC 0x000000000147a418 0xffffffff8187a418 0xffffffff8187a418
0x00000000000000d0 0x00000000000000d0 RW 0x8
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RWE 0x8
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .hash .dynsym .dynstr .text .rodata set_sysctl_set
set_sysinit_set set_sysuninit_set set_modmetadata_set set_kdb_dbbe_set
set_ah_chips set_ah_rfs set_kbddriver_set set_sdt_providers_set
set_sdt_probes_set set_sdt_argtypes_set set_cons_set
set_gdb_dbgport_set usb_host_id set_vt_drv_set set_ratectl_set
set_crypto_set set_ieee80211_ioctl_getset set_ieee80211_ioctl_setset
set_scanner_set set_videodriver_set set_scterm_set set_scrndr_set
set_vga_set kern_conf .eh_frame
03 .dynamic .got.plt .data set_pcpu .bss
04 .dynamic
05
# objcopy --version objcopy (elftoolchain r3400M)
Cheers, JH.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG5Ns1%2BmpFp8uQHEhfzBdgvfeiEK5pm9aar7QPitYiea7BOO7A>
