https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104713

James Addison <jay+g...@jp-hosting.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jay+g...@jp-hosting.net

--- Comment #5 from James Addison <jay+g...@jp-hosting.net> ---
Adrian wrote:
> To support the Geode in OLPC, the toolchain definition of i686 does include 
> CMOV but it does not include multi-byte NOPs.
...
> Sorry for being unclear, this is the historical reason why the binutils/gcc 
> definition of i686 does not include multi-byte NOPs.

Jakub wrote:
> Just build for those as -march=i586. preventing -fcf-protection with 
> -march=i686 would be a really bad idea, that would basically prevent all of 
> CET protection for 32-bit code, i686 is what is used as the supported lowest 
> common denominator of 32-bit code.

Could the findings indicate that there are two bugs here?

  - The Geode LX target capable of supporting fcf-protection but GCC-11
currently rejects that architecture and flag combination (in the
potentially-buggy code[1] that Adrian refers to)

  - Multi-byte NOPs are emitted for architecture i686 by GCC-11, despite some
CPUs within that architecture lacking[2] support


Also potentially relevant is bug 41989.

[1] -
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/i386/i386-options.cc;h=805539364108eee07f5bda527acd6f39f3f7bf95;hb=HEAD#l2929

[2] - https://bugzilla.redhat.com/show_bug.cgi?id=579838#c32

Reply via email to