Thread overview | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
May 06, 2017 [Issue 17375] copy relocated ModuleInfos end up getting detected as duplicates | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=17375 greensunny12@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |greensunny12@gmail.com -- |
May 06, 2017 [Issue 17375] copy relocated ModuleInfos end up getting detected as duplicates | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] copy relocated ModuleInfos end up getting detected as duplicates | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] copy relocated ModuleInfos end up getting detected as duplicates | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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 [Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries | ||||
---|---|---|---|---|
| ||||
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. -- |
Copyright © 1999-2021 by the D Language Foundation