-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Undeclared HWCAP_CRC32 compilation error in ARMv8 (Jetson TX2) #26458
Comments
The last change to that file was in October. What C/C++ compiler are you using, and did you maybe update your compiler in the mean time? |
This line was added in #22385; |
Not sure what changed but try adding |
Actually that shouldn't be needed I haven't found the aarch64 definition yet but According to https://github.molgen.mpg.de/git-mirror/glibc/blob/20003c49884422da7ffbc459cdeee768a6fee07b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h#L20 including |
Found it. It was added 2 years ago in bminor/glibc@26c2910 and the usage we have seems correct. What's your glibc version and what's your |
Thanks.
entails:
In fact In the system there is a File |
There is also a |
\\ (initial comments)
#ifndef _SYS_AUXV_H
# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
#endif
/* No bits defined for this architecture. */ |
It seems that your glibc is just a little too old. Note that including the kernel header usually isn't a solution due to possible name conflict with glibc ones. One solution is to do a Another solution is to just use |
Actually, should be |
Ok, guess that what I had compiled two months ago was in fact v0.6.2. That compiles since its source code does not uses Doing #include "processor.h"
#define HWCAP_CRC32 (1 << JL_AArch64_crc) works.
|
should do the trick. |
Don't do that, replace the actual use.
That doesn't make much sense..... There's only one place that can set the flag to cause this which is |
Ah, I was looking at the wrong CPU spec list. diff --git a/src/processor_arm.cpp b/src/processor_arm.cpp
index 01b98c2027..2801ea571a 100644
--- a/src/processor_arm.cpp
+++ b/src/processor_arm.cpp
@@ -209,6 +209,7 @@ constexpr auto apple_hurricane = armv8a_crc_crypto;
static constexpr CPUSpec<CPU, feature_sz> cpus[] = {
{"generic", CPU::generic, CPU::generic, 0, Feature::generic},
+ {"armv8-a", CPU::generic, CPU::generic, 0, Feature::generic},
{"armv8.1-a", CPU::armv8_1_a, CPU::generic, 0, Feature::armv8_1a},
{"armv8.2-a", CPU::armv8_2_a, CPU::generic, 0, Feature::armv8_2a},
{"armv8.3_a", CPU::armv8_3_a, CPU::generic, 0, Feature::armv8_3a}, Should work. |
As a side note, |
Ok, it is fully working. Must this issue be closed by considering that it is caused by problems with Jetson TX2 glibc, or there is something that must be done on the Julia side? |
Wouldn't hurt to update the source to use |
Should this be a pull request? |
fix hw crc32 and AES capability check, fix undefined Imported from GitHub PR #1794 Source and explanation JuliaLang/julia#26458 memcached/memcached#744 For build for aarch64 on v22_clang-16.0.6-centos7 ` abseil-cpp/absl/crc/internal/cpu_detect.cc:273:20: error: use of undeclared identifier 'HWCAP_CRC32' return (hwcaps & HWCAP_CRC32) && (hwcaps & HWCAP_PMULL); ^ abseil-cpp/absl/crc/internal/cpu_detect.cc:273:46: error: use of undeclared identifier 'HWCAP_PMULL' return (hwcaps & HWCAP_CRC32) && (hwcaps & HWCAP_PMULL); ` Merge 3ee325b into 940e0ec Merging this change closes #1794 COPYBARA_INTEGRATE_REVIEW=#1794 from Dertosh:patch-1 3ee325b PiperOrigin-RevId: 705936372 Change-Id: Ifebd6d1a854e17acf6cc00bab92053bc0d4c2349
I'm getting this error:
/home/nvidia/julia/src/crc32c.c:336:17: error: 'HWCAP_CRC32' undeclared (first use in this function)
when compiling Julia master, at a0180d9, in a Jetson TX2 (ARMv8).
Two months older versions used to compile flawlessly.
The text was updated successfully, but these errors were encountered: