[Vm-dev] Unexpected external library dependencies on linux

David T. Lewis lewis at mail.msen.com
Fri Apr 17 20:55:34 UTC 2020


On Fri, Apr 17, 2020 at 08:21:28AM -0500, stes wrote:
> 
> Regarding the SSL I should add that
> 
>   1) I built the vm V5 using --disable-dynamicopenssl
>   2) both configurations vm V4 and vm V5 work 
> 
> They work because in Squeak V4 and V5 I can send a message like :
> 
>   SqueakSSL google:'squeak'
> 
> and this works in both Squeak V4 and Squeak V5.
> 
> But I think the Squeak V4 executable which has no "ldd"
> dependency on libssl is more logical; it is strange that the V5
> executable has
> 
> bash-4.4$ ldd squeak | grep ssl
> 	libssl.so.1.0.0 =>	 /lib/64/libssl.so.1.0.0
> 
> which is different in V4.
> 
> Also for other libraries similar oddities :
> 
> in V5
> bash-4.4$ ldd squeak | grep uuid        
> 	libuuid.so.1 =>	 /lib/64/libuuid.so.1
> 
> while in V4
> 
> bash-4.4$ ldd squeakvm | grep uuid
> 
> 
> in the Squeak V4 (which is built with 'cmake') the only uuid reference
> is in the module itself.
> 
> bash-4.4$ ldd so.UUIDPlugin 
> 	libuuid.so.1 =>	 /lib/libuuid.so.1
> 


For the traditional VM, Ian Piumarta implemented a different build system that
solved a lot of issues like this. At the time, things were quite messy as Linux
systems were transitioning from 32-bit to 64-bit and the library configuration.

The oscog branch on which all of the modern VMs are based was forked from the
squeakvm.org trunk a couple of years before that time (IIRC), and does not use
Ian's replacement build system.

BTW, you could make a good argument for either approach. The Cmake based system
is reliable and trouble free, but it does introduce a dependency on the Cmake
system, which could get to be a problem if its corporate sponsor ever went out
of business.

Dave



More information about the Vm-dev mailing list