digitalmars.D - dmd2.063.2 packaged libphobos2.so and linux disto libcurl.so
- Arjan (31/31) Jul 15 2013 Hello,
 - Dicebot (8/9) Jul 15 2013 Shared library support is only semi-official so
 - Jordi Sayol (6/30) Jul 15 2013 This is a known problem and will be fixed on the next release.
 
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
 Jul 15 2013
On Monday, 15 July 2013 at 13:13:53 UTC, Arjan wrote:...Shared library support is only semi-official so packaging/toolchain issues are expected within a reasonable limit. Thanks for your report, that is definitely worth paying attention to in next release. P.S. IMHO a typical example why providing packages on dlang.org instead of delegating maintenance to actual platform users is not a good idea ;)
 Jul 15 2013
On 15/07/13 15:13, Arjan wrote:
 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?
 
This is a known problem and will be fixed on the next release.
Current phobos shared library has "libcurl versioned symbols" ( CURL_OPENSSL_3)
and they are only usable on systems like Debian, Ubuntu, Linux Mint, etc. This
problem is not related to the libcurl version.
Regards,
-- 
Jordi Sayol
 Jul 15 2013








 
 
 
 "Dicebot" <public dicebot.lv> 