[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#835255: gdc-6: std.datetime: undefined reference to dlopen/dlsym/dlclose



On 23 August 2016 at 22:29, Peter De Wachter <pdewacht@gmail.com> wrote:
> Package: gdc-6
> Version: 6.2.0-1
> Severity: normal
>
> Hi. In this release, programs that reference std.datetime fail to
> build, with error messages referencing curl and libdl. I don't know
> what's going on here, but it seems there's something badly broken in
> libphobos.
>
> $ cat date.d
> import std.datetime;
> void main () { }
>
> $ gdc -o date date.d
> /usr/lib/gcc/x86_64-linux-gnu/6/libgphobos2.a(lt4-curl.o): In function `_D3std3net4curl7CurlAPI19_sharedStaticDtor18FZv':
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3682: undefined reference to `dlclose'
> /usr/lib/gcc/x86_64-linux-gnu/6/libgphobos2.a(lt4-curl.o): In function `_D3std3net4curl7CurlAPI7loadAPIFZPv':
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3630: undefined reference to `dlopen'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3636: undefined reference to `dlsym'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3662: undefined reference to `dlsym'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3662: undefined reference to `dlsym'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3662: undefined reference to `dlsym'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3662: undefined reference to `dlsym'
> /usr/lib/gcc/x86_64-linux-gnu/6/libgphobos2.a(lt4-curl.o):/build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3662: more undefined references to `dlsym' follow
> /usr/lib/gcc/x86_64-linux-gnu/6/libgphobos2.a(lt4-curl.o): In function `_D3std3net4curl7CurlAPI7loadAPIFZPv':
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3639: undefined reference to `dlclose'
> /build/gcc-6-JZuWWC/gcc-6-6.2.0/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3651: undefined reference to `dlopen'
> collect2: error: ld returned 1 exit status
>
>


Hmm, probably related to upstream bug:
https://bugzilla.gdcproject.org/show_bug.cgi?id=202#c10

There is definitely a problem where template symbols could land in any
module, and if that module has external dependencies, it forces them
on the user.

I had mentioned that moving to dynamic loading of std.net.curl may
help the original issue, so it looks like it just shifted the problem
elsewhere.  This will go away when phobos starts shipping as a dynamic
library.

https://github.com/D-Programming-GDC/GDC/pull/214

Iain.


Reply to: