[Vm-dev] Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Guillermo Polito guillermopolito at gmail.com
Thu Jan 17 10:36:09 UTC 2019


Hi all,

We have checked the differences between the builds and found the problem :).
Pharo compiles plugins into dylibs instead of bundles, and the specific
piece of the makefile that was doing the copy of those files into the final
product was not aware of the *.ignore files.

We've adapted the rules for dylibs to work the same as bundles both for
osx32 and 64 and now the build is green.

=>

$(APP)/Contents/MacOS/Plugins/%.dylib: $(BLDDIR)/vm/%.dylib
@mkdir -p $(APP)/Contents/MacOS/Plugins
@if [ -f $(basename $<).ignore ]; then \
echo $(notdir $<) is being ignored; \
rm -rf $^; \
else \
echo cp -p $< $(APP)/Contents/MacOS/Plugins; \
cp -p $< $(APP)/Contents/MacOS/Plugins; \
fi

https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/354
https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/480793723

On Wed, Jan 16, 2019 at 6:11 PM Eliot Miranda <eliot.miranda at gmail.com>
wrote:

>
> Hi Guille,
>
>
> On Jan 16, 2019, at 7:55 AM, Guillermo Polito <guillermopolito at gmail.com>
> wrote:
>
> Hi,
>
> On Wed, Jan 16, 2019 at 4:41 PM Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
>
>>
>> Hi Guille,
>>
>> On Jan 16, 2019, at 4:33 AM, Guillermo Polito <guillermopolito at gmail.com>
>> wrote:
>>
>> Hi Eliot,
>>
>> Ci builds for Pharo are failing on Osx
>>
>>
>> https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/480327959?utm_source=github_status&utm_medium=notification
>>
>> The problem seems to come from a missing requirement to build
>> libBochsIA32Plugin.dylib, which makes the build of the librar to be
>> skipped, and subsequently the VM build to fail.
>>
>>
>> That’s not the problem :-). The problem is that the build does not decide
>> not to build libBochsIA32Plugin because the prerequisites are not
>> present but instead fails.
>>
>> Please read my message asking to add the plugins to plugins.ext and read
>> the Mac makefiles in their treatment of the PREREQUISITES variable.  Those
>> makefiles (and the other platform makefiles/autoconf scripts) are written
>> to /not/ build the processor plugins unless the prerequisites have been
>> built.
>>
>> So the build specs, if they pay attention to plugins.ext, also need to
>> pay attention to PREREQUISITES and not build any plugin which has any
>> missing prerequisite.  Or if the build specs do not pay attention to
>> plugins.ext, should simply exclude the processor plugins.
>>
>> I did try and explain this in my message asking permission to add the
>> processor plugins to plugins.ext.  I am sorry if my language is not clear.
>> Did I not communicate clearly or did you read superficially or...?  I want
>> to understand so that we may communicate more effectively in the future and
>> you not waste time encountering errors like this.
>>
>
> There is no problem. I just want some insight to fix the issue, not
> blaming :).
>
>
> I’m not blaming either.  I’m just trying to improve my communication.
>
> That'll make me super happy.
>
> The thing is that I kind of assumed that the makefiles and specs were
> already managing the  PREREQUISITES correctly and that the changes in the
> following commit were enough:
>
>
> https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/494a823f2b55cb13f38eb2bd0788a00965405d6d
>
> So there may be some differences in the makefiles on the Pharo side that
> makes my assumptions to not hold.
> Just guessing here, but probably the PREREQUISITES support was introduced
> after the makefiles in the pharo.* tree were copied/created? No idea :).
>
>
> IIRC I added the PREREQUISITES support to the build.macos*/common
> makefiles after the first version was in use but it was pretty early in the
> process.  The use case is to allow ACM developer to arrange that the
> processor plugins are built without forcing them to be in the product build.
>
> I'll check it later.
>
> Thanks!
>
>
>>
>> Cheers, (sincerely)
>> Eliot
>>
>>
>> /Applications/Xcode.app/Contents/Developer/usr/bin/make BUILD=build \
>> -f
>> /Users/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/iOS/plugins/BochsIA32Plugin/Makefile
>> MAKEFILE=/Users/travis/build/OpenSmalltalk/opensmalltalk-vm/platforms/iOS/plugins/BochsIA32Plugin/Makefile
>> \
>> CONFIGURATION=product ARCH=i386 \
>> PLATDIR=../../platforms PLUGINSRCDIR=../../src/plugins
>> VMSRCDIR=../../spursrc/vm \
>> LIBNAME=libBochsIA32Plugin COGDEFS="-DPharoVM=1" \
>> APP=Pharo.app VM=Pharo BLDDIR=build USEPLUGINASDYLIB=TRUE \
>> THIRDPARTYOUTDIR=/Users/travis/build/OpenSmalltalk/opensmalltalk-vm/.thirdparty-cache/macOS/i386
>> \
>> \
>> build/vm/libBochsIA32Plugin.dylib
>> $(LIBNAME): libBochsIA32Plugin
>> ../common/Makefile.plugin:238: build/vm/libBochsIA32Plugin.dylib has
>> missing prerequisites. Not building.
>> echo >build/vm/libBochsIA32Plugin.ignore
>> cp -p build/vm/libBochsIA32Plugin.dylib Pharo.app/Contents/MacOS/Plugins
>> cp: build/vm/libBochsIA32Plugin.dylib: No such file or directory
>> make: *** [Pharo.app/Contents/MacOS/Plugins/libBochsIA32Plugin.dylib]
>> Error 1
>>
>> I see that the same in squeak builds just keeps going.
>> Some difference in the makefiles? Any idea?
>>
>> Thanks,
>> Guille
>>
>>
>
> --
>
>
>
> Guille Polito
>
> Research Engineer
>
> Centre de Recherche en Informatique, Signal et Automatique de Lille
>
> CRIStAL - UMR 9189
>
> French National Center for Scientific Research - *http://www.cnrs.fr
> <http://www.cnrs.fr>*
>
>
> *Web:* *http://guillep.github.io* <http://guillep.github.io>
>
> *Phone: *+33 06 52 70 66 13
>
>

-- 



Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*


*Web:* *http://guillep.github.io* <http://guillep.github.io>

*Phone: *+33 06 52 70 66 13
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20190117/7fc8434a/attachment-0001.html>


More information about the Vm-dev mailing list