Hi Jeffrey, ----- Jeffrey Walton <noloader@gmail.com> a écrit :
Hi Everyone,
I'm working on the GCC Compile Farm. I'm on machine gcc118.fsffrance.org, which is an ARMv8.a machine. The cpu offers CRC and Crypto. The machine runs openSUSE Leap 42.1.
openSUSE Leap 42.1 is discontinued. Please use Leap 15.0 (the latest Leap version) or openSUSE Tumbleweed, the rolling release, with latest software, including latest kernel. Tumbleweed ISO: http://download.opensuse.org/ports/aarch64/tumbleweed/iso/ or: Leap 15.0 ISO: http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/iso/
When I attempt to engage the CRC and Crypto extensions the program fails to compile. CRC is shown below, but AES and SHA result in similar failures.
The unusual thing is, there is no <arm_acle.h> header. Missing <arm_acle.h> is common for Android and Apple, but Linux usually supplies it.
Does anyone know how to enable the CRC and Crypto extensions on openSUSE?
If you use a recent version of openSUSE, GCC should provide the arm_acle.h file. I verified it on Tumbleweed, with GCC7 and GCC8. Guillaume
Thanks in advance.
======== ======== ======== ======== ======== ========
== CPU info ==
cat /proc/cpuinfo processor : 0 [nid: 0] Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x1 CPU part : 0xd07 CPU revision : 2 ...
== Linux ==
lsb_release -a LSB Version: n/a Distributor ID: SUSE LINUX Description: openSUSE Leap 42.1 (aarch64) Release: 42.1 Codename: n/a
== GCC ==
gcc --version gcc (SUSE Linux) 4.8.5 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
== No ACLE ==
cat TestPrograms/test_acle.cxx #include <arm_acle.h> int main(int argc, char* argv[]) { return 0; }
g++ -march=armv8-a -O0 TestPrograms/test_acle.cxx TestPrograms/test_acle.cxx:1:22: fatal error: arm_acle.h: No such file or directory #include <arm_acle.h> ^ compilation terminated.
== No CRC ==
cat TestPrograms/test_crc.cxx #include <arm_neon.h> #include <stdint.h>
#if (CRYPTOPP_ARM_ACLE_AVAILABLE) # include <arm_acle.h> #endif
int main(int argc, char* argv[]) { uint32_t w=0xffffffff; w = __crc32w(w,w); w = __crc32h(w,w); w = __crc32b(w,w); return 0; }
g++ -march=armv8-a -DCRYPTOPP_ARM_ACLE_AVAILABLE=0 -O0 TestPrograms/test_crc.cxx TestPrograms/test_crc.cxx: In function ‘int main(int, char**)’: TestPrograms/test_crc.cxx:15:18: error: ‘__crc32w’ was not declared in this scope w = __crc32w(w,w); ^ TestPrograms/test_crc.cxx:16:18: error: ‘__crc32h’ was not declared in this scope w = __crc32h(w,w); ^ ... -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org