Re: [zstd-sys 2.0.1+zstd.1.5.2] crate failing on arm64

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Fri, 25 Nov 2022 16:16:02 UTC
Ok, I'm a little lost...

What you think about a short error message to send to upstream:
---
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`.
---
with link to full log.

Thanks

Mark Millard <marklmi@yahoo.com> escreveu no dia quinta, 24/11/2022 à(s)
17:27:

> 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
>
>

-- 
Nuno Teixeira
FreeBSD Committer (ports)