Support for armv8, is it possible?

Factor

New member
Messages
6
Points
0
Github
danilloestrela
Hello! I'm using Ubuntu 20 Focal fossa in my Raspberry Pi 3B+. I installed a Ubuntu mate (18.01) in the raspberry and the same error occurred.

../common/atomic.h:107:2: error: #error Your Target Platfrom is not supported
  107 | #error Your Target Platfrom is not supported
      |  ^~~~~


My uname below:

$ uname -a
Linux rasp-dan 5.4.0-1007-raspi #7-Ubuntu SMP Mon Mar 30 10:08:22 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux




Is there any forecast for updating the emulator for this type of system?

 
Hercules builds just fine on ARMv8 but the macro checking for ARM version has not been updated yet for __ARM_ARCH_8A__ so compilation will fail until a PR is merged that changes cbasetypes.h. Meanwhile you can use this git patch:

Code:
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -67,6 +67,9 @@
 #define __ARM_ARCH_VERSION__ 6
 #elif defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7S__) // gcc ARMv7
 #define __ARM_ARCH_VERSION__ 7
+#elif defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8R__) || defined(__ARM_ARCH_8M_BASE__) \
+	|| defined(__ARM_ARCH_8M_MAIN__) // gcc ARMv8
+#define __ARM_ARCH_VERSION__ 8
 #elif defined(_M_ARM) // MSVC
 #define __ARM_ARCH_VERSION__ _M_ARM
 #else
--
 
Last edited by a moderator:
@meko Still, i got this code into src/common/cbasetypes.h

It gave me the same response:

../common/atomic.h:107:2: error: #error Your Target Platfrom is not supported
  107 | #error Your Target Platfrom is not supported
      |  ^~~~~

 
I've been successfully building Hercules on a Raspberry Pi 4 (armv8/arm64) for a week or so - first by manually patching the platform macros and then by just picking up the commit that made that patch officially. However, for reasons I can't quite follow (not a C++ person), the compiled servers throw a Bus Error during startup for me. Compiling armv7 executables on armv8 works fine though!

 
hercules works fine on arm. now compilation fix merged already.

but by default hercules using memory manager, and memory manager not works on arm.

this mean for build on arm need use atleast this configure command

Code:
make clean
./configure --disable-manager
make
 
On armv7 it works fine even with the existing memory manager! This is good to know though, I'll give that a go for v8...

 
Back
Top