[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/24426] New: Binutils 2.28.1 segfault when presented (any) linker
From: |
kallisti5 at unixzen dot com |
Subject: |
[Bug ld/24426] New: Binutils 2.28.1 segfault when presented (any) linker script on riscv64 |
Date: |
Mon, 08 Apr 2019 23:56:25 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=24426
Bug ID: 24426
Summary: Binutils 2.28.1 segfault when presented (any) linker
script on riscv64
Product: binutils
Version: 2.28
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: kallisti5 at unixzen dot com
Target Milestone: ---
Providing --script= of any kind results in a segfault from ld on riscv64.
An empty linker script will result in the same segfault.
Removing --script= results in a linker working as expected.
Here's a valgrind output to show some more backtrace information:
address@hidden:/work/generated.riscv64# valgrind
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld
-verbose -Bdynamic -export-dynamic -dynamic-linker /foo/bar
--script=../src/haiku/src/system/ldscripts/riscv64/kernel.ld -o
"objects/haiku/riscv64/release/system/kernel/kernel_riscv64"
"objects/haiku/riscv64/release/system/kernel/cache/kernel_cache.o"
"objects/haiku/riscv64/release/system/kernel/kernel_core.o"
"objects/haiku/riscv64/release/system/kernel/debug/kernel_debug.o"
"objects/haiku/riscv64/release/system/kernel/device_manager/kernel_device_manager.o"
"objects/haiku/riscv64/release/system/kernel/disk_device_manager/kernel_disk_device_manager.o"
"objects/haiku/riscv64/release/system/kernel/fs/kernel_fs.o"
"objects/haiku/riscv64/release/system/kernel/messaging/kernel_messaging.o"
"objects/haiku/riscv64/release/system/kernel/posix/kernel_posix.o"
"objects/haiku/riscv64/release/system/kernel/slab/kernel_slab.o"
"objects/haiku/riscv64/release/system/kernel/util/kernel_util.o"
"objects/haiku/riscv64/release/system/kernel/vm/kernel_vm.o"
"objects/haiku/riscv64/release/system/kernel/arch/riscv64/kernel_arch_riscv64.o"
"objects/haiku/riscv64/release/system/kernel/platform/u-boot/kernel_platform_u-boot.o"
"objects/haiku/riscv64/release/system/kernel/linkhack.so"
"objects/haiku/riscv64/release/system/kernel/lib/kernel_os_main.o"
"objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_os_arch_riscv64.o"
"objects/haiku/riscv64/release/system/kernel/lib/kernel_lib_posix.o"
"objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_lib_posix_arch_riscv64.o"
"objects/haiku/riscv64/release/system/kernel/lib/kernel_misc.o"
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a
--version-script=../src/haiku/src/system/kernel/kernel_versions
==555== Memcheck, a memory error detector
==555== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==555== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==555== Command:
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld
-verbose -Bdynamic -export-dynamic -dynamic-linker /foo/bar
--script=../src/haiku/src/system/ldscripts/riscv64/kernel.ld -o
objects/haiku/riscv64/release/system/kernel/kernel_riscv64
objects/haiku/riscv64/release/system/kernel/cache/kernel_cache.o
objects/haiku/riscv64/release/system/kernel/kernel_core.o
objects/haiku/riscv64/release/system/kernel/debug/kernel_debug.o
objects/haiku/riscv64/release/system/kernel/device_manager/kernel_device_manager.o
objects/haiku/riscv64/release/system/kernel/disk_device_manager/kernel_disk_device_manager.o
objects/haiku/riscv64/release/system/kernel/fs/kernel_fs.o
objects/haiku/riscv64/release/system/kernel/messaging/kernel_messaging.o
objects/haiku/riscv64/release/system/kernel/posix/kernel_posix.o
objects/haiku/riscv64/release/system/kernel/slab/kernel_slab.o
objects/haiku/riscv64/release/system/kernel/util/kernel_util.o
objects/haiku/riscv64/release/system/kernel/vm/kernel_vm.o
objects/haiku/riscv64/release/system/kernel/arch/riscv64/kernel_arch_riscv64.o
objects/haiku/riscv64/release/system/kernel/platform/u-boot/kernel_platform_u-boot.o
objects/haiku/riscv64/release/system/kernel/linkhack.so
objects/haiku/riscv64/release/system/kernel/lib/kernel_os_main.o
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_os_arch_riscv64.o
objects/haiku/riscv64/release/system/kernel/lib/kernel_lib_posix.o
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_lib_posix_arch_riscv64.o
objects/haiku/riscv64/release/system/kernel/lib/kernel_misc.o
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a
--version-script=../src/haiku/src/system/kernel/kernel_versions
==555==
GNU ld (GNU Binutils) 2.28.1
Supported emulations:
elf64lriscv
elf32lriscv
opened script file ../src/haiku/src/system/ldscripts/riscv64/kernel.ld
opened script file ../src/haiku/src/system/kernel/kernel_versions
using external linker script:
==================================================
OUTPUT_FORMAT("elf64-littleriscv", "elf64-littleriscv",
"elf64-littleriscv")
OUTPUT_ARCH(riscv)
ENTRY(_start)
SECTIONS
{
. = 0xFFFFFFFF80000000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
.rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
.rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
}
.rela.got : { *(.rela.got) }
.rela.ctors : { *(.rela.ctors) }
.rela.dtors : { *(.rela.dtors) }
.rela.init : { *(.rela.init) }
.rela.fini : { *(.rela.fini) }
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) } =0x90909090
.plt : { *(.plt) }
/* text/read-only data */
.text : { *(.text .text.* .gnu.linkonce.t.*) } =0x90909090
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
. = ALIGN(0x8);
altcodepatch_begin = .;
.altcodepatch : { *(.altcodepatch) }
altcodepatch_end = .;
/* writable data */
. = ALIGN (0x1000);
__data_start = .;
.data : { *(.data .data.* .gnu.linkonce.d.*) }
. = ALIGN(0x4);
__ctor_list = .;
.ctors : { *(.ctors) }
__ctor_end = .;
__dtor_list = .;
.dtors : { *(.dtors) }
__dtor_end = .;
.got : { *(.got.plt) *(.got) }
.dynamic : { *(.dynamic) }
/* uninitialized data (in same segment as writable data) */
__bss_start = .;
.bss : { *(.bss .bss.* .gnu.linkonce.b.*) }
. = ALIGN(0x1000);
_end = . ;
/* Strip unnecessary stuff */
/DISCARD/ : { *(.comment .note .eh_frame) }
}
==================================================
attempt to open
objects/haiku/riscv64/release/system/kernel/cache/kernel_cache.o succeeded
objects/haiku/riscv64/release/system/kernel/cache/kernel_cache.o
attempt to open objects/haiku/riscv64/release/system/kernel/kernel_core.o
succeeded
objects/haiku/riscv64/release/system/kernel/kernel_core.o
attempt to open
objects/haiku/riscv64/release/system/kernel/debug/kernel_debug.o succeeded
objects/haiku/riscv64/release/system/kernel/debug/kernel_debug.o
attempt to open
objects/haiku/riscv64/release/system/kernel/device_manager/kernel_device_manager.o
succeeded
objects/haiku/riscv64/release/system/kernel/device_manager/kernel_device_manager.o
attempt to open
objects/haiku/riscv64/release/system/kernel/disk_device_manager/kernel_disk_device_manager.o
succeeded
objects/haiku/riscv64/release/system/kernel/disk_device_manager/kernel_disk_device_manager.o
attempt to open objects/haiku/riscv64/release/system/kernel/fs/kernel_fs.o
succeeded
objects/haiku/riscv64/release/system/kernel/fs/kernel_fs.o
attempt to open
objects/haiku/riscv64/release/system/kernel/messaging/kernel_messaging.o
succeeded
objects/haiku/riscv64/release/system/kernel/messaging/kernel_messaging.o
attempt to open
objects/haiku/riscv64/release/system/kernel/posix/kernel_posix.o succeeded
objects/haiku/riscv64/release/system/kernel/posix/kernel_posix.o
attempt to open objects/haiku/riscv64/release/system/kernel/slab/kernel_slab.o
succeeded
objects/haiku/riscv64/release/system/kernel/slab/kernel_slab.o
attempt to open objects/haiku/riscv64/release/system/kernel/util/kernel_util.o
succeeded
objects/haiku/riscv64/release/system/kernel/util/kernel_util.o
attempt to open objects/haiku/riscv64/release/system/kernel/vm/kernel_vm.o
succeeded
objects/haiku/riscv64/release/system/kernel/vm/kernel_vm.o
attempt to open
objects/haiku/riscv64/release/system/kernel/arch/riscv64/kernel_arch_riscv64.o
succeeded
objects/haiku/riscv64/release/system/kernel/arch/riscv64/kernel_arch_riscv64.o
attempt to open
objects/haiku/riscv64/release/system/kernel/platform/u-boot/kernel_platform_u-boot.o
succeeded
objects/haiku/riscv64/release/system/kernel/platform/u-boot/kernel_platform_u-boot.o
attempt to open objects/haiku/riscv64/release/system/kernel/linkhack.so
succeeded
objects/haiku/riscv64/release/system/kernel/linkhack.so
attempt to open
objects/haiku/riscv64/release/system/kernel/lib/kernel_os_main.o succeeded
objects/haiku/riscv64/release/system/kernel/lib/kernel_os_main.o
attempt to open
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_os_arch_riscv64.o
succeeded
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_os_arch_riscv64.o
attempt to open
objects/haiku/riscv64/release/system/kernel/lib/kernel_lib_posix.o succeeded
objects/haiku/riscv64/release/system/kernel/lib/kernel_lib_posix.o
attempt to open
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_lib_posix_arch_riscv64.o
succeeded
objects/haiku/riscv64/release/system/kernel/lib/arch/riscv64/kernel_lib_posix_arch_riscv64.o
attempt to open objects/haiku/riscv64/release/system/kernel/lib/kernel_misc.o
succeeded
objects/haiku/riscv64/release/system/kernel/lib/kernel_misc.o
attempt to open
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a
succeeded
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)class_type_info.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)dyncast.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)new_handler.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)si_class_type_info.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)tinfo.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libsupc++-kernel.a)vmi_class_type_info.o
attempt to open
build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a
succeeded
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a)_clzsi2.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a)_bswapsi2.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a)extenddftf2.o
(build_packages/gcc_bootstrap_syslibs_devel-7.3.0_2019_04_04-1-riscv64/develop/lib/libgcc-kernel.a)_clz.o
==555== Invalid read of size 8
==555== at 0x166817: riscv_global_pointer_value.isra.11 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x166888: _bfd_riscv_relax_lui (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x164CD4: _bfd_riscv_relax_section (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x1367D5: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x1369C8: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x136B2B: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13A595: lang_size_sections (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13A817: lang_relax_sections (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x149994: gldelf64lriscv_after_allocation (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13CEC3: lang_process (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x12B641: main (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== Address 0x28 is not stack'd, malloc'd or (recently) free'd
==555==
==555==
==555== Process terminating with default action of signal 11 (SIGSEGV): dumping
core
==555== Access not within mapped region at address 0x28
==555== at 0x166817: riscv_global_pointer_value.isra.11 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x166888: _bfd_riscv_relax_lui (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x164CD4: _bfd_riscv_relax_section (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x1367D5: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x1369C8: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x136B2B: lang_size_sections_1 (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13A595: lang_size_sections (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13A817: lang_relax_sections (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x149994: gldelf64lriscv_after_allocation (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x13CEC3: lang_process (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== by 0x12B641: main (in
/work/generated.riscv64/cross-tools-riscv64/bin/riscv64-unknown-haiku-ld)
==555== If you believe this happened as a result of a stack
==555== overflow in your program's main thread (unlikely but
==555== possible), you can try to increase the size of the
==555== main thread stack using the --main-stacksize= flag.
==555== The main thread stack size used in this run was 8388608.
==555==
==555== HEAP SUMMARY:
==555== in use at exit: 7,924,448 bytes in 1,256 blocks
==555== total heap usage: 19,293 allocs, 18,037 frees, 12,478,866 bytes
allocated
==555==
==555== LEAK SUMMARY:
==555== definitely lost: 11,160 bytes in 9 blocks
==555== indirectly lost: 0 bytes in 0 blocks
==555== possibly lost: 0 bytes in 0 blocks
==555== still reachable: 7,913,288 bytes in 1,247 blocks
==555== suppressed: 0 bytes in 0 blocks
==555== Rerun with --leak-check=full to see details of leaked memory
==555==
==555== For counts of detected and suppressed errors, rerun with: -v
==555== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/24426] New: Binutils 2.28.1 segfault when presented (any) linker script on riscv64,
kallisti5 at unixzen dot com <=
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/08
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, wilson at gcc dot gnu.org, 2019/04/08
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, wilson at gcc dot gnu.org, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, wilson at gcc dot gnu.org, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, wilson at gcc dot gnu.org, 2019/04/09
- [Bug ld/24426] Binutils 2.28.1 segfault when presented (any) linker script on riscv64, kallisti5 at unixzen dot com, 2019/04/10