[opensuse-arm] ARMv8 CRC and Crypto on openSUSE Leap 42.1
cat /proc/cpuinfo
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. 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? Thanks in advance. ======== ======== ======== ======== ======== ======== == CPU info == 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>
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
#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; } 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
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
On Mon, Nov 12, 2018 at 2:31 PM Guillaume GARDET <guillaume.gardet@free.fr> wrote:
----- 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/
Thanks Guillaume . We don't really have a choice in the matter. Would you happen to know if that version of openSUSE supports CRC and Crypto extensions? Sorry to ask. I need to know if it is my problem or someone else's problem. If its my problem I need to fix it. Jeff -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On 12.11.18 20:54, Jeffrey Walton wrote:
On Mon, Nov 12, 2018 at 2:31 PM Guillaume GARDET <guillaume.gardet@free.fr> wrote:
----- 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/
Thanks Guillaume .
We don't really have a choice in the matter.
Why do you not have a choice here? It really makes little sense to develop against an out of support distribution, no?
Would you happen to know if that version of openSUSE supports CRC and Crypto extensions?
It depends on what you consider "supports" I guess? I don't think we shipped binutils on 42.1 yet that allowed you to assemble crc enabled code.
Sorry to ask. I need to know if it is my problem or someone else's problem. If its my problem I need to fix it.
I would really recommend to update the system. Can you ask the gcc Compile Farm people to do that for you? If not, do you have root access? If so, you should be able to create a chroot and just run your tests from there. The kernel shouldn't really care whether you're running crc operations: http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances... Alex -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On Mon, Nov 12, 2018 at 4:02 PM Alexander Graf <agraf@suse.de> wrote:
On 12.11.18 20:54, Jeffrey Walton wrote:
On Mon, Nov 12, 2018 at 2:31 PM Guillaume GARDET <guillaume.gardet@free.fr> wrote:
----- 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/
Thanks Guillaume .
We don't really have a choice in the matter.
Why do you not have a choice here? It really makes little sense to develop against an out of support distribution, no?
Thanks Alex. We don't control the platform; someone else controls it. We are expected to "just work" regardless of the environment. I don't disagree with you about the upgrade. But I would be pissing into the wind if we followed the abondonware development model. The mailing list and bug tracker would fill up with fodder for those not using the latest distros. It is easier on us to support the platform properly. Jeff -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
On 12.11.18 22:32, Jeffrey Walton wrote:
On Mon, Nov 12, 2018 at 4:02 PM Alexander Graf <agraf@suse.de> wrote:
On 12.11.18 20:54, Jeffrey Walton wrote:
On Mon, Nov 12, 2018 at 2:31 PM Guillaume GARDET <guillaume.gardet@free.fr> wrote:
----- 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/
Thanks Guillaume .
We don't really have a choice in the matter.
Why do you not have a choice here? It really makes little sense to develop against an out of support distribution, no?
Thanks Alex.
We don't control the platform; someone else controls it.
We are expected to "just work" regardless of the environment.
I don't disagree with you about the upgrade. But I would be pissing into the wind if we followed the abondonware development model. The mailing list and bug tracker would fill up with fodder for those not using the latest distros. It is easier on us to support the platform properly.
Hm, IIRC 42.1 predates any crc support from our side, so I wouldn't be very surprised if things break. If you say "you" are expected to just work, does that mean gcc? In that case, I would expect that the header you're looking for gets detected by configure and crc should be optionally disabled if it can't find it? Again, I'm fairly confident that even binutils in 42.1 doesn't know how to assemble crc instructions. That only came later. Alex -- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org
participants (3)
-
Alexander Graf
-
Guillaume GARDET
-
Jeffrey Walton