[Pharo-project] building Cog on 64 bits debian
Hi I try to build a 32bits Cog on Debian 64 bits. I do: apt-get install libsm-dev libasound2-dev libgl1-mesa-dev cmake g++ libc6-dev-i386 git clone --depth 1 git:// gitorious.org/~laurentlaffont/cogvm/smallharbour.git shvm cd shvm/codegen-scripts/ export SQUEAKVM=/usr/local/bin/coglinux/squeak sh ./buildImage.sh -headless sh ./generate.sh -headless CogUnixConfig cd ../build/ sh ../codegen-scripts/extract-commit-info.sh cmake . make I have the error: [ 94%] Built target CogVM Linking C shared library /root/securedvm/results/vm-display-null /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output Any idea ? Laurent Laffont - @lolgzs <http://twitter.com/#!/lolgzs> Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st
Nicolas Passerini commited a '-m32' flag to the CogUnixConfiguration in order to be able to compile it on a 64bits machine. Can you check it is still there? maybe it only was added to the VM and not to plugins. On Sat, Aug 13, 2011 at 11:13 AM, laurent laffont <laurent.laffont@gmail.com
wrote:
Hi
I try to build a 32bits Cog on Debian 64 bits. I do:
apt-get install libsm-dev libasound2-dev libgl1-mesa-dev cmake g++ libc6-dev-i386
git clone --depth 1 git:// gitorious.org/~laurentlaffont/cogvm/smallharbour.git<http://gitorious.org/%7Elaurentlaffont/cogvm/smallharbour.git>shvm cd shvm/codegen-scripts/ export SQUEAKVM=/usr/local/bin/coglinux/squeak sh ./buildImage.sh -headless sh ./generate.sh -headless CogUnixConfig cd ../build/ sh ../codegen-scripts/extract-commit-info.sh cmake . make
I have the error:
[ 94%] Built target CogVM Linking C shared library /root/securedvm/results/vm-display-null /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
Any idea ?
Laurent Laffont - @lolgzs <http://twitter.com/#%21/lolgzs>
Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st
-- Mariano http://marianopeck.wordpress.com
On Sat, Aug 13, 2011 at 11:57 AM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Nicolas Passerini commited a '-m32' flag to the CogUnixConfiguration in order to be able to compile it on a 64bits machine. Can you check it is still there? maybe it only was added to the VM and not to plugins.
Seems to be here: CogUnixConfig>>commonCompilerFlags ... ^ ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32' and build# cat vm-display-null/CMakeLists.txt |grep m32 add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 Laurent.
On Sat, Aug 13, 2011 at 11:13 AM, laurent laffont < laurent.laffont@gmail.com> wrote:
Hi
I try to build a 32bits Cog on Debian 64 bits. I do:
apt-get install libsm-dev libasound2-dev libgl1-mesa-dev cmake g++ libc6-dev-i386
git clone --depth 1 git:// gitorious.org/~laurentlaffont/cogvm/smallharbour.git<http://gitorious.org/%7Elaurentlaffont/cogvm/smallharbour.git>shvm cd shvm/codegen-scripts/ export SQUEAKVM=/usr/local/bin/coglinux/squeak sh ./buildImage.sh -headless sh ./generate.sh -headless CogUnixConfig cd ../build/ sh ../codegen-scripts/extract-commit-info.sh cmake . make
I have the error:
[ 94%] Built target CogVM Linking C shared library /root/securedvm/results/vm-display-null /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
Any idea ?
Laurent Laffont - @lolgzs <http://twitter.com/#%21/lolgzs>
Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/ Developer group: http://cara74.seasidehosting.st
-- Mariano http://marianopeck.wordpress.com
On Sat, 13 Aug 2011, laurent laffont wrote: (no quotes thx to gmail...) This issue was discussed several times. The simplest solution is to define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this. Levente
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o [ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status Laurent On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
So finally I remove from CMakeLists.txt add_subdirectory("vm-display-X11") add_subdirectory("vm-sound-ALSA") and managed to build the VM I want. But it's an ugly way :( Laurent On Sun, Aug 14, 2011 at 5:39 PM, laurent laffont <laurent.laffont@gmail.com>wrote:
Thanks Levente.
After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc
and then creating /usr/bin/gcc :
#!/bin/sh exec real.gcc -m32 $@
and chmod +x /usr/bin/gcc
Now I have:
[ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o [ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
On Sun, 14 Aug 2011, laurent laffont wrote: (no quote, gmail, etc...) All you need is: export CC="gcc -m32" CXX="g++ -m32" Levente
On Sun, Aug 14, 2011 at 6:21 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sun, 14 Aug 2011, laurent laffont wrote:
(no quote, gmail, etc...)
All you need is: export CC="gcc -m32" CXX="g++ -m32"
I tried: ~/securedvm/build# export CC="gcc -m32" ~/securedvm/build# export CXX="g++ -m32" ~/securedvm/build# make bla bla........ [ 95%] Built target CogVM Linking C shared library /root/securedvm/results/vm-display-null collect2: ld terminated with signal 11 [Segmentation fault] ld: skipping incompatible /usr/lib32/libm.so when searching for -lm ld: skipping incompatible /usr/lib32/libm.a when searching for -lm ld: skipping incompatible /usr/lib32/libdl.so when searching for -ldl ld: skipping incompatible /usr/lib32/libdl.a when searching for -ldl ld: skipping incompatible /usr/lib32/libpthread.so when searching for -lpthread ld: skipping incompatible /usr/lib32/libpthread.a when searching for -lpthread ld: skipping incompatible /usr/lib32/libc.so when searching for -lc ld: skipping incompatible /usr/lib32/libc.a when searching for -lc ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
Levente
On Sun, 14 Aug 2011, laurent laffont wrote: Hm, yeah. IIRC autotools used gcc (via libtool) for linking instead of ld. You'll need another export LDFLAGS="-m32". Levente
On Sun, Aug 14, 2011 at 6:37 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sun, 14 Aug 2011, laurent laffont wrote:
Hm, yeah. IIRC autotools used gcc (via libtool) for linking instead of ld. You'll need another export LDFLAGS="-m32".
Does not help. It looks like flags are "discared". For example with the libSM no found for vm-display-X11, I tried LDFLAGS="-L/usr/lib32" as # ls /usr/lib32/*SM* /usr/lib32/libSM.so.6 /usr/lib32/libSM.so.6.0.1 but still try to link on /usr/lib/libSM.so Laurent.
Levente
On 14 August 2011 18:39, laurent laffont <laurent.laffont@gmail.com> wrote:
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc
Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o [ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
looks like you don't have 32bit version of this library. That's why it refusing to link. As for compiler options, i don't think that you need to use workarounds (like creating real.gcc etc) , because the -m32 flag is there: # This is automatically generated file using CogUnixConfig on 14 August 2011 10:01:34 pm ... message("Adding module: vm-sound-null") add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0) ... Try building using: make VERBOSE=1 to see what flags are passed to compiler. And please, create a subclass of CogUnixConfig , like Cog32OnDebian64Config and play with definitions there. In image you can do: Cog32OnDebian64Config generateWithSources or Cog32OnDebian64Config generate the difference that first will generate cmake files + source files, while second one is only cmake files (takes less than second) I suspecting that problem with linker flags, which tries to link 32-bit output with 64-bit binary. It seems that we're missing the flag there that it should use 32-bit binary for output.
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
-- Best regards, Igor Stasenko AKA sig.
Igor, I have 32bits version of needed libraries - they are installed by package libc6-dev-i386 in /usr/lib32 I've created CogDebian64Config and adjust linkFlags / commonCompilerFlags so I have: CogDebian64Config new linkFlags '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11 -m32 -L/usr/lib32' CogDebian64Config new compilerFlags ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -L/usr/lib32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0' but when I make VERBOSE=1 Linking C shared library /root/securedvm/results/vm-display-null cd /root/securedvm/build/vm-display-null && /usr/bin/cmake -E cmake_link_script CMakeFiles/vm-display-null.dir/link.txt --verbose=1 /usr/bin/gcc -fPIC -shared -Wl,-soname,vm-display-null -o /root/securedvm/results/vm-display-null CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o -lm -ldl -lpthread collect2: ld terminated with signal 11 [Segmentation fault] /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output So it seems compilerFlags are not used for building vm-display-null !!! Same result if I export CC="gcc -m32" Flags are used for building CogVM though: [ 57%] Building C object JPEGReadWriter2Plugin/CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o cd /root/securedvm/build/JPEGReadWriter2Plugin && /usr/bin/gcc -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DSQUEAK_BUILTIN_PLUGIN -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -I/root/securedvm/platforms/unix/plugins/B3DAcceleratorPlugin -I/root/securedvm/platforms/Cross/vm -I/root/securedvm/src/vm -I/root/securedvm/platforms/unix/vm -I/root/securedvm/build -I/root/securedvm/src/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/unix/plugins/JPEGReadWriter2Plugin -m32 -L/usr/lib32 -g0 -O2 -msse2 -m32 -L/usr/lib32 -g0 -O2 -msse2 -o CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o -c /root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c Laurent On Sun, Aug 14, 2011 at 10:10 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 14 August 2011 18:39, laurent laffont <laurent.laffont@gmail.com> wrote:
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc
Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object
vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o
[ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
looks like you don't have 32bit version of this library. That's why it refusing to link.
As for compiler options, i don't think that you need to use workarounds (like creating real.gcc etc) , because the -m32 flag is there:
# This is automatically generated file using CogUnixConfig on 14 August 2011 10:01:34 pm ... message("Adding module: vm-sound-null") add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0) ...
Try building using:
make VERBOSE=1
to see what flags are passed to compiler.
And please, create a subclass of CogUnixConfig , like Cog32OnDebian64Config and play with definitions there.
In image you can do:
Cog32OnDebian64Config generateWithSources or Cog32OnDebian64Config generate
the difference that first will generate cmake files + source files, while second one is only cmake files (takes less than second)
I suspecting that problem with linker flags, which tries to link 32-bit output with 64-bit binary. It seems that we're missing the flag there that it should use 32-bit binary for output.
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to
define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
-- Best regards, Igor Stasenko AKA sig.
note that: cat vm-display-null/CMakeFiles/vm-display-null.dir/link.txt gives /usr/bin/gcc -fPIC -shared -Wl,-soname,vm-display-null -o /root/securedvm/results/vm-display-null CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o -lm -ldl -lpthread if I edit it and add -m32 -L/usr/lib32 then it works It seems link.txt is generated by cmake.... Laurent. On Mon, Aug 15, 2011 at 9:04 AM, laurent laffont <laurent.laffont@gmail.com>wrote:
Igor,
I have 32bits version of needed libraries - they are installed by package libc6-dev-i386 in /usr/lib32
I've created CogDebian64Config and adjust linkFlags / commonCompilerFlags so I have:
CogDebian64Config new linkFlags '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11 -m32 -L/usr/lib32'
CogDebian64Config new compilerFlags ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -L/usr/lib32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0'
but when I make VERBOSE=1
Linking C shared library /root/securedvm/results/vm-display-null cd /root/securedvm/build/vm-display-null && /usr/bin/cmake -E cmake_link_script CMakeFiles/vm-display-null.dir/link.txt --verbose=1 /usr/bin/gcc -fPIC -shared -Wl,-soname,vm-display-null -o /root/securedvm/results/vm-display-null CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o -lm -ldl -lpthread collect2: ld terminated with signal 11 [Segmentation fault] /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
So it seems compilerFlags are not used for building vm-display-null !!!
Same result if I export CC="gcc -m32"
Flags are used for building CogVM though:
[ 57%] Building C object JPEGReadWriter2Plugin/CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o cd /root/securedvm/build/JPEGReadWriter2Plugin && /usr/bin/gcc -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DSQUEAK_BUILTIN_PLUGIN -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -I/root/securedvm/platforms/unix/plugins/B3DAcceleratorPlugin -I/root/securedvm/platforms/Cross/vm -I/root/securedvm/src/vm -I/root/securedvm/platforms/unix/vm -I/root/securedvm/build -I/root/securedvm/src/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/unix/plugins/JPEGReadWriter2Plugin -m32 -L/usr/lib32 -g0 -O2 -msse2 -m32 -L/usr/lib32 -g0 -O2 -msse2 -o CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o -c /root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c
Laurent
On Sun, Aug 14, 2011 at 10:10 PM, Igor Stasenko <siguctua@gmail.com>wrote:
On 14 August 2011 18:39, laurent laffont <laurent.laffont@gmail.com> wrote:
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc
Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object
vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o
[ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
looks like you don't have 32bit version of this library. That's why it refusing to link.
As for compiler options, i don't think that you need to use workarounds (like creating real.gcc etc) , because the -m32 flag is there:
# This is automatically generated file using CogUnixConfig on 14 August 2011 10:01:34 pm ... message("Adding module: vm-sound-null") add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0) ...
Try building using:
make VERBOSE=1
to see what flags are passed to compiler.
And please, create a subclass of CogUnixConfig , like Cog32OnDebian64Config and play with definitions there.
In image you can do:
Cog32OnDebian64Config generateWithSources or Cog32OnDebian64Config generate
the difference that first will generate cmake files + source files, while second one is only cmake files (takes less than second)
I suspecting that problem with linker flags, which tries to link 32-bit output with 64-bit binary. It seems that we're missing the flag there that it should use 32-bit binary for output.
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to
define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
-- Best regards, Igor Stasenko AKA sig.
On Mon, Aug 15, 2011 at 9:04 AM, laurent laffont <laurent.laffont@gmail.com>wrote:
Igor,
I have 32bits version of needed libraries - they are installed by package libc6-dev-i386 in /usr/lib32
I've created CogDebian64Config and adjust linkFlags / commonCompilerFlags so I have:
CogDebian64Config new linkFlags '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11 -m32 -L/usr/lib32'
CogDebian64Config new compilerFlags ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -L/usr/lib32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0'
but when I make VERBOSE=1
Linking C shared library /root/securedvm/results/vm-display-null cd /root/securedvm/build/vm-display-null && /usr/bin/cmake -E cmake_link_script CMakeFiles/vm-display-null.dir/link.txt --verbose=1 /usr/bin/gcc -fPIC -shared -Wl,-soname,vm-display-null -o /root/securedvm/results/vm-display-null CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o -lm -ldl -lpthread collect2: ld terminated with signal 11 [Segmentation fault] /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
So it seems compilerFlags are not used for building vm-display-null !!!
Be sure to remove the cache file of cmake. Sometimes it is not removed when in fact it is necessary. So in any test you do you better remove ../biuld/CMakeCache.txt Anyway, it is weird it is not using #compilerFlags. Becuase: #addVMDrivers: does addDriver: 'vm-display-null' sources: #( '${targetPlatform}/vm-display-null/sqUnixDisplayNull' ) generator: maker; addDriver: 'vm-display-X11' sources: #( '${targetPlatform}/vm-display-X11/sqUnixX11' '${targetPlatform}/vm-display-X11/sqUnixMozilla' ) generator: maker; .... And then #addDriver: name sources: aSources generator: cmakeGen sends: ... addDefinitions: self compilerFlags; ...LINK_FLAGS "', self linkFlags , '"'
Same result if I export CC="gcc -m32"
Flags are used for building CogVM though:
[ 57%] Building C object JPEGReadWriter2Plugin/CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o cd /root/securedvm/build/JPEGReadWriter2Plugin && /usr/bin/gcc -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DSQUEAK_BUILTIN_PLUGIN -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -I/root/securedvm/platforms/unix/plugins/B3DAcceleratorPlugin -I/root/securedvm/platforms/Cross/vm -I/root/securedvm/src/vm -I/root/securedvm/platforms/unix/vm -I/root/securedvm/build -I/root/securedvm/src/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/unix/plugins/JPEGReadWriter2Plugin -m32 -L/usr/lib32 -g0 -O2 -msse2 -m32 -L/usr/lib32 -g0 -O2 -msse2 -o CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o -c /root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c
Laurent
On Sun, Aug 14, 2011 at 10:10 PM, Igor Stasenko <siguctua@gmail.com>wrote:
On 14 August 2011 18:39, laurent laffont <laurent.laffont@gmail.com> wrote:
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc
Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object
vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o
[ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
looks like you don't have 32bit version of this library. That's why it refusing to link.
As for compiler options, i don't think that you need to use workarounds (like creating real.gcc etc) , because the -m32 flag is there:
# This is automatically generated file using CogUnixConfig on 14 August 2011 10:01:34 pm ... message("Adding module: vm-sound-null") add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0) ...
Try building using:
make VERBOSE=1
to see what flags are passed to compiler.
And please, create a subclass of CogUnixConfig , like Cog32OnDebian64Config and play with definitions there.
In image you can do:
Cog32OnDebian64Config generateWithSources or Cog32OnDebian64Config generate
the difference that first will generate cmake files + source files, while second one is only cmake files (takes less than second)
I suspecting that problem with linker flags, which tries to link 32-bit output with 64-bit binary. It seems that we're missing the flag there that it should use 32-bit binary for output.
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to
define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
-- Best regards, Igor Stasenko AKA sig.
-- Mariano http://marianopeck.wordpress.com
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS "${linkFlags}" PREFIX "" SUFFIX "" ) then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent. On Mon, Aug 15, 2011 at 9:55 AM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
On Mon, Aug 15, 2011 at 9:04 AM, laurent laffont < laurent.laffont@gmail.com> wrote:
Igor,
I have 32bits version of needed libraries - they are installed by package libc6-dev-i386 in /usr/lib32
I've created CogDebian64Config and adjust linkFlags / commonCompilerFlags so I have:
CogDebian64Config new linkFlags '-lSM -lICE -ldl -lGL -lpthread -lm -lnsl -lX11 -m32 -L/usr/lib32'
CogDebian64Config new compilerFlags ' -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -L/usr/lib32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0'
but when I make VERBOSE=1
Linking C shared library /root/securedvm/results/vm-display-null cd /root/securedvm/build/vm-display-null && /usr/bin/cmake -E cmake_link_script CMakeFiles/vm-display-null.dir/link.txt --verbose=1 /usr/bin/gcc -fPIC -shared -Wl,-soname,vm-display-null -o /root/securedvm/results/vm-display-null CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o -lm -ldl -lpthread collect2: ld terminated with signal 11 [Segmentation fault] /usr/bin/ld: i386 architecture of input file `CMakeFiles/vm-display-null.dir/root/securedvm/platforms/unix/vm-display-null/sqUnixDisplayNull.c.o' is incompatible with i386:x86-64 output
So it seems compilerFlags are not used for building vm-display-null !!!
Be sure to remove the cache file of cmake. Sometimes it is not removed when in fact it is necessary. So in any test you do you better remove ../biuld/CMakeCache.txt
Anyway, it is weird it is not using #compilerFlags. Becuase: #addVMDrivers: does
addDriver: 'vm-display-null' sources: #( '${targetPlatform}/vm-display-null/sqUnixDisplayNull' ) generator: maker;
addDriver: 'vm-display-X11' sources: #( '${targetPlatform}/vm-display-X11/sqUnixX11' '${targetPlatform}/vm-display-X11/sqUnixMozilla' ) generator: maker;
....
And then #addDriver: name sources: aSources generator: cmakeGen sends: ... addDefinitions: self compilerFlags;
...LINK_FLAGS "', self linkFlags , '"'
Same result if I export CC="gcc -m32"
Flags are used for building CogVM though:
[ 57%] Building C object JPEGReadWriter2Plugin/CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o cd /root/securedvm/build/JPEGReadWriter2Plugin && /usr/bin/gcc -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -DSQUEAK_BUILTIN_PLUGIN -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0 -I/root/securedvm/platforms/unix/plugins/B3DAcceleratorPlugin -I/root/securedvm/platforms/Cross/vm -I/root/securedvm/src/vm -I/root/securedvm/platforms/unix/vm -I/root/securedvm/build -I/root/securedvm/src/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin -I/root/securedvm/platforms/unix/plugins/JPEGReadWriter2Plugin -m32 -L/usr/lib32 -g0 -O2 -msse2 -m32 -L/usr/lib32 -g0 -O2 -msse2 -o CMakeFiles/JPEGReadWriter2Plugin.dir/root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c.o -c /root/securedvm/platforms/Cross/plugins/JPEGReadWriter2Plugin/jquant2.c
Laurent
On Sun, Aug 14, 2011 at 10:10 PM, Igor Stasenko <siguctua@gmail.com>wrote:
On 14 August 2011 18:39, laurent laffont <laurent.laffont@gmail.com> wrote:
Thanks Levente. After searching & trying finally I've passed this problem by: mv /usr/bin/gcc /usr/bin/real.gcc and then creating /usr/bin/gcc : #!/bin/sh exec real.gcc -m32 $@ and chmod +x /usr/bin/gcc
Now I have: [ 94%] Built target vm-display-null Scanning dependencies of target vm-display-X11 [ 94%] Building C object
vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixX11.c.o
[ 95%] Building C object vm-display-X11/CMakeFiles/vm-display-X11.dir/root/securedvm/platforms/unix/vm-display-X11/sqUnixMozilla.c.o Linking C shared library /root/securedvm/results/vm-display-X11 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libSM.a when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.so when searching for -lSM /usr/bin/ld: skipping incompatible /usr/lib/libSM.a when searching for -lSM /usr/bin/ld: cannot find -lSM collect2: ld returned 1 exit status
looks like you don't have 32bit version of this library. That's why it refusing to link.
As for compiler options, i don't think that you need to use workarounds (like creating real.gcc etc) , because the -m32 flag is there:
# This is automatically generated file using CogUnixConfig on 14 August 2011 10:01:34 pm ... message("Adding module: vm-sound-null") add_definitions( -DLSB_FIRST=1 -DUSE_GLOBAL_STRUCT=0 -DCOGMTVM=0 -m32 -g0 -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DDEBUGVM=0) ...
Try building using:
make VERBOSE=1
to see what flags are passed to compiler.
And please, create a subclass of CogUnixConfig , like Cog32OnDebian64Config and play with definitions there.
In image you can do:
Cog32OnDebian64Config generateWithSources or Cog32OnDebian64Config generate
the difference that first will generate cmake files + source files, while second one is only cmake files (takes less than second)
I suspecting that problem with linker flags, which tries to link 32-bit output with 64-bit binary. It seems that we're missing the flag there that it should use 32-bit binary for output.
Laurent
On Sat, Aug 13, 2011 at 4:36 PM, Levente Uzonyi <leves@elte.hu> wrote:
On Sat, 13 Aug 2011, laurent laffont wrote:
(no quotes thx to gmail...)
This issue was discussed several times. The simplest solution is to
define CC as "gcc -m32" (and optionally CXX as "g++ -m32" if you need g++). Another solution is to check how cmake supports cross compilation. IIRC autotools has some flags for this.
Levente
-- Best regards, Igor Stasenko AKA sig.
-- Mariano http://marianopeck.wordpress.com
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS "${linkFlags}" PREFIX "" SUFFIX "" ) then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134 And thanks for being persistent! :) -- Best regards, Igor Stasenko AKA sig.
On Mon, Aug 15, 2011 at 10:37 AM, Igor Stasenko <siguctua@gmail.com> wrote:
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS
"${linkFlags}" PREFIX "" SUFFIX "" )
then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134
And thanks for being persistent! :)
Cool ! I'll try later. Indeed, I've again learned :) Seriously, build process is far nicer now than it was one year ago. Laurent.
-- Best regards, Igor Stasenko AKA sig.
this stuff requires a bit of refactoring. it is a bit messy, that #linkFlags contain libs rather than flags. the libs should be added separately On 15 August 2011 11:41, laurent laffont <laurent.laffont@gmail.com> wrote:
On Mon, Aug 15, 2011 at 10:37 AM, Igor Stasenko <siguctua@gmail.com> wrote:
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS "${linkFlags}" PREFIX "" SUFFIX "" ) then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134
And thanks for being persistent! :)
Cool ! I'll try later. Indeed, I've again learned :) Â Seriously, build process is far nicer now than it was one year ago. Laurent.
-- Best regards, Igor Stasenko AKA sig.
-- Best regards, Igor Stasenko AKA sig.
Hi Igor, now it works well. I've created CogOnDebian64Config but I cannot commit to VMMaker repository. So you can get it on: Gofer it squeaksource: 'LaurentLSandbox'; version: 'CMakeVMMaker-LaurentLaffont.135'; load In CogOnDebian64Config comment: Used to build 32 bit Cog on Debian 64 bits. You need to prepare Debian this way: apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so Then you can go on CogOnDebian64Config generateWithSources. Laurent. On Mon, Aug 15, 2011 at 10:37 AM, Igor Stasenko <siguctua@gmail.com> wrote:
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS
"${linkFlags}" PREFIX "" SUFFIX "" )
then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134
And thanks for being persistent! :)
-- Best regards, Igor Stasenko AKA sig.
Done. Thanks a lot Laurent. I like when non-vm-hackers are able to contribute as well. Cheers On Mon, Aug 15, 2011 at 3:38 PM, laurent laffont <laurent.laffont@gmail.com>wrote:
Hi Igor,
now it works well. I've created CogOnDebian64Config but I cannot commit to VMMaker repository. So you can get it on:
Gofer it squeaksource: 'LaurentLSandbox'; version: 'CMakeVMMaker-LaurentLaffont.135'; load
In CogOnDebian64Config comment:
Used to build 32 bit Cog on Debian 64 bits.
You need to prepare Debian this way:
apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib
ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
Then you can go on CogOnDebian64Config generateWithSources.
Laurent.
On Mon, Aug 15, 2011 at 10:37 AM, Igor Stasenko <siguctua@gmail.com>wrote:
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS
"${linkFlags}" PREFIX "" SUFFIX "" )
then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134
And thanks for being persistent! :)
-- Best regards, Igor Stasenko AKA sig.
-- Mariano http://marianopeck.wordpress.com
On Tue, Aug 16, 2011 at 12:09 PM, Mariano Martinez Peck < marianopeck@gmail.com> wrote:
Done. Thanks a lot Laurent. I like when non-vm-hackers are able to contribute as well.
:) Laurent
Cheers
On Mon, Aug 15, 2011 at 3:38 PM, laurent laffont < laurent.laffont@gmail.com> wrote:
Hi Igor,
now it works well. I've created CogOnDebian64Config but I cannot commit to VMMaker repository. So you can get it on:
Gofer it squeaksource: 'LaurentLSandbox'; version: 'CMakeVMMaker-LaurentLaffont.135'; load
In CogOnDebian64Config comment:
Used to build 32 bit Cog on Debian 64 bits.
You need to prepare Debian this way:
apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib
ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
Then you can go on CogOnDebian64Config generateWithSources.
Laurent.
On Mon, Aug 15, 2011 at 10:37 AM, Igor Stasenko <siguctua@gmail.com>wrote:
On 15 August 2011 11:34, laurent laffont <laurent.laffont@gmail.com> wrote:
If I edit vm-display-null/CMakeLists.txt and change: set_target_properties(vm-display-null PROPERTIES PREFIX "" SUFFIX "" ) to set(linkFlags "${linkFlags} -m32") set_target_properties(vm-display-null PROPERTIES LINK_FLAGS
"${linkFlags}" PREFIX "" SUFFIX "" )
then cmake. && make it works, right flags used. So it seems that generateWithSources output wrong vm-display-null/CMakeLists.txt Laurent.
Yes. Try out CMakeVMMaker-IgorStasenko.134
And thanks for being persistent! :)
-- Best regards, Igor Stasenko AKA sig.
-- Mariano http://marianopeck.wordpress.com
On 15 August 2011 15:38, laurent laffont <laurent.laffont@gmail.com> wrote:
Hi Igor, now it works well. I've created CogOnDebian64Config but I cannot commit to VMMaker repository. So you can get it on: Gofer it  squeaksource: 'LaurentLSandbox';  version: 'CMakeVMMaker-LaurentLaffont.135';  load In CogOnDebian64Config comment: Used to build 32 bit Cog on Debian 64 bits. You need to prepare Debian this way: apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so Then you can go on CogOnDebian64Config generateWithSources.
Laurent.
Laurent, please put these instructions on class comment, so they won't get lost and buried in mailing list :) This is what i did with windows configs, because memory is short and i can even forget myself , what i need to install to build VM(s). And thanks for contribution! -- Best regards, Igor Stasenko AKA sig.
On 16 August 2011 19:25, Igor Stasenko <siguctua@gmail.com> wrote:
On 15 August 2011 15:38, laurent laffont <laurent.laffont@gmail.com> wrote:
Hi Igor, now it works well. I've created CogOnDebian64Config but I cannot commit to VMMaker repository. So you can get it on: Gofer it  squeaksource: 'LaurentLSandbox';  version: 'CMakeVMMaker-LaurentLaffont.135';  load In CogOnDebian64Config comment: Used to build 32 bit Cog on Debian 64 bits. You need to prepare Debian this way: apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so Then you can go on CogOnDebian64Config generateWithSources.
Laurent.
Laurent, please put these instructions on class comment, so they won't get lost and buried in mailing list :) This is what i did with windows configs, because memory is short and i can even forget myself , what i need to install to build VM(s).
And thanks for contribution!
Ehehe... you already did that. i should read mail more carefully! :)
-- Best regards, Igor Stasenko AKA sig.
-- Best regards, Igor Stasenko AKA sig.
participants (4)
-
Igor Stasenko -
laurent laffont -
Levente Uzonyi -
Mariano Martinez Peck