[Vm-dev] Unexpected external library dependencies on linux

Levente Uzonyi leves at caesar.elte.hu
Wed Apr 22 13:31:33 UTC 2020

I just checked the binaries on bintray. The last good version is 
201909292337 (even though it has no plugins), the next one, which is 
broken, is 201910302214.
I checked commits between those dates and the only suspicious one was the 
gcc to clang change.
I compiled a VM on my machine with clang and one with gcc (by 
uncommenting the CC=clang line in mvm), and found that clang causes the 
dependency problems. The gcc version has the correct dependencies, the 
clang one has all the extra dependencies.

I also noticed that the fixes I made[1] to the CryptographyPlugins have not 
been applied. The code in the repository was still generated from an old 
version of the package (CryptographyPlugins-eem.14). And the plugins I 
asked to be included[2] have not been added.


[1] http://squeaksource.com/Cryptography/CryptographyPlugins-ul.22.mcz
[2] http://lists.squeakfoundation.org/pipermail/vm-dev/2020-March/033114.html

On Fri, 17 Apr 2020, Levente Uzonyi wrote:

> Hi Tobias,
> On Fri, 17 Apr 2020, Tobias Pape wrote:
>>> On 17.04.2020, at 01:28, David T. Lewis <lewis at mail.msen.com> wrote:
>>> On Thu, Apr 16, 2020 at 02:55:46PM -0700, tim Rowledge wrote:
>>>>> On 2020-04-16, at 2:42 PM, David T. Lewis <lewis at mail.msen.com> wrote:
>>>>> On Thu, Apr 16, 2020 at 06:53:51PM +0200, Levente Uzonyi wrote:
>>>>>> However, recent VMs (202003050026 from March, 202004160240 from April) 
>>>>>> also depend on the following:
>>>>>> libuuid.so.1
>>>>>> libutil.so.1
>>>>>> libpulse-simple.so.0
>>>>>> libasound.so.2
>>>>>> The last two are the most worrying as servers usually don't need or 
> have 
>>>>>> sound installed. So, without pulseaudio installed, these VMs won't 
> start.
>>>>>> Does anyone know how and why those new dependencies got there?
>>>>>> (These are the dependencies of the VM binary itself not dependencies of 
>>>>>> external plugins).
>>>>> Hi Levente,
>>>>> I don't know the answer to your question, but the sound dependencies are
>>>>> likely associated with the VM plugin modules vm-sound-*.so as opposed to
>>>>> any of the conventional VM plugins such as UUIDPlugin.so. It is quite
>>>>> likely that specifying the -vm-sound-null parameter to the VM will 
> bypass
>>>>> any problems. Otherwise, deleting the offending vm-sound-* modules 
> should
>>>>> be harmless.
>>>> Is it possible some edit to the build files made the pulse audio stuff
>>>> a default (this was discussed recently) and set it to link to the VM
>>>> instead of the (expected to be) separate vm-sound-* module? 
>>> Pulse audio /is/ one of the vm-sound-* modules, so the idea there was
>>> just to put it first in the search list because that's what makes sense on
>>> most Linux platforms today.
>>> But I see now that Levente was asking about library dependencies in the
>>> actual VM executable itself (which you can see with "$ ldd squeak" in the
>>> libarary directory with the VM and plugins). It has dependencies on the
>>> pulse audio and alsa sound libraries. That makes no sense at all, and I
>>> don't know the reason for it.
>>> I also see that the plugins have lots of unnecessary dependencies. For
>>> example, the UUID plugin depends on pulse audio and alsa sound libraries,
>>> which is obviously not right.
>> There might be a problem with the way the linker flags are being collected.
>> Namely, that they're built up while configuring the individual plugins but 
>> then used throughout the entire process. That bit me for some other flags
>> on FreeBSD.
> Just checked what library flags are passed when the VM binary is linked, 
> and they are:  -ldl -lutil -lpulse-simple -lasound -ldl -lm 
> So, you're right, the flags are wrong.
> Levente
>> Unser Bausystem ist Mist ;)
>> Best regards
>> 	-Tobias

More information about the Vm-dev mailing list