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
|