pytorch / cpuinfo

CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)
BSD 2-Clause "Simplified" License
990 stars 310 forks source link

src/arm/linux/aarch32-isa.c does't build for armv8 #112

Closed pirama-arumuga-nainar closed 1 year ago

pirama-arumuga-nainar commented 2 years ago
// success
$ clang -target armv7a-linux-androideabi src/arm/linux/aarch32-isa.c  -I src/ -I include -std=c99 -I deps/clog/include -c
// failure
$ clang -target armv7a-linux-androideabi src/arm/linux/aarch32-isa.c  -I src/ -I include -std=c99 -I deps/clog/include -c  -march=armv8-a
In file included from src/arm/linux/aarch32-isa.c:7:
src/arm/linux/cp.h:41:24: error: invalid operand for instruction
                __asm__ __volatile__("MRC p1, 0, %[wcid], c0, c0" : [wcid] "=r" (wcid));
                                     ^
<inline asm>:1:6: note: instantiated into assembly here
        MRC p1, 0, r0, c0, c0
            ^
1 error generated.

MRC is not available on armv8 and the function may need to use MRS instead. To account for this, libcpuinfo for Android is built entirely for armv7-a even for armv8-a targets.

Maratyszcza commented 1 year ago

This was fixed in #117