ENIGMA Forums
Outsourcing saves money => Issues Help Desk => Topic started by: jerbear64 on July 07, 2016, 08:27:27 pm
-
I'm having trouble getting ENIGMA running on my 64 bit Arch setup. I have tried both the AUR package, as well as compiling manually.
The issue that crops up is
Operating System: Linux
Version: 4.6.3-1-ARCH
Architecture: amd64
Java Name: OpenJDK 64-Bit Server VM
Java Vendor: Oracle Corporation
Version: 1.8.0_92
Available processors (cores): 8
Free memory (bytes): 93383392
Maximum memory (bytes): 3267887104
Total memory available to JVM (bytes): 148373504
File system root: /
Total space (bytes): 984373075968
Free space (bytes): 730944118784
Usable space (bytes): 680917188608
Stack trace:
java.lang.UnsatisfiedLinkError: Unable to load library 'compileEGMf': Native library (linux-x86-64/libcompileEGMf.so) not found in resource path ([file:/opt/enigma-dev-git/plugins/enigma.jar])
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:271)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
at com.sun.jna.Library$Handler.<init>(Library.java:147)
at com.sun.jna.Native.loadLibrary(Native.java:412)
at com.sun.jna.Native.loadLibrary(Native.java:391)
at org.enigma.EnigmaRunner.attemptLib(EnigmaRunner.java:247)
at org.enigma.EnigmaRunner.access$1(EnigmaRunner.java:240)
at org.enigma.EnigmaRunner$3.run(EnigmaRunner.java:178)
When this error happens, I am still able to navigate LateralGM, however all ENIGMA related functions are greyed out. I can't export anything, nor can I run or debug the project.
I read the issue may be because I am on a 64-bit system, so I tried again- recompiling libcompileEGMf for 32 bit using -m32 flags in the makefile, and using a 32 bit version of Java. However, this setup just outright crashes.
Here's the relevant part of the message:
Creating swap.
Dumping whiteSpace definitions...
Opening ENIGMA for parse...
Unimplemented: '::'terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_M_create
Aborted (core dumped)
I have read the troubleshooting page on the wiki about this issue, but it didn't seem to help.
What should I do in this case?
-
Recompile libcompileEGMf but do:
make clean
first
-
Actually, that's what I've been doing.
make clean
was run before recompiling in all of my attempts.
-
That 32-bit error sounds problematic... Arch has a set of C++ headers that don't agree with ENIGMA's parser. Try the fix posted here (http://enigma-dev.org/forums/index.php?topic=2669.msg25839#msg25839) for a similar parse crash. It's been working for people with updated headers. It's a dirty hack, but it seems necessary for the time being.
-
Added that to SHELLmain.cpp. I may just be stupid, but after trying to use the makefile that's in the same directory as SHELLmain, I'm greeted with this error:
cc1: error: to generate dependencies you must specify either -M or -MM
SHELLmain.cpp:59:58: fatal error: Preprocessor_Environment_Editable/LIBINCLUDE.h: No such file or directory
#include "Preprocessor_Environment_Editable/LIBINCLUDE.h"
Additionally, LateralGM now sigsegv's with:
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x9cf09006, pid=23726, tid=2672147264
#
# JRE version: Java(TM) SE Runtime Environment (8.0_91-b14) (build 1.8.0_91-b14)
# Java VM: Java HotSpot(TM) Server VM (25.91-b14 mixed mode linux-x86 )
# Problematic frame:
# C [libcompileEGMf.so+0x149006] jdip::read_qualified_definition(jdi::lexer*, jdi::definition_scope*, jdip::token_t&, jdip::context_parser*, jdi::error_handler*)+0xb5
At least it seems to have gotten farther.
I also tried compiling with the makefile in the root ENIGMA directory, as well as recompiling libcompileEGF.so. Both of those succeed, but do nothing to alleviate the crash.
-
I find if LGM wasn't written in java we wouldn't be where we are today. ENIGMA would be much better as well, as most users rely on LGM and not the CLI. Seeing all these topics with error reports reminds of this every time I visit here. I won't say much else since I'm being off topic.