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