On Sun, Mar 14, 2021 at 9:36 AM Kristoffer Brånemyr via GNU coreutils
General Discussion <coreutils@gnu.org> wrote:
>
> Hi,
> Ok, good to know it's progressing!
> I think that it would be best not to compile the main cksum.c with the -mavx 
> .. flags. With those flags I think the compiler is free to insert AVX 
> instructions in the main cksum.o file, which would fail on a CPU not 
> supporting it. Think for instance of a package maintainer of a linux 
> distributions, the compiler that person used would support -mavx so the flag 
> is enabled by autoconf, but another person using the resulting binary might 
> have a CPU not supporting AVX. That's what I tried to avoid by only having 
> the cksum_pclmul.c enabling the compiler flags, plus runtime detection.

+1. Do the per-object file thing.

Clang will even use AVX to zero memory buffers when AVX is in effect
via -mavx. That's speaking from experience from a SIGILL crash on a
Core2 machine.

The underlying problem is GCC, Clang and friends conflate the user's
ISA with ISA the compiler uses. They are not the same - they are
distinct. Unfortunately, GCC and Clang never addressed the underlying
problem.

Only Microsoft compilers got it right. MS compilers allow a user to
use any ISA the compiler supports without options. If an option is
present, like /arch:AVX2, that signals the compiler it can use the
ISA, too.

Jeff

  • [PATCH] cksum: U... Kristoffer Brånemyr via GNU coreutils General Discussion
    • Re: [PATCH]... Pádraig Brady
      • Re: [PA... Kristoffer Brånemyr via GNU coreutils General Discussion
        • Re:... Kaz Kylheku (Coreutils)
        • Re:... Pádraig Brady
          • ... Pádraig Brady
            • ... Jim Meyering
              • ... Pádraig Brady
          • ... Kristoffer Brånemyr via GNU coreutils General Discussion
            • ... Jeffrey Walton
              • ... Kaz Kylheku (Coreutils)
                • ... Jeffrey Walton
            • ... Pádraig Brady
              • ... Pádraig Brady
                • ... Kristoffer Brånemyr via GNU coreutils General Discussion

Reply via email to