Camillo, The zeronconf version is build with an older GLIBC and fails when started on deb6 amd64. Stef, Look at what comes from unzipping the build on files.pharo.org: root@devdebian:/home/philippeback/Downloads/pharovm91# ./pharo ./pharo: /lib32/libc.so.6: version `GLIBC_2.15' not found (required by ./pharo) root@devdebian:/home/philippeback/Downloads/pharovm91# No matter how many lib32 libs are in there. Phil 2013/2/24 Camillo Bruni <camillobruni@gmail.com>:
On 2013-02-24, at 21:25, "phil@highoctane.be" <phil@highoctane.be> wrote:
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).
the easiest solution here would be for us to switch to an older ubuntu machine and build the VM there with older glibc versions present. Actually might be not that bad to see what happens on an older machine :)
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 <stephane.ducasse@free.fr>:
Hi phil
why do you not use the pharo git version?
Stef
On Feb 24, 2013, at 8:21 PM, phil@highoctane.be 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>