Cross compile for armhf with neon == error: instruction requires: NEON

68 views
Skip to first unread message

mattl...@live.com

unread,
Jul 3, 2020, 1:38:56 AM7/3/20
to skia-discuss
Hey folks, I am new to all this cross-compiling, so I probably did it wrong. I am building using clang 10 for armhf. So far, the c/c++ code seems to compile, but I am not going so well on the assembler for libjpeg.

I get a massive list of errors:

../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:233:5: error: invalid instruction
    vld1.16 {d16, d17, d18, d19}, [COEF_BLOCK, :128]!
    ^
../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:234:5: error: invalid instruction
    vld1.16 {d0, d1, d2, d3}, [DCT_TABLE, :128]!
    ^
../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:235:5: error: invalid instruction
    vld1.16 {d20, d21, d22, d23}, [COEF_BLOCK, :128]!
    ^
../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:236:5: error: instruction requires: NEON
    vmul.s16 q8, q8, q0
    ^
../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:237:5: error: invalid instruction
    vld1.16 {d4, d5, d6, d7}, [DCT_TABLE, :128]!
    ^
../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S:238:5: error: instruction requires: NEON
    vmul.s16 q9, q9, q1
    ^

My actual command is this:

clang-10 -MD -MF obj/third_party/externals/libjpeg-turbo/simd/arm/libjpeg.jsimd_neon.o.d -DTURBO_FOR_WINDOWS -DNDEBUG --sysroot=/usr/arm-linux-
gnueabihf --target=armv7a-linux-gnueabihf -mfloat-abi=hard -march=armv7-a -mfpu=neon -mthumb -c ../../../third_party/externals/libjpeg-turbo/simd/arm/jsimd_neon.S -o obj/third_party/externals/libjpe
g-turbo/simd/arm/libjpeg.jsimd_neon.o

mattl...@live.com

unread,
Jul 3, 2020, 1:43:37 AM7/3/20
to skia-discuss
This is a bit messy due to my hacking, but this is my args.gn

target_os = "linux"
target_cpu = "arm"
is_official_build = true
skia_enable_gpu = true
skia_enable_tools = false
skia_use_icu = false
skia_use_piex = true
skia_use_sfntly = false
skia_use_system_expat = false
skia_use_system_freetype2 = false
skia_use_system_libjpeg_turbo = false
skia_use_system_libpng = false
skia_use_system_libwebp = false
skia_use_system_zlib = false
skia_use_vulkan = true
extra_asmflags = []
extra_cflags = [
  "-DSKIA_C_DLL",
  "-DHAVE_SYSCALL_GETRANDOM",
  "-DXML_DEV_URANDOM",
]
extra_ldflags = [
  "-static-libstdc++",
  "-static-libgcc",
  "-Wl,--version-script=/work/native/linux/libSkiaSharp/libSkiaSharp.map",
]
cc = "clang-10"
cxx = "clang++-10"
linux_soname_version = "80.0.0"
skia_use_fontconfig = false
extra_asmflags += [
  "--sysroot=/usr/arm-linux-gnueabihf",
  "--target=armv7a-linux-gnueabihf",
  "-mfloat-abi=hard",
  "-march=armv7-a",
  "-mfpu=neon",
  "-mthumb",
]
extra_cflags += [
  "--sysroot=/usr/arm-linux-gnueabihf",
  "--target=armv7a-linux-gnueabihf",
  "-mfloat-abi=hard",
  "-march=armv7-a",
  "-mfpu=neon",
  "-mthumb",
  "-I/usr/arm-linux-gnueabihf/include",
  "-I/usr/arm-linux-gnueabihf/include/c++/4.8.5",
  "-I/usr/arm-linux-gnueabihf/include/c++/4.8.5/arm-linux-gnueabihf",
]
extra_ldflags += [
  "--sysroot=/usr/arm-linux-gnueabihf",
  "--target=armv7a-linux-gnueabihf",
  "-mfloat-abi=hard",
  "-march=armv7-a",
  "-mfpu=neon",
  "-mthumb",
]


mattl...@live.com

unread,
Jul 3, 2020, 1:47:09 AM7/3/20
to skia-discuss
If it matters, I am running in a docker container in wsl 2:

I installed llvm-10 and libstdc++-4.8-dev-armhf-cross libgcc-4.8-dev-armhf-cross binutils-arm-linux-gnueabihf

Reply all
Reply to author
Forward
0 new messages