taskwarrior icon indicating copy to clipboard operation
taskwarrior copied to clipboard

Build error on ARM aarch64

Open scompo opened this issue 3 years ago • 1 comments

I'm having problems building taskwarrior on my pinebook pro.

This is the error reported:

[ 96%] running cargo
cd /home/scompo/programmi/taskwarrior/src/tc/rust && /usr/bin/cmake -E env CARGO_TARGET_DIR=/home/scompo/programmi/taskwarrior/src/tc/rust /home/scompo/.cargo/bin/cargo build --target x86_64-unknown-linux-gnu
   Compiling libc v0.2.137
   Compiling cc v1.0.73
   Compiling autocfg v1.1.0
   Compiling proc-macro2 v1.0.36
   Compiling unicode-xid v0.2.2
   Compiling cfg-if v1.0.0
   Compiling syn v1.0.91
   Compiling once_cell v1.10.0
   Compiling spin v0.5.2
   Compiling version_check v0.9.4
   Compiling serde_derive v1.0.147
   Compiling untrusted v0.7.1
   Compiling tinyvec_macros v0.1.0
   Compiling serde v1.0.147
   Compiling tinyvec v1.5.1
   Compiling ahash v0.7.6
   Compiling quote v1.0.17
   Compiling getrandom v0.2.6
   Compiling miniz_oxide v0.4.4
   Compiling num-traits v0.2.14
   Compiling ring v0.16.20
   Compiling pkg-config v0.3.25
   Compiling vcpkg v0.2.15
   Compiling log v0.4.17
   Compiling crc32fast v1.3.2
   Compiling matches v0.1.9
   Compiling unicode-normalization v0.1.19
error: failed to run custom build command for `ring v0.16.20`

Caused by:
  process didn't exit successfully: `/home/scompo/programmi/taskwarrior/src/tc/rust/debug/build/ring-ea78a4a824861caf/build-script-build` (exit status: 101)
  --- stdout
  OPT_LEVEL = Some("0")
  TARGET = Some("x86_64-unknown-linux-gnu")
  HOST = Some("aarch64-unknown-linux-gnu")
  CC_x86_64-unknown-linux-gnu = None
  CC_x86_64_unknown_linux_gnu = None
  TARGET_CC = None
  CC = None
  CROSS_COMPILE = None
  CFLAGS_x86_64-unknown-linux-gnu = None
  CFLAGS_x86_64_unknown_linux_gnu = None
  TARGET_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")

  --- stderr
  running "x86_64-linux-gnu-gcc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-DNDEBUG" "-c" "-o/home/scompo/programmi/taskwarrior/src/tc/rust/x86_64-unknown-linux-gnu/debug/build/ring-0e34f31cb4e8dc9a/out/aesni-x86_64-elf.o" "/home/scompo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/aesni-x86_64-elf.S"
  thread 'main' panicked at 'failed to execute ["x86_64-linux-gnu-gcc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-DNDEBUG" "-c" "-o/home/scompo/programmi/taskwarrior/src/tc/rust/x86_64-unknown-linux-gnu/debug/build/ring-0e34f31cb4e8dc9a/out/aesni-x86_64-elf.o" "/home/scompo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/aesni-x86_64-elf.S"]: No such file or directory (os error 2)', /home/scompo/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/build.rs:653:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
make[2]: *** [src/tc/rust/CMakeFiles/tc-rust_target.dir/build.make:73: src/tc/rust/x86_64-unknown-linux-gnu/debug/libtc_rust.a] Errore 101
make[2]: uscita dalla directory «/home/scompo/programmi/taskwarrior»
make[1]: *** [CMakeFiles/Makefile2:586: src/tc/rust/CMakeFiles/tc-rust_target.dir/all] Errore 2
make[1]: uscita dalla directory «/home/scompo/programmi/taskwarrior»
make: *** [Makefile:156: all] Errore 2

I'm opening this as suggested in #3006.

scompo avatar Dec 22 '22 07:12 scompo

I think this is because the CMakeRust cmake lib (which Taskwarrior relies on for cmake <-> Cargo integration) doesn't have any support for aarch64, and misidentifies aarch64 as x86_64. I tweaked it until it worked on my M1 MBP and submitted https://github.com/Devolutions/CMakeRust/pull/16 to add that logic to CMakeRust directly.

dathanb avatar Mar 12 '23 05:03 dathanb