Re: [zstd-sys 2.0.1+zstd.1.5.2] crate failing on arm64
Date: Thu, 24 Nov 2022 17:26:51 UTC
On Nov 24, 2022, at 07:00, Mark Millard <marklmi@yahoo.com> wrote: > On Nov 24, 2022, at 03:03, Nuno Teixeira <eduardo@freebsd.org> wrote: > >> Hello Mark, Hello. >> I have compared some of errors/warnings with amd64 build logs and they are present in there too. Interesting. >> I think I found a glitch at the end of arm64 log: >> --- >> [zstd-sys 2.0.1+zstd.1.5.2] running: "ar" "cq" "/wrkdirs/usr/ports... >> (...) >> "/wrkdirs/usr/ports/editors/lapce/ >> work/target/aarch64-unknown-freebsd/release/build/zstd-sys-97d70ebd740964f8/out/zstd/lib/decompress/huf_decompress_amd64.o" >> ^^^^^ Well, in my older context, # grep "^#" /wrkdirs/usr/ports/editors/lapce/work/lapce-0.2.1/cargo-crates/zstd-sys-2.0.1+zstd.1.5.2/zstd/lib/decompress/huf_decompress_amd64.S | grep -v "#define " #include "../common/portability_macros.h" #if defined(__ELF__) && defined(__GNUC__) #endif #if ZSTD_ENABLE_ASM_X86_64_BMI2 #undef GET_NEXT_DELT #undef DECODE_FROM_DELT #undef DECODE #undef RELOAD_BITS #undef DECODE #undef RELOAD_BITS #endif The #endif is the last line of the file and, ignoring comments and blank lines for the most part, the rest of the file before/at the #if ZSTD_ENABLE_ASM_X86_64_BMI2 is just: #include "../common/portability_macros.h" /* Stack marking * ref: https://wiki.gentoo.org/wiki/Hardened/GNU_stack_quickstart */ #if defined(__ELF__) && defined(__GNUC__) .section .note.GNU-stack,"",%progbits #endif #if ZSTD_ENABLE_ASM_X86_64_BMI2 Looks like the ZSTD_ENABLE_ASM_X86_64_BMI2 test would eliminate the amd64 specifics in an aarch64 context, so they do not bother avoiding the file. >> --- >> and zstd-sys-2.0.1+zstd.1.5.2/zstd/lib/common/xxhash.h: >> # if (defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64) || defined(_M_ARM64EC)) \ >> >> So I presume that this crate should be build on arm64/aarch64 but don't understant why it calls: >> "huf_decompress_amd64.o" >> >> Any clues? > > Not at this point. I've got the system rebuilding the > port so I can set up to look again. > >> . . . FYI: the better string for searching got: # find -s /wrkdirs/usr/ports/editors/lapce/ -name stderr -exec grep -l "aborting due to" {} \; | less /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/cap-fs-ext-10fe2c1f66453130/stderr /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/cap-primitives-ed08064314a4640b/stderr /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/cap-std-5acaec63374cb836/stderr /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/io-extras-e83e1591d250cc25/stderr /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/io-lifetimes-62b7366622512d7e/stderr /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/system-interface-56dbb6efd7f0321e/stderr The first line of the output is new compared to before: # more /wrkdirs/usr/ports/editors/lapce/work/target/aarch64-unknown-freebsd/debug/build/cap-fs-ext-10fe2c1f66453130/stderr error[E0554]: `#![feature]` may not be used on the stable release channel --> <anon>:1:12 | 1 | #![feature(windows_by_handle)] | ^^^^^^^^^^^^^^^^^ error[E0635]: unknown feature `windows_by_handle` --> <anon>:1:12 | 1 | #![feature(windows_by_handle)] | ^^^^^^^^^^^^^^^^^ error: aborting due to 2 previous errors Some errors have detailed explanations: E0554, E0635. For more information about an error, try `rustc --explain E0554`. So, not a new type of error compared to the others. === Mark Millard marklmi at yahoo.com