Bug#835255: gdc-6: std.datetime: undefined reference to dlopen/dlsym/dlclose
Control: severity -1 serious On Wed, 24 Aug 2016 10:34:01 +0200 Iain Buclawwrote: [...] > 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. in my opinion this is a serious regression and it breaks current reverse-dependencies in an obviously not intended way. See https://bugs.debian.org/835281 https://bugs.debian.org/835727 Regards, Markus signature.asc Description: OpenPGP digital signature
Bug#835255: gdc-6: std.datetime: undefined reference to dlopen/dlsym/dlclose
On 23 August 2016 at 22:29, Peter De Wachterwrote: > 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.
Bug#835255: gdc-6: std.datetime: undefined reference to dlopen/dlsym/dlclose
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 -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=nl_BE.UTF-8, LC_CTYPE=nl_BE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages gdc-6 depends on: ii g++-66.2.0-1 ii gcc-6-base 6.2.0-1 ii libc62.23-4 ii libgmp10 2:6.1.1+dfsg-1 ii libisl15 0.17.1-1 ii libmpc3 1.0.3-1 ii libmpfr4 3.1.4-2 ii libphobos-6-dev 6.2.0-1 ii zlib1g 1:1.2.8.dfsg-2+b1 gdc-6 recommends no packages. gdc-6 suggests no packages. -- no debconf information