CurlPlugin (call for testing) - Linux version added

danil osipchuk danil at mtsnet.ru
Thu Oct 12 15:14:19 UTC 2006


>>> I'm compiling recent versions of the plugin against a daily snapshot  
>>> http://cool.haxx.se/curl-daily/, particulary this one: September 30,  
>>> 2006 (because there are bugs being fixed). To get most of it libcurl  
>>> should be compiled with c-ares (async DNS lookups) and OpenSSL.
>>> Typical unix-like system will probably already have a stable libcurl  
>>> installed, so here is a deployment complication - one needs to put  
>>> newer libs (at least the version curl 7.15.5) somewhere in  
>>> LD_LIBRARY_PATH before the libs present when starting Squeak.
>>
>> If you are going to run newer version of curl on os-x then we'll need  
>> to statically link in the newer library.
>
> Is it possible to have a statically linked shared library? That would be
> an ideal solution, but as far as I know it is not possible with gnu  
> tools,
> yes (don't know how about MacOS)?
>


Apparently it is possible, at least I managed to link statically  
CurlPlugin against it dependencies (it is 3.4M therefore):

http://minnow.cc.gatech.edu/squeak/uploads/5865/CurlPlugin.tar.gz

kubuntu at kubuntu-laptop:~/Squeak/CurlPlugin$ file CurlPlugin
CurlPlugin: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),  
not stripped

kubuntu at kubuntu-laptop:~/Squeak/CurlPlugin$ ls -l
total 3944
-rw-r--r-- 1 kubuntu kubuntu    6319 2006-10-12 17:42 CurlFtpTests.st
-rwxr-xr-x 1 kubuntu kubuntu 3386131 2006-10-12 17:47 CurlPlugin
-rw-r--r-- 1 kubuntu kubuntu  426317 2006-10-12 17:49 CurlPluginCaCert.pem
-rw-r--r-- 1 kubuntu kubuntu  147811 2006-10-12 17:45 CurlPlugin.st
-rw-r--r-- 1 kubuntu kubuntu   40468 2006-10-12 17:42 Curl.st
-rw-r--r-- 1 kubuntu kubuntu    7378 2006-10-12 17:46 CurlTests.st

kubuntu at kubuntu-laptop:~/Squeak/CurlPlugin$ ldd CurlPlugin
         linux-gate.so.1 =>  (0xffffe000)
         libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c8d000)
         /lib/ld-linux.so.2 (0x80000000)


It works on my box, however i had to do a trick in order to complie it[*]  
so I wonder will it work anywhere other than my laptop?

[*]
This is a fragment from CurlPlugin/Makefile:

LINK            = $(LIBTOOL) --mode=link \
                   $(CC) $(CFLAGS) $(XCFLAGS) \
                   $(LDFLAGS) $(XLDFLAGS)  -shared -avoid-version -module  
-rpath $(plgdir)\
                   -Wl,-Bstatic -Wl,-lcurl -Wl,-lcares -Wl,-lidn -Wl,-lssl \
                   -Wl,-lcrypto -Wl,-lz -o


On my systems it initially failed with the error 'ldd: could not find  
libgcc_s'
There was no such lib as libgcc_s.a untill I added symlink to the  
libgcc_eh.a

I'm curios how legitimate is that :)





More information about the Squeak-dev mailing list