ld segfaults building a kernel image on armel

Bug #375991 reported by Oliver Grawert
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
binutils
Fix Released
Medium
binutils (Ubuntu)
Fix Released
Undecided
Matthias Klose

Bug Description

Binary package hint: binutils

  ld -EL --defsym zreladdr=0x80008000 --defsym initrd_phys=0x80800000 --defsym params_phys=0x80000100 -p --no-undefined -X /usr/lib/gcc/arm-linux-gnueabi/4.4.1/libgcc.a -T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o arch/arm/boot/compressed/pi
ggy.o arch/arm/boot/compressed/misc.o -o arch/arm/boot/compressed/vmlinux

causes the kernel build to fail with a segfault ...

Tags: arm

Related branches

Revision history for this message
Oliver Grawert (ogra) wrote :

using binutils 2.19.51.20090423-0ubuntu2 makes the segfault go away

tags: added: arm
summary: - ld segfaults building a kernel image
+ ld segfaults building a kernel image on armel
Revision history for this message
Oliver Grawert (ogra) wrote :
Revision history for this message
Oliver Grawert (ogra) wrote :
Revision history for this message
Oliver Grawert (ogra) wrote :
Revision history for this message
Oliver Grawert (ogra) wrote :
Revision history for this message
In , Matthias Klose (doko) wrote :

http://sourceware.org/ml/binutils/2009-05/msg00220.html

Paul Brook schrieb:
> The patch below implements linker processing of ARM unwinding tables
> (SHT_ARM_EXIDX).
>
> 2009-05-05 Paul Brook <email address hidden>
>
> bfd/
> * bfd-in.h (elf32_arm_fix_exidx_coverage): Add prototype.
> * bfd-in2.h: Regenerate.
> * elf32-arm.c (arm_unwind_edit_type, arm_unwind_table_edit): Define.
> (_arm_elf_section_data): Add text and exidx fields.
> (add_unwind_table_edit, get_arm_elf_section_data, adjust_exidx_size,
> insert_cantunwind_after, elf32_arm_fix_exidx_coverage, offset_prel31,
> copy_exidx_entry): New functions.
> (elf32_arm_write_section): Fixup .ARM.exidx contents.
>
> ld/
> * emultempl/armelf.em (compare_output_sec_vma): New function.
> (gld${EMULATION_NAME}_finish): Add exidx munging code.

This breaks kernel builds on arm-linux-gnueabi. Checked by reverting this
change. command line used and object files at https://launchpad.net/bugs/375991

  Matthias

Program received signal SIGSEGV, Segmentation fault.
bfd_set_section_size (abfd=0x0, ptr=0x7e5f8, val=8) at ../../bfd/section.c:1297
1297 if (abfd->output_has_begun)
(gdb) bt
#0 bfd_set_section_size (abfd=0x0, ptr=0x7e5f8, val=8) at ../../bfd/section.c:1297
#1 0x4005c60c in elf32_arm_fix_exidx_coverage (text_section_order=<value
optimized out>, num_text_sections=4,
    info=<value optimized out>) at ../../bfd/elf32-arm.c:8425
#2 0x00026980 in gldarmelf_linux_eabi_finish () at earmelf_linux_eabi.c:420
#3 0x00021ea8 in ldemul_finish () at ../../ld/ldemul.c:90
#4 0x0001ac08 in lang_process () at ../../ld/ldlang.c:6282
#5 0x0001f154 in main (argc=10000, argv=0x12) at ../../ld/ldmain.c:479

Changed in binutils (Ubuntu):
importance: Undecided → High
status: New → Triaged
Changed in binutils:
status: Unknown → Confirmed
Matthias Klose (doko)
Changed in binutils (Ubuntu):
assignee: nobody → Matthias Klose (doko)
importance: High → Undecided
status: Triaged → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package binutils - 2.19.51.20090515-0ubuntu1

---------------
binutils (2.19.51.20090515-0ubuntu1) karmic; urgency=low

  * Snapshot, taken from the trunk 20090515.
    - Fix PR ld/10152. LP: #375991.
  * Revert work-around from last upload.
  * debian/*.shlibs: Update to the version from the trunk.
  * Build the binutils-gold package again.

 -- Matthias Klose <email address hidden> Fri, 15 May 2009 16:34:56 +0200

Changed in binutils (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
In , Matthias Klose (doko) wrote :

fixed in 20090516 trunk

Changed in binutils:
status: Confirmed → Fix Released
Changed in binutils:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.