ports/Xen on CURRENT, error: ELF start or entries are out of bounds.

dfh0522 . dfh0522 at gmail.com
Thu Mar 17 17:30:28 UTC 2016


> 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.


More information about the freebsd-virtualization mailing list