catid / gf256

GF256 - Fast 8-bit Galois Field Math in C
BSD 3-Clause "New" or "Revised" License
51 stars 11 forks source link

Compiled failed on the Android platform #3

Closed weiterlin closed 7 years ago

weiterlin commented 7 years ago

rmeabi-v7a] Compile++ arm : gf256 <= gf256.cpp /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -MMD -MP -MF dist/obj/local/armeabi-v7a/objs/gf256/gf256.o.d -gcc-toolchain /home/linwei/data/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -fno-integrated-as -g -target armv7-none-linux-androideabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-exceptions -fno-rtti -marm -O2 -DNDEBUG -mfpu=neon -I/home/linwei/data/android-ndk-r14b/sources/cxx-stl/llvm-libc++/include -I/home/linwei/data/android-ndk-r14b/sources/cxx-stl/llvm-libc++abi/include -I/home/linwei/data/android-ndk-r14b/sources/android/support/include -I. -DANDROID -DANDROID -DHAVE_ARM_NEON_H -pie -fPIE -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -std=c++11 -frtti -fexceptions --sysroot /home/linwei/data/android-ndk-r14b/platforms/android-16/arch-arm -c ./gf256.cpp -o dist/obj/local/armeabi-v7a/objs/gf256/gf256.o ./gf256.cpp:503:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(GF256Ctx.MM128.TABLE_LO_Y + y, vld1q_u8(lo)); ^~~~~~~~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:504:64: error: too few arguments provided to function-like macro invocation vst1q_u8(GF256Ctx.MM128.TABLE_HI_Y + y, vst1q_u8(hi)); ^ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25016:9: note: macro 'vst1q_u8' defined here

define vst1q_u8(p0, p1) extension ({ \

    ^

./gf256.cpp:504:53: error: use of undeclared identifier 'vst1q_u8' vst1q_u8(GF256Ctx.MM128.TABLE_HI_Y + y, vst1q_u8(hi)); ^ ./gf256.cpp:578:38: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' GF256_M128 x0 = vld1q_u8(x16); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:579:38: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' GF256_M128 x1 = vld1q_u8(x16 + 1); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:580:38: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' GF256_M128 x2 = vld1q_u8(x16 + 2); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:581:38: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' GF256_M128 x3 = vld1q_u8(x16 + 3); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:582:38: error: assigning to 'const unsigned char ' from incompatible type 'const uint8x16_t ' GF256_M128 y0 = vld1q_u8(y16); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:583:38: error: assigning to 'const unsigned char ' from incompatible type 'const uint8x16_t ' GF256_M128 y1 = vld1q_u8(y16 + 1); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:584:38: error: assigning to 'const unsigned char ' from incompatible type 'const uint8x16_t ' GF256_M128 y2 = vld1q_u8(y16 + 2); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:585:38: error: assigning to 'const unsigned char ' from incompatible type 'const uint8x16_t ' GF256_M128 y3 = vld1q_u8(y16 + 3); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:587:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(x16, veorq_u8(x0, y0)); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:588:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(x16 + 1, veorq_u8(x1, y1)); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:589:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(x16 + 2, veorq_u8(x2, y2)); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:590:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(x16 + 3, veorq_u8(x3, y3)); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:598:38: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' GF256_M128 x0 = vld1q_u8(x16); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:599:38: error: assigning to 'const unsigned char ' from incompatible type 'const uint8x16_t ' GF256_M128 y0 = vld1q_u8(y16); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ ./gf256.cpp:601:22: error: assigning to 'unsigned char ' from incompatible type 'uint8x16_t ' vst1q_u8(x16, veorq_u8(x0, y0)); ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25018:26: note: expanded from macro 'vst1q_u8' builtin_neon_vst1q_v(__p0, (int8x16_t)s1, 48); \ ^~~~ ./gf256.cpp:759:30: error: assigning to 'const unsigned char ' from incompatible type 'uint8x16_t ' vld1q_u8(z16), ^~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:7508:47: note: expanded from macro 'vld1q_u8' ret = (uint8x16_t) __builtin_neon_vld1q_v(p0, 48); \ ^~~~ /home/linwei/data/android-ndk-r14b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib64/clang/3.8.275480/include/arm_neon.h:25017:21: note: expanded from macro 'vst1q_u8' uint8x16_t s1 = p1; \ ^~~~ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [dist/obj/local/armeabi-v7a/objs/gf256/gf256.o] Error 1

catid commented 7 years ago

Yeah I have to implement the ARM NEON version at some point. I can look into it this weekend

Buanderie commented 7 years ago

My last PR should fix that issue, I think... I need to set my android toolchain again to check

Buanderie commented 7 years ago

@weiterlin , I checked that last commit solved the compilation issue on Android on my machine :)

weiterlin commented 7 years ago

Yes, Master, I have tried to compile successfully, thank you for your contribution。