From: Alan Modra Date: Fri, 29 Jan 2021 00:27:48 +0000 (+1030) Subject: PR27271, c6x-uclinux-ld segfaults linking ld-uClibc-1.0.37.so X-Git-Tag: binutils-2_36_1~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=00e280d52a341dbfe440e49ac5808fc680f0a24a;p=thirdparty%2Fbinutils-gdb.git PR27271, c6x-uclinux-ld segfaults linking ld-uClibc-1.0.37.so bfd/ PR 27271 * elflink.c (bfd_elf_link_record_dynamic_symbol): Don't segfault on symbols defined in absolute or other special sections. ld/ * testsuite/ld-tic6x/tic6x.exp: Add pr27271 test. (cherry picked from commit c4566785ac265b3e4b3cde0e43733975c58d9175) --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b0f734e1c97..18d48ace726 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2021-01-29 Alan Modra + + PR 27271 + * elflink.c (bfd_elf_link_record_dynamic_symbol): Don't segfault + on symbols defined in absolute or other special sections. + 2021-01-26 Alan Modra * elf32-ft32.c (ft32_reloc_type_lookup): Don't miss ft32_reloc_map[0]. diff --git a/bfd/elflink.c b/bfd/elflink.c index 27564adb8c3..45ecd770046 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -537,8 +537,10 @@ bfd_elf_link_record_dynamic_symbol (struct bfd_link_info *info, if (!elf_hash_table (info)->is_relocatable_executable || ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) + && h->root.u.def.section->owner != NULL && h->root.u.def.section->owner->no_export) || (h->root.type == bfd_link_hash_common + && h->root.u.c.p->section->owner != NULL && h->root.u.c.p->section->owner->no_export)) return TRUE; } diff --git a/ld/ChangeLog b/ld/ChangeLog index ccef43aac18..2ac80ea2761 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2021-01-29 Alan Modra + + * testsuite/ld-tic6x/tic6x.exp: Add pr27271 test. + 2021-01-27 Nick Clifton Import from mainline: diff --git a/ld/testsuite/ld-tic6x/tic6x.exp b/ld/testsuite/ld-tic6x/tic6x.exp index e11699bed31..0a913da25d9 100644 --- a/ld/testsuite/ld-tic6x/tic6x.exp +++ b/ld/testsuite/ld-tic6x/tic6x.exp @@ -130,6 +130,11 @@ set shlibtests { {objdump -sj.got static-app-1rb.sd} {objdump -R static-app-1rb.od}} "static-app-1rb"} + + {"C6X shared library with --export-dynamic" + "-shared --export-dynamic -Tdsbt.ld --dsbt-size=3 --hash-style=sysv" "" + "-mdsbt -mpic -mpid=near" {shlib-1.s shlib-2.s} + {} "pr27271.so"} } run_ld_link_tests $shlibtests