Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Guillermo Polito
 
Hi Eliot,

Ci builds for Pharo are failing on Osx


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.

/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
Reply | Threaded
Open this post in threaded view
|

Re: Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Eliot Miranda-2
 
Hi Guille,

On Jan 16, 2019, at 4:33 AM, Guillermo Polito <[hidden email]> wrote:

Hi Eliot,

Ci builds for Pharo are failing on Osx


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.


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
Reply | Threaded
Open this post in threaded view
|

Re: Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Guillermo Polito
 
Hi,

On Wed, Jan 16, 2019 at 4:41 PM Eliot Miranda <[hidden email]> wrote:
 
Hi Guille,

On Jan 16, 2019, at 4:33 AM, Guillermo Polito <[hidden email]> wrote:

Hi Eliot,

Ci builds for Pharo are failing on Osx


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 :). 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:

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 :).
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


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Eliot Miranda-2
 
Hi Guille,


On Jan 16, 2019, at 7:55 AM, Guillermo Polito <[hidden email]> wrote:

Hi,

On Wed, Jan 16, 2019 at 4:41 PM Eliot Miranda <[hidden email]> wrote:
 
Hi Guille,

On Jan 16, 2019, at 4:33 AM, Guillermo Polito <[hidden email]> wrote:

Hi Eliot,

Ci builds for Pharo are failing on Osx


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:

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


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Missing requirements for libBochsIA32Plugin on Osx32 pharo builds

Guillermo Polito
 
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


On Wed, Jan 16, 2019 at 6:11 PM Eliot Miranda <[hidden email]> wrote:
 
Hi Guille,


On Jan 16, 2019, at 7:55 AM, Guillermo Polito <[hidden email]> wrote:

Hi,

On Wed, Jan 16, 2019 at 4:41 PM Eliot Miranda <[hidden email]> wrote:
 
Hi Guille,

On Jan 16, 2019, at 4:33 AM, Guillermo Polito <[hidden email]> wrote:

Hi Eliot,

Ci builds for Pharo are failing on Osx


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:

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


Web: 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


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13