[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/21532] AArch64: Symbol address inconsistency across compilation
From: |
jiwang at gcc dot gnu.org |
Subject: |
[Bug ld/21532] AArch64: Symbol address inconsistency across compilation units |
Date: |
Tue, 06 Jun 2017 11:46:29 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=21532
Jiong Wang <jiwang at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at sourceware dot org |jiwang at gcc dot
gnu.org
--- Comment #4 from Jiong Wang <jiwang at gcc dot gnu.org> ---
(In reply to Nick Clifton from comment #3)
> Hi Jiong,
>
> Thanks for taking a look at this.
>
> > Looks like AArch64 could avoid emiting COPY relocation if it's a
> > relocation
> > against writable section. We could adopt similar code from
> > elf_x86_64_adjust_dynamic_symbol or ppc64_elf_adjust_dynamic_symbol.
>
> Ah - maybe not. The original testcase (in the BZ) shows the bug happening
> when
> constant data is used rather than writeable data. You can also extend the
> second
> testcase I posted to use constant data and the same problem happens.
>
>
> >> It looks like the linker creates a copy of IEEEsingle in the executable but
> >> then the GOT entry for IEEEsingle is not updated in libLLVM.so, causing any
> >> accesses to IEEEsingle in libLLVM.so to refer to the original definition
> >
> > Does this means this is a glibc bug as well? dynamic linker needs to
> > redirect
> > the reference in the .so to the copy as well?
>
> This is a possibility, although I am not an expert on the dynamic linker. I
> think
> however that we need to verify that the static linker is producing the
> correct
> dynamic relocations first.
Thanks, I will prepare a patch to fix the BFD static linker.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, nickc at redhat dot com, 2017/06/05
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/05
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/06
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, nickc at redhat dot com, 2017/06/06
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units,
jiwang at gcc dot gnu.org <=
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/07
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, cvs-commit at gcc dot gnu.org, 2017/06/08
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/08
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/09
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/13
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, cvs-commit at gcc dot gnu.org, 2017/06/15
- [Bug ld/21532] AArch64: Symbol address inconsistency across compilation units, jiwang at gcc dot gnu.org, 2017/06/15