Hello,
After installing the DMD2.063.2 rpm on openSUSE-12.2 and openSUSE-12.3
(both 32bits) I had some trouble with building dub (~master). Linkage
failed with:
dmd -ofbin/dub -g -debug -w -property -Isource -L-lphobos2 -L-lcurl
@build-files.txt ....
/opt/dmd2/linux/bin32/../lib32/libphobos2.so: undefined reference to
`curl_global_cleanup@CURL_OPENSSL_3'
/opt/dmd2/linux/bin32/../lib32/libphobos2.so: undefined reference to
`curl_easy_cleanup@CURL_OPENSSL_3'...
The same issues occurred with the zip.
Building a sample c/c++ program using libcurl linked without problems...
After some dissection this was revealed:
ldd on libphobos2.so shows:
ldd /opt/dmd2/linux/lib32/libphobos2.so
ldd: warning: you do not have execution permission for
`/opt/dmd2/linux/lib32/libphobos2.so'
/opt/dmd2/linux/lib32/libphobos2.so: /usr/lib/libcurl.so.4: no version
information available (required by /opt/dmd2/linux/lib32/libphobos2.so)
linux-gate.so.1 (0xb77bf000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0xb748d000)
Turns out the supplied libphobos2.so in the zip/rpm is linked against a
newer version of libcurl than available on openSUSE-12.x. I can imagine
this does not only affect openSUSE-12 users.
After a git clone and checkout of dmd/druntime/phobos, the host-build dmd
could compile-and-link dub without problems.
So, would it be possible for the next release of the zip and rpms to link
libphobos against a older (oldest possible) libcurl to alleviate/resolve
this problem?
Thanks.
Arjan