[Bug 1563861] Re: gdc: Fails to link any code using std.net.curl
Matthias Klose
doko at ubuntu.com
Wed Mar 30 16:32:10 UTC 2016
gdc probably should add some config binary to add these libs. And if
it's built as a shared lib, then the library should be linked against
it. But for now, from my point of view, users of these extra stuff
should link with the required libs itself.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-5 in Ubuntu.
https://bugs.launchpad.net/bugs/1563861
Title:
gdc: Fails to link any code using std.net.curl
Status in dub package in Ubuntu:
New
Status in gcc-5 package in Ubuntu:
Won't Fix
Bug description:
Hi!
The GDC D compiler in Ubuntu is currently unable to link anything
using std.net.curl, likely due to an ordering issue in the linker
command-line, since Ubuntus libcurl is compiled with --as-needed
To reproduce, take the following simple program:
test.d
```
import std.stdio;
import std.net.curl;
void main(string[] args)
{
auto data = get ("ubuntu.com");
writeln (data);
}
```
And compile with `gdc -lcurl -otest test.d`
Linking will file with lots of messages like
```
/usr/lib/gcc/x86_64-linux-gnu/5/libgphobos2.a(curl.o): In function `_D3std3net4curl4Curl18_sharedStaticCtor2FZv':
/build/gcc-5-hPAq_C/gcc-5-5.3.1/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3498: undefined reference to `curl_global_init'
```
A possible solution to this problem would be to link all D programs against libcurl, as has apparently been done in LDC: https://github.com/ldc-developers/ldc/pull/977
Maybe having GDC fix up the linker command line would also work.
Backporting the (massive) patch for Phobos for dynamically loading
libcurl would also be an option, but I guess it wouldn't be an easy
solution.
This being broken in Ubuntu means that Ubuntu can't compile several
important tools, like the dub D package manager, which compiles fine
in Debian ( https://packages.debian.org/source/stretch/dub ).
Since std.net is a part of the standard library, and it's kind of
expected from a standard library to function, I've set the priority of
this bug to "High".
Thanks in advance for the help! I am also thinking about reporting
this bug upstream, but since compiling in other distros (e.g. Debian)
works, I don't know how quickly one could expect people there to take
care of this issue.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dub/+bug/1563861/+subscriptions
More information about the foundations-bugs
mailing list