[self-interest] Trying To Build On Windows
chris.double at double.co.nz
Sun Dec 3 00:11:35 UTC 2017
On Sun, Dec 3, 2017 at 2:03 AM, pslmsngr at gmail.com [self-interest]
<self-interest at yahoogroups.com> wrote:
> 1) # include "_regs_pd.hh.incl": where is this file located?
Building the source has a code generation step where it looks at
dependencies in the C++ files and generates optimal ".incl" files
containing header includes. If you're thinking of doing a port you
might like to try the 'remove_makedeps' branch. This removes this code
generation step and uses normal file includes.
I have a GNU Makefile that I've used in the past for building, before
CMake integration was done, that might give you an idea of what files
are needed for building:
> 2) Where is the definition for the data type Location at?
It is in vm/src/i386/asm/regs_i386.hh as an 'enum' and probably in the
other CPU backends.
> Also, is there a command line version of Self? If so, how do I build it? Or better, do you have a Linux binary for it?
The build process builds the Self VM, which is command line. From
there you build a self image (that's what "'worldBuilder.self'
_RunScript" does) which will produce an image that runs the command
line and optionally the gui. You would run it as:
# ...enter commands here...
it can be run headless this way on a server.
> I have been able to get the Ubuntu Bash console running on my Windows 10 machine, and have compiled small programs in it. If you had a Linux binary executable that was only a command line version, I believe I could run it.
Unzip that and there is a "Self" linux executable. It has the
following dynamic dependencies:
linux-gate.so.1 => (0xf7769000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72e0000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf7195000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf7180000)
libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xf715d000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7158000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf6fd8000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf6f82000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf6f64000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf6da8000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6d82000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6d7e000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6d77000)
It would probably be possible to build one without the X lib
dependencies. Let me know if that's useful.
> pslm at DESKTOP-GVA5CBU:~/self$ cmake --build .
> [ 0%] Building CXX object vm/CMakeFiles/makeDeps.dir/build_support/makeDeps.cpp.o
> In file included from /home/pslm/self/vm/build_supp ort/makeDeps.cpp:61:0:
> /usr/include/c++/5/new:39:28: fatal error: bits/c++config.h: No such file or directory
Definitely try the "remove_makedeps" branch. This will avoid that pain.
Thanks for looking into Windows support, that'd be a great contribution.
More information about the Self-interest