[Vm-dev] attempting to build BochsX64Plugin on 32-bit Ubuntu

Robert Withers robert.w.withers at gmail.com
Sat Oct 24 20:07:47 UTC 2015



On 10/23/2015 01:49 PM, Eliot Miranda wrote:
>   
>
>
>
>
> On Wed, Oct 21, 2015 at 7:26 PM, Robert Withers 
> <robert.w.withers at gmail.com <mailto:robert.w.withers at gmail.com>> wrote:
>
>
>     I am not sure it is possible, even. Can this plugin be build
>     32-bit; does it make any sense to do so?
>
>
> yes.  How on earth can the 64-bit Cogit be created if this plugin 
> can't be built in 32-bits?  I'm using it on Mac OS X in 32-bits using 
> a 32-bit VM.

I truly have no idea how it could be possible! But from what you are 
saying, it must be buildable on linux 32-bits. I'll see..

>
>     Here is the make portion of this attempt for this plugin. I am
>     unsure how to deal with this C++ issue in the
>     Cross/plugins/BochsX64Plugin/sqUnixBochsX64Plugin.cpp file.
>
>
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
>     In function 'int resetCPU(void*)':
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:68:47:
>     error: 'struct bx_descriptor_t::<anonymous union>::<anonymous>'
>     has no member named 'l'
>        bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l     = 1; //
>     64-bit seg
>
>
>     Thank you,
>     Robert
>
>
>     /bin/bash
>     /home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build/libtool
>     --mode=compile gcc -m32 -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2
>     -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1
>     -m32 -DHAVE_CONFIG_H
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/platforms/unix/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/vm
>     -I/home/rabbit/warren/oscogvm/spursrc/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin
>     -m32 -DUSE_BOCHS_CONFIG_H=1
>     -I/home/rabbit/warren/oscogvm/processors/IA32/linuxbochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs/instrument/stubs
>     -c -o BochsX64Plugin.lo
>     /home/rabbit/warren/oscogvm/src/plugins/BochsX64Plugin/BochsX64Plugin.c
>     gcc -m32 -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -D_GNU_SOURCE
>     -D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1 -m32
>     -DHAVE_CONFIG_H
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/platforms/unix/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/vm
>     -I/home/rabbit/warren/oscogvm/spursrc/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin
>     -m32 -DUSE_BOCHS_CONFIG_H=1
>     -I/home/rabbit/warren/oscogvm/processors/IA32/linuxbochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs/instrument/stubs
>     -c
>     /home/rabbit/warren/oscogvm/src/plugins/BochsX64Plugin/BochsX64Plugin.c
>     -fPIC -DPIC -DPIC -o BochsX64Plugin.o
>     mv -f BochsX64Plugin.o BochsX64Plugin.lo
>     /bin/bash
>     /home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build/libtool
>     --mode=compile g++ -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2
>     -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1 
>     -m32 -DHAVE_CONFIG_H
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/platforms/unix/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/vm
>     -I/home/rabbit/warren/oscogvm/spursrc/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin
>     -m32 -DUSE_BOCHS_CONFIG_H=1
>     -I/home/rabbit/warren/oscogvm/processors/IA32/linuxbochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs/instrument/stubs
>     -c -o sqBochsX64Plugin.lo
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp
>     g++ -g -O2 -DNDEBUG -DDEBUGVM=0 -msse2 -D_GNU_SOURCE
>     -D_FILE_OFFSET_BITS=64 -DCOGMTVM=0 -DLSB_FIRST=1 -m32
>     -DHAVE_CONFIG_H
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/build.linux32x86/squeak.cog.spur/build
>     -I/home/rabbit/warren/oscogvm/platforms/unix/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/vm
>     -I/home/rabbit/warren/oscogvm/spursrc/vm
>     -I/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin
>     -m32 -DUSE_BOCHS_CONFIG_H=1
>     -I/home/rabbit/warren/oscogvm/processors/IA32/linuxbochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs
>     -I/home/rabbit/warren/oscogvm/processors/IA32/bochs/instrument/stubs
>     -c
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp
>     -fPIC -DPIC -DPIC -o sqBochsX64Plugin.o
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:17:0:
>     warning: "setjmp" redefined [enabled by default]
>      # define setjmp(jb) _setjmp(jb)
>      ^
>     In file included from
>     /home/rabbit/warren/oscogvm/processors/IA32/bochs/gui/siminterface.h:1069:0,
>                      from
>     /home/rabbit/warren/oscogvm/processors/IA32/bochs/bochs.h:117,
>                      from
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:7:
>     /usr/include/setjmp.h:67:0: note: this is the location of the
>     previous definition
>      #define setjmp(env) _setjmp (env)
>      ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
>     In function 'int resetCPU(void*)':
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:68:47:
>     error: 'struct bx_descriptor_t::<anonymous union>::<anonymous>'
>     has no member named 'l'
>        bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l     = 1; //
>     64-bit seg
>                                                    ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:74:47:
>     error: 'struct bx_descriptor_t::<anonymous union>::<anonymous>'
>     has no member named 'l'
>        bx_cpu.sregs[BX_SEG_REG_DS].cache.u.segment.l     = 1; //
>     64-bit seg
>                                                    ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:80:47:
>     error: 'struct bx_descriptor_t::<anonymous union>::<anonymous>'
>     has no member named 'l'
>        bx_cpu.sregs[BX_SEG_REG_SS].cache.u.segment.l     = 1; //
>     64-bit seg
>                                                    ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:101:10:
>     error: 'class bx_cpu_c' has no member named 'efer'
>        bx_cpu.efer.set_LMA(1); /* Hack.  The old version we use have
>     doesn't support set_EFER */
>               ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
>     In function 'int disassembleForAtInSize(void*, ulong, void*, ulong)':
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:213:52:
>     error: 'struct bx_descriptor_t::<anonymous union>::<anonymous>'
>     has no member named 'l'
>             anx64->sregs[BX_SEG_REG_CS].cache.u.segment.l,
>                                                         ^
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
>     At global scope:
>     /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:324:39:
>     error: no 'void bx_cpu_c::TLB_flushNonGlobal()' member function
>     declared in class 'bx_cpu_c'
>      void BX_CPU_C::TLB_flushNonGlobal(void)
>                                            ^
>     make[1]: *** [sqBochsX64Plugin.lo] Error 1
>     make: *** [BochsX64Plugin.la] Error 2
>     rabbit at rabbithole:~/warren/oscogvm/build.linux32x86/squeak.cog.spur/build$
>     mv -f BochsX64Plugin.o BochsX64Plugin.lo
>     mv: cannot stat ‘BochsX64Plugin.o’: No such file or directory
>
>
>
>
> -- 
> _,,,^..^,,,_
> best, Eliot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151024/44b8350c/attachment.htm


More information about the Vm-dev mailing list