<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Eliot, thank you for that orientation. I looked at your mac but had
to go one more step. I realized I probably couldn't build both
BochsIA32Plugin and BochsX64Plugin at the same time while sharing
the processors/IA32 support code - it is compiled separately for
IA32 and X64. So I added a processors/X64 directory, with a
seaparate copy of Bochs for 64-bit emulation, built the libs with
your conf.COG from mac, and built both Bochs plugins. I am attaching
the link to BochsX64Plugin for 32-bit linux:
<a class="moz-txt-link-freetext" href="https://www.dropbox.com/s/g73feosuzlx45le/BochsX64Plugin.11-25-2015.tgz?dl=0">https://www.dropbox.com/s/g73feosuzlx45le/BochsX64Plugin.11-25-2015.tgz?dl=0</a><br>
<br>
Best,<br>
Robert <br>
<br>
... ^^<br>
<br>
<div class="moz-cite-prefix">On 10/24/2015 11:54 PM, Eliot Miranda
wrote:<br>
</div>
<blockquote
cite="mid:53553A42-96E2-469A-BE76-0ED2D1D9F15A@gmail.com"
type="cite">
<pre wrap=""> </pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<div>Hi Rob,</div>
<div id="AppleMailSignature"><br>
</div>
<div id="AppleMailSignature"> I've only tried to build it in
Mac OS X. I've also changed the build structure so one /can/
build it either in 32 or 64 bits. So look at the structure for
building the support libraries under build.macos32x86 and
replicate it under <span style="background-color: rgba(255, 255,
255, 0);">build.linux32x86, write or change
platforms/unix/plugins/</span>BochsX64Plugin/Makefile to pick
up the libraries from (IIRC) <span style="background-color:
rgba(255, 255, 255, 0);">build.linux32x86/bochsx64/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
and you should be fine. You'll need to
run build.linux32x86/bochsx64/conf.COG which you'll copy
from build.macos32x86/bochsx64/conf.COG</span><br>
<br>
<span style="background-color: rgba(255, 255, 255, 0);">_,,,^..^,,,_
(phone)</span></div>
<div><br>
On Oct 24, 2015, at 5:59 PM, Robert Withers <<a
moz-do-not-send="true"
href="mailto:robert.w.withers@gmail.com"><a class="moz-txt-link-abbreviated" href="mailto:robert.w.withers@gmail.com">robert.w.withers@gmail.com</a></a>>
wrote:<br>
<br>
</div>
<blockquote type="cite">
<div><span></span></div>
</blockquote>
<blockquote type="cite">
<div>
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type">
Is it possible I need 64-bit headers/libraries on the 32-bit
Ubuntu when compiling BochsX64Plugin? Here a line I am
receiving an error for and it is for 64-bits:<br>
<br>
from sqBochsX64Plugin.cpp, line 68:<br>
bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l = 1; //
64-bit seg<br>
<br>
resulting in error, below.<br>
<br>
<br>
<div class="moz-cite-prefix">On 10/23/2015 01:49 PM, Eliot
Miranda wrote:<br>
</div>
<blockquote
cite="mid:CAC20JE3bRN0OiwvB4pZstFAXLZwE=WMLdJHyqaRXFrMmnjRQWw@mail.gmail.com"
type="cite">
<pre wrap=""> </pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Oct 21, 2015 at 7:26
PM, Robert Withers <span dir="ltr"><<a
moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:robert.w.withers@gmail.com"><a class="moz-txt-link-abbreviated" href="mailto:robert.w.withers@gmail.com">robert.w.withers@gmail.com</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
I am not sure it is possible, even. Can this plugin
be build 32-bit; does it make any sense to do so?<br>
</blockquote>
<div><br>
</div>
<div>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.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>
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.<br>
<br>
<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
In function 'int resetCPU(void*)':<br>
/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'<br>
bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l
= 1; // 64-bit seg<br>
<br>
<br>
Thank you,<br>
Robert<br>
<br>
<br>
/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<br>
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<br>
mv -f BochsX64Plugin.o BochsX64Plugin.lo<br>
/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<br>
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<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:17:0:
warning: "setjmp" redefined [enabled by default]<br>
# define setjmp(jb) _setjmp(jb)<br>
^<br>
In file included from
/home/rabbit/warren/oscogvm/processors/IA32/bochs/gui/siminterface.h:1069:0,<br>
from
/home/rabbit/warren/oscogvm/processors/IA32/bochs/bochs.h:117,<br>
from
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:7:<br>
/usr/include/setjmp.h:67:0: note: this is the
location of the previous definition<br>
#define setjmp(env) _setjmp (env)<br>
^<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
In function 'int resetCPU(void*)':<br>
/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'<br>
bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l
= 1; // 64-bit seg<br>
^<br>
/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'<br>
bx_cpu.sregs[BX_SEG_REG_DS].cache.u.segment.l
= 1; // 64-bit seg<br>
^<br>
/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'<br>
bx_cpu.sregs[BX_SEG_REG_SS].cache.u.segment.l
= 1; // 64-bit seg<br>
^<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:101:10:
error: 'class bx_cpu_c' has no member named 'efer'<br>
bx_cpu.efer.set_LMA(1); /* Hack. The old version
we use have doesn't support set_EFER */<br>
^<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
In function 'int disassembleForAtInSize(void*,
ulong, void*, ulong)':<br>
/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'<br>
anx64->sregs[BX_SEG_REG_CS].cache.u.segment.l,<br>
^<br>
/home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:
At global scope:<br>
/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'<br>
void BX_CPU_C::TLB_flushNonGlobal(void)<br>
^<br>
make[1]: *** [sqBochsX64Plugin.lo] Error 1<br>
make: *** [BochsX64Plugin.la] Error 2<br>
<a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:rabbit@rabbithole:%7E/warren/oscogvm/build.linux32x86/squeak.cog.spur/build$">rabbit@rabbithole:~/warren/oscogvm/build.linux32x86/squeak.cog.spur/build$</a>
mv -f BochsX64Plugin.o BochsX64Plugin.lo<br>
mv: cannot stat ‘BochsX64Plugin.o’: No such file or
directory<br>
<br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature">
<div dir="ltr">
<div><span
style="font-size:small;border-collapse:separate">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</blockquote>
<br>
</body>
</html>