Because I am not interested in just getting C sources, but understanding the VM build process from scratch.
Also, because that version fails with the GLIBC level problem (this includes the zeroconf script). I want to be able to make a debian package for Pharo, so, having Pharo running is step #1. apt-get install pharo Phil 2013/2/24 stephane ducasse <[email protected]>: > Hi phil > > why do you not use the pharo git version? > > Stef > > On Feb 24, 2013, at 8:21 PM, [email protected] wrote: > >> I've been trying to build pharo on debian 6 amd64 >> >> I've installed: >> >> libc6dev-i386 >> ia32-libs >> >> Then downloaded coglinux from Eliot's site. Launching squeak on the >> generator.image works and sources have been generated with: >> >> PharoVMBuilder build. >> >> Things went smooth for that step. >> >> Then I went to build/ and did a: >> >> cmake . >> >> No problems >> >> then make gave me trouble. >> >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/build# >> cmake . >> -- The C compiler identification is GNU >> -- The CXX compiler identification is GNU >> -- Check for working C compiler: /usr/bin/gcc >> -- Check for working C compiler: /usr/bin/gcc -- works >> -- Detecting C compiler ABI info >> -- Detecting C compiler ABI info - done >> -- Check for working CXX compiler: /usr/bin/c++ >> -- Check for working CXX compiler: /usr/bin/c++ -- works >> -- Detecting CXX compiler ABI info >> -- Detecting CXX compiler ABI info - done >> >> Adding internal plugin: ADPCMCodecPlugin >> Adding internal plugin: AsynchFilePlugin >> Adding internal plugin: B2DPlugin >> Adding internal plugin: BitBltPlugin >> Adding internal plugin: BMPReadWriterPlugin >> Adding internal plugin: CroquetPlugin >> Adding internal plugin: ZipPlugin >> Adding internal plugin: DropPlugin >> Adding internal plugin: DSAPrims >> Adding internal plugin: FFTPlugin >> Adding internal plugin: FileCopyPlugin >> Adding internal plugin: FilePlugin >> Adding internal plugin: FloatArrayPlugin >> Adding internal plugin: FloatMathPlugin >> Adding internal plugin: IA32ABI >> Adding internal plugin: JoystickTabletPlugin >> Adding internal plugin: JPEGReaderPlugin >> Adding internal plugin: JPEGReadWriter2Plugin >> Adding internal plugin: Klatt >> Adding internal plugin: LargeIntegers >> Adding internal plugin: Matrix2x3Plugin >> Adding internal plugin: MIDIPlugin >> Adding internal plugin: MiscPrimitivePlugin >> Adding internal plugin: Mpeg3Plugin >> Adding internal plugin: RePlugin >> Adding internal plugin: SecurityPlugin >> Adding internal plugin: SerialPlugin >> Adding internal plugin: SocketPlugin >> Adding internal plugin: SoundCodecPrims >> Adding internal plugin: SoundPlugin >> Adding internal plugin: StarSqueakPlugin >> Adding internal plugin: SurfacePlugin >> Adding internal plugin: LocalePlugin >> Adding internal plugin: NativeBoostPlugin >> Adding internal plugin: UnixOSProcessPlugin >> Adding external plugin: B3DAcceleratorPlugin >> Adding external plugin: SqueakFFIPrims >> Adding external plugin: InternetConfigPlugin >> Adding external plugin: FT2Plugin >> Adding external plugin: SqueakSSL >> Adding module: vm-display-null >> Adding module: vm-display-X11 >> Adding module: vm-sound-ALSA >> Adding module: vm-sound-null >> -- Configuring done >> -- Generating done >> -- Build files have been written to: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/build >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/build# >> make >> Scanning dependencies of target SqueakSSL >> [ 0%] Building C object >> SqueakSSL/CMakeFiles/SqueakSSL.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/SqueakSSL/SqueakSSL.c.o >> [ 1%] Building C object >> SqueakSSL/CMakeFiles/SqueakSSL.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c.o >> Linking C shared library >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/libSqueakSSL.so >> /usr/bin/ld: skipping incompatible >> /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libssl.so when searching >> for -lssl >> /usr/bin/ld: skipping incompatible >> /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libssl.a when searching >> for -lssl >> /usr/bin/ld: skipping incompatible /usr/lib/libssl.so when searching for >> -lssl >> /usr/bin/ld: skipping incompatible /usr/lib/libssl.a when searching for -lssl >> /usr/bin/ld: cannot find -lssl >> collect2: ld returned 1 exit status >> make[2]: *** >> [/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/libSqueakSSL.so] >> Error 1 >> make[1]: *** [SqueakSSL/CMakeFiles/SqueakSSL.dir/all] Error 2 >> make: *** [all] Error 2 >> >> >> So, I did a basic: d# ln -s /usr/lib32/libssl.so.0.9.8 /usr/lib32/libssl.so >> >> Which got me further. >> >> The build then failed (some kind of process problem: >> >> >> [ 81%] Building C object >> StarSqueakPlugin/CMakeFiles/StarSqueakPlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/StarSqueakPlugin/StarSqueakPlugin.c.o >> Linking C static library libStarSqueakPlugin.a >> [ 81%] Built target StarSqueakPlugin >> Scanning dependencies of target SurfacePlugin >> [ 82%] Building C object >> SurfacePlugin/CMakeFiles/SurfacePlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.c.o >> Linking C static library libSurfacePlugin.a >> [ 82%] Built target SurfacePlugin >> Scanning dependencies of target LocalePlugin >> [ 83%] Building C object >> LocalePlugin/CMakeFiles/LocalePlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/LocalePlugin/LocalePlugin.c.o >> [ 83%] Building C object >> LocalePlugin/CMakeFiles/LocalePlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c.o >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c: >> In function ‘sqLocGetCountryInto’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c:754: >> warning: initialization discards qualifiers from pointer target type >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c: >> In function ‘sqLocGetLanguageInto’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c:759: >> warning: initialization discards qualifiers from pointer target type >> Linking C static library libLocalePlugin.a >> [ 83%] Built target LocalePlugin >> Scanning dependencies of target NativeBoostPlugin >> [ 83%] Building C object >> NativeBoostPlugin/CMakeFiles/NativeBoostPlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c.o >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c: >> In function ‘primitiveDlopenFn’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c:166: >> warning: passing argument 1 of ‘positive32BitIntegerFor’ makes integer >> from pointer without a cast >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c:90: >> note: expected ‘sqInt’ but argument is of type ‘void *’ >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c: >> In function ‘primitiveDlsymFn’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c:184: >> warning: passing argument 1 of ‘positive32BitIntegerFor’ makes integer >> from pointer without a cast >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/NativeBoostPlugin/NativeBoostPlugin.c:90: >> note: expected ‘sqInt’ but argument is of type ‘void *’ >> Linking C static library libNativeBoostPlugin.a >> [ 83%] Built target NativeBoostPlugin >> Scanning dependencies of target UnixOSProcessPlugin >> [ 83%] Building C object >> UnixOSProcessPlugin/CMakeFiles/UnixOSProcessPlugin.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c.o >> ^Cmake[2]: *** wait: No child processes. Stop. >> make[2]: *** Waiting for unfinished jobs.... >> make[2]: *** wait: No child processes. Stop. >> make[1]: *** wait: No child processes. Stop. >> make[1]: *** Waiting for unfinished jobs.... >> make[1]: *** wait: No child processes. Stop. >> make: *** wait: No child processes. Stop. >> make: *** Waiting for unfinished jobs.... >> make: *** wait: No child processes. Stop. >> >> >> Restarted make then it proceeded. >> >> Then failed on libfreetype >> >> >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/src/plugins/FT2Plugin/FT2Plugin.c:1071: >> warning: assignment discards qualifiers from pointer target type >> Linking C shared library >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/libFT2Plugin.so >> /usr/bin/ld: skipping incompatible >> /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libfreetype.so when >> searching for -lfreetype >> /usr/bin/ld: skipping incompatible >> /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libfreetype.a when >> searching for -lfreetype >> /usr/bin/ld: skipping incompatible /usr/lib/libfreetype.so when >> searching for -lfreetype >> /usr/bin/ld: skipping incompatible /usr/lib/libfreetype.a when >> searching for -lfreetype >> /usr/bin/ld: cannot find -lfreetype >> collect2: ld returned 1 exit status >> make[2]: *** >> [/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/libFT2Plugin.so] >> Error 1 >> make[1]: *** [FT2Plugin/CMakeFiles/FT2Plugin.dir/all] Error 2 >> make: *** [all] Error 2 >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/build# >> >> Tried this: >> >> ln -s /usr/lib32/libfreetype.so.6 /usr/lib32/libfreetype.so >> >> One step ahead... >> >> Then crash: >> >> >> In file included from >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm/sqUnixMain.c:41: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h:17:54: >> error: vmVersionInfo.h: No such file or directory >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h:20:3: >> error: #error "Revision information not specified" >> In file included from >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm/sqUnixMain.c:41: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h: >> In function ‘sourceVersionString’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h:25: >> error: ‘REVISION_STRING’ undeclared (first use in this function) >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h:25: >> error: (Each undeclared identifier is reported only once >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/Cross/vm/sqSCCSVersion.h:25: >> error: for each function it appears in.) >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm/sqUnixMain.c: >> In function ‘getRedzoneSize’: >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm/sqUnixMain.c:2012: >> warning: assignment from incompatible pointer type >> make[2]: *** >> [CMakeFiles/pharo.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm/sqUnixMain.c.o] >> Error 1 >> make[1]: *** [CMakeFiles/pharo.dir/all] Error 2 >> make: *** [all] Error 2 >> >> Looks like the vmVersionInfo.h hasn't been generated in the build/ >> folder or something. Mayber it wasn't there. I copied the one I had >> from OSX >> >> Went somewhat further as well.. but not quite. >> >> >> Linking C executable >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/pharo >> [ 97%] Built target pharo >> Scanning dependencies of target vm-display-null >> [ 98%] Building C object >> vm-display-null/CMakeFiles/vm-display-null.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm-display-null/sqUnixDisplayNull.c:176: >> warning: initialization from incompatible pointer type >> Linking C shared library >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/vm-display-null >> [ 98%] Built target vm-display-null >> Scanning dependencies of target vm-display-X11 >> [ 99%] Building C object >> vm-display-X11/CMakeFiles/vm-display-X11.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm-display-X11/sqUnixX11.c.o >> [ 99%] Building C object >> vm-display-X11/CMakeFiles/vm-display-X11.dir/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/platforms/unix/vm-display-X11/sqUnixMozilla.c.o >> Linking C shared library >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/vm-display-X11 >> /usr/bin/ld: cannot find -lSM >> collect2: ld returned 1 exit status >> make[2]: *** >> [/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/vm-display-X11] >> Error 1 >> make[1]: *** [vm-display-X11/CMakeFiles/vm-display-X11.dir/all] Error 2 >> make: *** [all] Error 2 >> >> >> What's that SM lib? >> >> Yet another symlinking dude.. >> >> ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so >> >> Ha, the beast still resists... >> >> >> [ 98%] Built target vm-display-null >> Linking C shared library >> /home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/vm-display-X11 >> /usr/bin/ld: cannot find -lICE >> collect2: ld returned 1 exit status >> make[2]: *** >> [/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results/vm-display-X11] >> Error 1 >> make[1]: *** [vm-display-X11/CMakeFiles/vm-display-X11.dir/all] Error 2 >> make: *** [all] Error 2 >> >> So.... >> >> ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so >> >> same for GL >> >> >> ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so >> >> and X11 (I am getting tired...) >> >> ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so >> >> Looks like we are done. Not sure but... >> >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/build# >> make >> [ 1%] Built target SqueakSSL >> [ 1%] Built target DSAPrims >> [ 2%] Built target FFTPlugin >> [ 3%] Built target FileCopyPlugin >> [ 5%] Built target FilePlugin >> [ 5%] Built target BMPReadWriterPlugin >> [ 6%] Built target ZipPlugin >> [ 7%] Built target DropPlugin >> [ 8%] Built target CroquetPlugin >> [ 8%] Built target ADPCMCodecPlugin >> [ 9%] Built target BitBltPlugin >> [ 9%] Built target B2DPlugin >> [ 10%] Built target AsynchFilePlugin >> [ 10%] Built target FloatArrayPlugin >> [ 11%] Built target IA32ABI >> [ 29%] Built target FloatMathPlugin >> [ 30%] Built target JoystickTabletPlugin >> [ 30%] Built target JPEGReaderPlugin >> [ 55%] Built target JPEGReadWriter2Plugin >> [ 56%] Built target Klatt >> [ 56%] Built target LargeIntegers >> [ 57%] Built target Matrix2x3Plugin >> [ 58%] Built target MIDIPlugin >> [ 58%] Built target MiscPrimitivePlugin >> [ 73%] Built target Mpeg3Plugin >> [ 76%] Built target RePlugin >> [ 77%] Built target SecurityPlugin >> [ 78%] Built target SerialPlugin >> [ 79%] Built target SocketPlugin >> [ 80%] Built target SoundCodecPrims >> [ 81%] Built target SoundPlugin >> [ 81%] Built target StarSqueakPlugin >> [ 82%] Built target SurfacePlugin >> [ 83%] Built target LocalePlugin >> [ 83%] Built target NativeBoostPlugin >> [ 83%] Built target UnixOSProcessPlugin >> [ 85%] Built target B3DAcceleratorPlugin >> [ 87%] Built target SqueakFFIPrims >> [ 88%] Built target InternetConfigPlugin >> [ 88%] Built target FT2Plugin >> [ 97%] Built target pharo >> [ 98%] Built target vm-display-null >> [ 99%] Built target vm-display-X11 >> [ 99%] Built target vm-sound-ALSA >> [100%] Built target vm-sound-null >> >> A little go: >> >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/results# >> ./pharo >> Could not open the pharo image file `pharo.image'. >> >> There are three ways to open a pharo image file. You can: >> 1. Put copies of the default image and changes files in this directory. >> 2. Put the name of the image file on the command line when you >> run pharo (use the `-help' option for more information). >> 3. Set the environment variable PHARO_IMAGE to the name of the image >> that you want to use by default. >> >> For more information, type: `man pharo' (without the quote characters). >> >> Yes! >> >> And then, >> >> >> root@devdebian:/home/philippeback/Documents/Smalltalk/2-MyWorkspaces/workspaceVMOSXFromBook/blessed/image# >> ../results/pharo generator.image >> >> Working! Screenshot as proof. >> >> But the image complains that the VM is too old. I don't know where it >> goes to look after that, vmVersionInfo.h for sure. >> >> But it works well. >> >> Now, the next step would be doing the packaging. >> >> Phil >> <Capture d’écran 2013-02-24 à 20.20.10.png> > >
