<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi Rob,</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">&nbsp; &nbsp; I've only tried to build it in Mac OS X. &nbsp;I've also changed the build structure so one /can/ build it either in 32 or 64 bits. &nbsp;So look at the structure for building the support libraries under build.macos32x86 and replicate it under&nbsp;<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)&nbsp;<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. &nbsp;You'll need to run&nbsp;build.linux32x86/bochsx64/conf.COG which you'll copy from&nbsp;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 &lt;<a href="mailto:robert.w.withers@gmail.com">robert.w.withers@gmail.com</a>&gt; 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>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l&nbsp;&nbsp;&nbsp;&nbsp; =
    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">&lt;<a moz-do-not-send="true" href="mailto:robert.w.withers@gmail.com" target="_blank"></a><a class="moz-txt-link-abbreviated" href="mailto:robert.w.withers@gmail.com">robert.w.withers@gmail.com</a>&gt;</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.&nbsp; How on earth can the 64-bit Cogit be created if
              this plugin can't be built in 32-bits?&nbsp; I'm using it on
              Mac OS X in 32-bits using a 32-bit VM.</div>
            <div>&nbsp;</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::&lt;anonymous
              union&gt;::&lt;anonymous&gt;' has no member named 'l'<br>
              &nbsp; &nbsp;bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l&nbsp; &nbsp; &nbsp;= 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&nbsp; -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>
              &nbsp;# define setjmp(jb) _setjmp(jb)<br>
              &nbsp;^<br>
              In file included from
/home/rabbit/warren/oscogvm/processors/IA32/bochs/gui/siminterface.h:1069:0,<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from
              /home/rabbit/warren/oscogvm/processors/IA32/bochs/bochs.h:117,<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;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>
              &nbsp;#define setjmp(env) _setjmp (env)<br>
              &nbsp;^<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::&lt;anonymous
              union&gt;::&lt;anonymous&gt;' has no member named 'l'<br>
              &nbsp; &nbsp;bx_cpu.sregs[BX_SEG_REG_CS].cache.u.segment.l&nbsp; &nbsp; &nbsp;= 1;
              // 64-bit seg<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^<br>
              /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:74:47:
              error: 'struct bx_descriptor_t::&lt;anonymous
              union&gt;::&lt;anonymous&gt;' has no member named 'l'<br>
              &nbsp; &nbsp;bx_cpu.sregs[BX_SEG_REG_DS].cache.u.segment.l&nbsp; &nbsp; &nbsp;= 1;
              // 64-bit seg<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^<br>
              /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:80:47:
              error: 'struct bx_descriptor_t::&lt;anonymous
              union&gt;::&lt;anonymous&gt;' has no member named 'l'<br>
              &nbsp; &nbsp;bx_cpu.sregs[BX_SEG_REG_SS].cache.u.segment.l&nbsp; &nbsp; &nbsp;= 1;
              // 64-bit seg<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^<br>
              /home/rabbit/warren/oscogvm/platforms/Cross/plugins/BochsX64Plugin/sqBochsX64Plugin.cpp:101:10:
              error: 'class bx_cpu_c' has no member named 'efer'<br>
              &nbsp; &nbsp;bx_cpu.efer.set_LMA(1); /* Hack.&nbsp; The old version we
              use have doesn't support set_EFER */<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<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::&lt;anonymous
              union&gt;::&lt;anonymous&gt;' has no member named 'l'<br>
              &nbsp; &nbsp; &nbsp; &nbsp; anx64-&gt;sregs[BX_SEG_REG_CS].cache.u.segment.l,<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^<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>
              &nbsp;void BX_CPU_C::TLB_flushNonGlobal(void)<br>
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^<br>
              make[1]: *** [sqBochsX64Plugin.lo] Error 1<br>
              make: *** [BochsX64Plugin.la] Error 2<br>
              <a class="moz-txt-link-abbreviated" href="mailto:rabbit@rabbithole:~/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,&nbsp;Eliot</div>
                </span></div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  

</div></blockquote></body></html>