akumuli/Akumuli

ARM build failed

Opened this issue · 5 comments

Hello,

I try to build on ARM Linux, and have got this error:

/home/kvantos/Projects/Akumuli/libakumuli/crc32c.cpp: In function ‘bool hardwared_crc32c_available()’:
/home/kvantos/Projects/Akumuli/libakumuli/crc32c.cpp:323:30: error: unknown register name ‘%edx’ in ‘asm’
             : "%ebx", "%edx");
                              ^
/home/kvantos/Projects/Akumuli/libakumuli/crc32c.cpp:323:30: error: unknown register name ‘%ebx’ in ‘asm’

Is there a way to fix it?

Thanks.

Lazin commented

Hello,
Only x86 is supported at the moment. If you want to port it to ARM you should provide the implementation for crc32c checksum. Another thing to check is attribute((packed)) on some structs.

Lazin commented

ARM64 is supported now

@Lazin do you have release notes for the ARM64 support?

Lazin commented

@vielmetti not yet. It's being tested only on ARM 64 now since I have access only to the machine provided by the Scaleway (which I believe is based on Cavium ThunderX SoC). Only deb package for Ubuntu Xenial is provided at the moment since I can't automate package creation on ARM. But other than that there is no difference between the x86 and arm versions. The performance is quite decent. I was able to get almost 600K writes/second on cheapest Scaleway server with 2Gigs of RAM and 4 cores.

Thanks @Lazin .

There is test and build infrastructure available for arm64 from the @WorksOnArm project - see http://worksonarm.com/cluster and http://github.com/worksonarm/cluster . We have bare metal Cavium ThunderX systems & a pretty active support community.

Let me know if you're interested by opening up an issue in the cluster repo.