ENIGMA Forums

Outsourcing saves money => Issues Help Desk => Topic started by: jerbear64 on July 07, 2016, 08:27:27 pm

Title: Can't get ENIGMA to run on 64-bit Arch Linux
Post 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
Code: [Select]
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:
Code: [Select]
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?
Title: Re: Can't get ENIGMA to run on 64-bit Arch Linux
Post by: faissaloo on July 08, 2016, 05:28:14 am
Recompile libcompileEGMf but do:
Code: [Select]
make cleanfirst
Title: Re: Can't get ENIGMA to run on 64-bit Arch Linux
Post by: jerbear64 on July 08, 2016, 08:26:00 pm
Actually, that's what I've been doing.

Code: [Select]
make clean was run before recompiling in all of my attempts.
Title: Re: Can't get ENIGMA to run on 64-bit Arch Linux
Post by: Josh @ Dreamland on July 10, 2016, 12:38:00 am
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.
Title: Re: Can't get ENIGMA to run on 64-bit Arch Linux
Post by: jerbear64 on July 10, 2016, 07:05:59 am
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:

Code: [Select]
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:

Code: [Select]
# 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.
Title: Re: Can't get ENIGMA to run on 64-bit Arch Linux
Post by: time-killer-games on July 11, 2016, 05:55:29 pm
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.