December 07, 2016 [Issue 16794] .deb not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 Jonathan M Davis <issues.dlang@jmdavisProg.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on|15935 | -- | ||||
December 11, 2016 [Issue 16794] .deb not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #11 from Jonathan M Davis <issues.dlang@jmdavisProg.com> --- Well, there are multiple issues here. The primary one (and really what the focus of this bug report is given title) is that we need a solution that works for the package that we provide for debian-based systems. Ideally, it should support both static and shared libraries like we do on other linux systems, which - if I understand correctly - means that everything needs to be built with PIC in order to be able to link with the system libraries. Whether PIC is actually useful for a static libary is a separate issue. Now, if we can't get static libraries working at the moment, then at least getting shared libraries working would be in a _far_ better place than we are now, but really, they both should work. If it's possible to do it all without PIC and PIE and have it work on debian-based systems, then that's fine too, since the main problem is being able to use D at all (though I think that we do need PIE/PIC in order to work with the system libraries, since they're built with PIC). The other issue is just PIC in general. You should be able to build with PIC/PIE or not on linux systems with D just like you would with C/C++. We clearly have at least partial support for that, and we may have full support for it. It's not entirely clear to me what the situation is. If I build the druntime unittest build with 2.071.0 like I did before, then I get an ICE. The same for 2.071.1. However, 2.072.x does not seem to have that problem. Rather, it results in the "'__dmd_personality_v0' can not be used when making a shared object; recompile with -fPIC" error, even though I compiled with PIC=1. However, the _phobos unit tests compile and run with PIC=1 fine. So, I think that the problem is that druntime's unittest build doesn't fully support PIC. However, if I build master, I then get the ICE again - but with building the normal druntime build and not just the unittest build. So, it looks like we have problems with building PIE/PIC, depending on which version of the compiler you're dealing with. That being the case, I don't know how well dmd will work with PIC/PIE if we're provide debian package with such a build. But it looks like it's quite possible to bootstrap it and build 2.072.1 (as long as you don't care about running druntime's unit tests anyway). We need to fix that ICE for master though (so, bug #15935). -- | ||||
December 11, 2016 [Issue 16794] .deb not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #12 from Jonathan M Davis <issues.dlang@jmdavisProg.com> --- Okay. I take back what I just said about master. Either I had my machine in a funky state (I kept jumping between branches and might have screwed something up), or updating fixed it, but the ICE is gone just like it is in 2.072.x. The druntime unittest build still fails, but the non-unittest build works, and phobos' unittest build works. -- | ||||
December 23, 2016 [Issue 16794] .deb not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #13 from Martin Nowak <code@dawg.eu> --- Shared libraries are working, people were asking for PIE support with static phobos libraries. I'm running benchmarks atm., but even if those were OK for -fPIC on amd64, we still have a few problems. Phobos built with -fPIC can't be used without -fPIC (because some modules, e.g. SHA1, check for version (D_PIC)) atm. OTOH distributing phobos with and without PIC might bloat the binary package, and runs into the annoying limitations of dmd's CLI to select the right one. Using -fno-pie by default remains the easiest path forward. -- | ||||
December 23, 2016 [Issue 16794] .deb not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #14 from Martin Nowak <code@dawg.eu> --- Benchmarks are OK, tested druntime/benchmarks and Higgs. The missing PIC support of the asm SHA code is the only slowdown. It's also the main blocker for shipping a PIC compiled static phobos on all linux amd64 platforms. Hopefully not to difficult to fix, also see issue 9378. -- | ||||
December 24, 2016 [Issue 16794] dmd not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|.deb not working on Ubuntu |dmd not working on Ubuntu |16.10 because of default |16.10 because of default |PIE linking |PIE linking -- | ||||
December 25, 2016 [Issue 16794] dmd not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #15 from github-bugzilla@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/9fbce55814bdc8f78d6fead3243db657eafc4ec7 fix Issue 16794 - dmd not working on Ubuntu 16.10 - enable PIC by default on amd64 linux (no significant overhead, full PIC/PIE support) - also see https://github.com/dlang/installer/pull/207 https://github.com/dlang/dmd/commit/ad1e5d3ee5b9de164bd2acc3218047eac1f7d36a Merge pull request #6359 from MartinNowak/fix16794 fix Issue 16794 - dmd not working on Ubuntu 16.10 -- | ||||
December 25, 2016 [Issue 16794] dmd not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 github-bugzilla@puremagic.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED -- | ||||
December 25, 2016 [Issue 16794] dmd not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #16 from github-bugzilla@puremagic.com --- Commits pushed to stable at https://github.com/dlang/installer https://github.com/dlang/installer/commit/ca90c155a5bbbef145343af751cfe65adcdcf2b9 fix Issue 16794 - .deb no working on Ubuntu 16.10 - build amd64 linux libraries with PIC (no significant overhead of RIP relative addressing) - add -fPIC to default args on amd64 https://github.com/dlang/installer/commit/bd6e4c1e0a761acbd31851e42b84896ddd6ff31f Merge pull request #207 from MartinNowak/fix16794 fix Issue 16794 - .deb no working on Ubuntu 16.10 -- | ||||
December 27, 2016 [Issue 16794] dmd not working on Ubuntu 16.10 because of default PIE linking | ||||
|---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=16794 --- Comment #17 from github-bugzilla@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/9fbce55814bdc8f78d6fead3243db657eafc4ec7 fix Issue 16794 - dmd not working on Ubuntu 16.10 https://github.com/dlang/dmd/commit/ad1e5d3ee5b9de164bd2acc3218047eac1f7d36a Merge pull request #6359 from MartinNowak/fix16794 -- | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply