Hello there,
I am new to rumpkernel and followed the Tutorial on how to compile a
cmake based program.

I was trying to compile minetestserver, the server for a opensource
Minecraft clone.
I get it to compile, but i does not run.
When started with no options it crashes and also when started with
correct options.
Incorrect Options give the help out.
I think the problem is in the c++ exceptions:

src/settings.cpp - line 639:
bool Settings::getFlag(const std::string &name) const
{
        try {
                return getBool(name);
        } catch(SettingNotFoundException &e) {
                return false;
        }
}

I think the exception is created when checking for --help and it
crashed when it should return false.

Here the crash message:
== calling "minetestserver.bin main() ==
rumprun: call to ''_sys___sigprocmask14'' ignored
_lwabort() called

=== ERROR: _exit(1) called ===


Below the compile steps:
1. compile sqlite and curl from rumprun-packages
2. add #undef RANDOM_MAX after include in src/noise.h
3. change line 222 from src/threading/thread.cpp
4. Run CMake:
cmake 
-DCMAKE_TOOLCHAIN_FILE=/home/erwin/src/rumprun/rumprun/rumprun-x86_64/share/x86_64-rumprun-netbsd-toolchain.cmake
\
-DBUILD_CLIENT=0 -DBUILD_SERVER=1
-DCURL_INCLUDE_DIR=/home/erwin/src/rumprun-packages/pkgs/include \
-DSQLITE3_INCLUDE_DIR=/home/erwin/src/rumprun-packages/pkgs/include \
-DSQLITE3_LIBRARY=/home/erwin/src/rumprun-packages/pkgs/lib/libsqlite3.a \
-DCURL_LIBRARY=/home/erwin/src/rumprun-packages/pkgs/lib/libcurl.a
-DIRRLICHT_INCLUDE_DIR=/home/erwin/src/irrlicht-1.8.4/include \
-DRUN_IN_PLACE=1 -DBINDIR=. -DDOCDIR=. -DEXAMPLE_CONF_DIR=.
5. Edit src/CMakeFiles/minetestserver.dir/link.txt to replace -ldl with -lm
6. make -j4 to get bin/minetestserver
7. rumprun-bake hw_generic minetestserver.bin bin/minetestserver
8. rumprun kvm -i minetestserver.bin -> crash
9. rumprun kvm -i minetestserver.bin -- --help -> gives out help and stops

Thaks for helping out.

Reply via email to