Jump to content
  • 0
Factor

Support for armv8, is it possible?

Question

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.

 

Quote

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

 

My uname below:

Quote

$ 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?

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

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:

--- 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
-- 

 

Share this post


Link to post
Share on other sites
  • 0

@meko Still, i got this code into src/common/cbasetypes.h

It gave me the same response:

Quote

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

 

Share this post


Link to post
Share on other sites
  • 0

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!

Share this post


Link to post
Share on other sites
  • 0

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

make clean
./configure --disable-manager
make

 

Share this post


Link to post
Share on other sites
  • 0

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...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.