Bug#845377: gdc-6: libdl trouble again
Hello Matthias and Iain,
Is it an expected effect that some programs now need to be build with
-fPIC? For example:
$ cat >test.d
import std.conv;
void main() {
string b;
float c;
to!int(b);
to!string(c);
}
$ gdc -o test test.d
/usr/bin/ld: /tmp/cc6LR10G.o: relocation R_X86_64_PC32 against symbol
`_D3std6format18__T10FormatSpecTaZ10FormatSpec6flPlusMxFNaNbNdNiNfZb'
can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
$ gdc --version
gdc (Debian 6.2.1-5) 6.2.1 20161124
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
On Wed, Nov 23, 2016 at 12:15 AM, Iain Buclaw <ibuclaw@gdcproject.org> wrote:
> On 22 November 2016 at 23:37, Matthias Klose <doko@debian.org> wrote:
>> Control: severity -1 important
>>
>> On 22.11.2016 22:21, Peter De Wachter wrote:
>>> Package: gdc-6
>>> Version: 6.2.1-4
>>> Severity: serious
>>> Justification: breaks other packages (ii-esu, tatan, dub)
>>>
>>> Hi,
>>>
>>> This upload has a bug very similar to #835255. The same test program
>>> again fails to link:
>>>
>>> import std.datetime;
>>> void main () { }
>>>
>>> $ gdc -o date date.d
>>> /usr/lib/gcc/x86_64-linux-gnu/6/libgphobos.a(lt4-curl.o): In function `_D3std3net4curl7CurlAPI7loadAPIFZPv':
>>> /build/gcc-6-N3r4h3/gcc-6-6.2.1/build/x86_64-linux-gnu/libphobos/src/../../../../src/libphobos/src/std/net/curl.d:3630: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
>>> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libdl.a(dlopen.o): In function `dlopen':
>>> (.text+0x5): undefined reference to `__dlopen'
>>> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libdl.a(dlclose.o): In function `dlclose':
>>> (.text+0x1): undefined reference to `__dlclose'
>>> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libdl.a(dlsym.o): In function `dlsym':
>>> (.text+0x5): undefined reference to `__dlsym'
>>> collect2: error: ld returned 1 exit status
>>
>> known. Please pass -shared-libphobos for now. Still planning to make this the
>> default.
>>
>
> Agreed. I'll build the packages with this configuration and test locally.
Reply to: