[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/21703] The first symbol definition is overwritten by second defi
From: |
renlin.li at arm dot com |
Subject: |
[Bug ld/21703] The first symbol definition is overwritten by second definition when --allow-multiple-definition is provieded |
Date: |
Tue, 24 Oct 2017 16:31:16 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=21703
Renlin Li <renlin.li at arm dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #10 from Renlin Li <renlin.li at arm dot com> ---
(In reply to address@hidden from comment #9)
> The master branch has been updated by Renlin Li <address@hidden>:
>
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;
> h=93f4de3929aeb3e21d57950bfa96539599a92f2a
>
> commit 93f4de3929aeb3e21d57950bfa96539599a92f2a
> Author: Renlin Li <address@hidden>
> Date: Tue Oct 24 12:42:30 2017 +0100
>
> [BFD][PR21703]Override the new defined symbol with the old normal symbol
> when --allow-multiple-definition is provided.
>
> The behavior of _bfd_elf_merge_symbol and
> _bfd_generic_link_add_one_symbol is
> inconsistent.
>
> In multiple definition case, _bfd_elf_merge_symbol decided to override
> the old
> symbol definition with the new defintion, (size, type, target data)
> In _bfd_generic_link_add_one_symbol, it simply return without doing
> anything
> because of allow-multiple-definition is provided.
> This leaves the symbol in a wrong state.
>
> Here, following the documentation, I made this patch to force the old
> definition
> override the new definition if the old symbol is not dynamic or weak.
> Because, in those two cases, it's expected to do some merge. I have
> checked
> that, those two cases are properly handled.
>
> bfd/
> PR ld/21703
> * elflink.c (_bfd_elf_merge_symbol): Handle multiple definition case.
>
> ld/
>
> PR ld/21703
> * testsuite/ld-elf/elf.exp: Run new tests.
> * testsuite/ld-elf/pr21703-1.s: New.
> * testsuite/ld-elf/pr21703-2.s: New.
> * testsuite/ld-elf/pr21703-3.s: New.
> * testsuite/ld-elf/pr21703-4.s: New.
> * testsuite/ld-elf/pr21703-r.sd: New.
> * testsuite/ld-elf/pr21703-shared.sd: New.
> * testsuite/ld-elf/pr21703.sd: New.
> * testsuite/ld-elf/pr21703.ver: New.
Mark the PR as Fixed.
--
You are receiving this mail because:
You are on the CC list for the bug.