[Bug 1563861] Re: gdc: Fails to link any code using std.net.curl

Matthias Klumpp matthias at tenstral.net
Wed Mar 30 15:57:29 UTC 2016


Hmm, quick question: Does "Won't fix" mean this should be fixed in dub to pass this option to GDC? If so, I would formward this report to upstream dub, so they can apply it to every dub-using project (which means less project-specific fixes).
This would also mean that people not using dub should use that combination of flags if they want to link against Curl (I would fix that in the Debian package of dub then).

Or does won't fix mean that this thing should be fixed in upstream GDC,
but you won't explicitly fix it in the Ubuntu package?

-- 
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