Jump to page: 1 2
Thread overview
[Issue 17375] copy relocated ModuleInfos end up getting detected as duplicates
May 06, 2017
Vladimir Panteleev
May 06, 2017
Vladimir Panteleev
May 07, 2017
Vladimir Panteleev
[Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries
May 08, 2017
Martin Nowak
May 08, 2017
Martin Nowak
May 09, 2017
Vladimir Panteleev
May 18, 2017
Martin Nowak
May 18, 2017
Vladimir Panteleev
Jun 16, 2017
Martin Nowak
Jun 16, 2017
Vladimir Panteleev
Jul 05, 2017
Marco Leise
Jul 05, 2017
Ketmar Dark
Jul 09, 2017
Seb
Jul 31, 2017
Thomas Mader
Dec 13, 2017
Seb
Dec 16, 2017
Marco Leise
Dec 16, 2017
greenify
May 06, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

greensunny12@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |greensunny12@gmail.com

--
May 06, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thecybershadow@gmail.com

--
May 06, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #1 from Vladimir Panteleev <thecybershadow@gmail.com> ---
On Arch Linux, this is reproducible with binutils 2.28.0, but not reproducible with 2.27.

--
May 07, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #2 from Vladimir Panteleev <thecybershadow@gmail.com> ---
Bisecting binutils points to:

9acc85a62eb76c270724bba15c889d2d05567b6a is the first bad commit
commit 9acc85a62eb76c270724bba15c889d2d05567b6a
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Dec 28 17:04:15 2016 +1030

    Use dynrelro for symbols in relro sections too

            PR ld/20995
    bfd/
            * elflink.c (elf_link_add_object_symbols): Mark relro sections
            in dynamic objects SEC_READONLY.
    ld/
            * testsuite/ld-elf/pr20995c.s: New test file.
            * testsuite/ld-elf/pr20995-2so.r: Likewise.
            * testsuite/ld-elf/elf.exp: Run it.

:040000 040000 decd212336814caf0562835700a42a8f6d3e5e34
8f7d306bf5df00e27fa208f6dc66e345ca5064e8 M      bfd
:040000 040000 c101f8812c1c65893d81807818e3bfb8acd3ae1e
decd54f18574d1b7d39c8888ff551cbde3d3cbe0 M      ld

--
May 08, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|copy relocated ModuleInfos  |colliding modules detected
                   |end up getting detected as  |with binutils 2.28 linker
                   |duplicates                  |and shared libraries
           Severity|enhancement                 |critical

--
May 08, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #3 from Martin Nowak <code@dawg.eu> ---
Also see https://sourceware.org/bugzilla/show_bug.cgi?id=20995 and
http://sourceware-org.1504.n7.nabble.com/dynrelro-section-for-read-only-dynamic-symbols-copied-into-executable-td429858.html
for more info on the binutils change.

As a workaround, also compile the executable with -fPIC (PIE). This will avoid the necessity for copy relocation. We made PIE the default in a recent release.

--
May 09, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #4 from Vladimir Panteleev <thecybershadow@gmail.com> ---
Workaround for Arch Linux:

Grab the 2.27 package from https://archive.archlinux.org/packages/b/binutils/binutils-2.27-1-x86_64.pkg.tar.xz, unpack it somewhere, then prefix $PATH with that package's "bin" directory and $LD_LIBRARY_PATH with that package's "lib" directory.

--
May 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #5 from Martin Nowak <code@dawg.eu> ---
The PIE (-fPIC) workaround seems a lot simpler. It should be made default on Arch anyhow after we've switched with 2.072.2 http://forum.dlang.org/post/o3sr68$2shj$1@digitalmars.com.

--
May 18, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #6 from Vladimir Panteleev <thecybershadow@gmail.com> ---
(In reply to Martin Nowak from comment #5)
> The PIE (-fPIC) workaround seems a lot simpler.

Sorry, yeah, I meant when modifying the build command is not feasible (e.g. when bisecting / doing regression testing).

Do you think you could submit a PR to fix the Druntime and Phobos Makefiles? I'd also like to make Digger apply that patch automatically so it's possible to run tests of older versions of D with newer binutils.

--
June 16, 2017
https://issues.dlang.org/show_bug.cgi?id=17375

--- Comment #7 from Martin Nowak <code@dawg.eu> ---
Maybe you had a different git repo, my bisect ended at commit https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9acc85a62eb76c270724bba15c889d2d05567b6a.

We could solve this by emitting the ModuleInfos themselves (not only a pointer
to them) to their own sections and using the old section bracket trick
(__start_minfo and __stop_minfo see
https://github.com/dlang/dmd/blob/eb3bc8d8902a0b0c3b3b02058265d811ec310eb9/src/ddmd/backend/elfobj.c#L3319).

Would need 2 sections if some of them are readonly and some are relro though.

--
« First   ‹ Prev
1 2