[PATCH] Linux/x86: Configure gas with --enable-x86-used-note by default

H.J. Lu hjl.tools@gmail.com
Mon Jul 13 15:27:55 GMT 2020


On Mon, Jul 13, 2020 at 7:09 AM Michael Matz <matz@suse.de> wrote:
>
> Hello,
>
> On Thu, 9 Jul 2020, H.J. Lu via Binutils wrote:
>
> > > >> On 09.07.2020 17:02, H.J. Lu via Binutils wrote:
> > > >>>       * configure.ac: Configure with --enable-x86-used-note by default
> > > >>>       for Linux/x86.
> > > >>
> > > >> I'm quite unconvinced this is a good idea as long as the contents of
> > > >> these notes are neither reliable nor properly settled on what they
> > > >> actually mean. This should be considered an experimental feature for
> > > >> now, and hence would better not be enabled by default to avoid
> > > >> future backwards compatibility issues.
> > > >>
> > > >
> > > > It has been an experimental feature for 2 years.
> > >
> > > And when I asked questions about the underlying spec I did get at
> > > best fuzzy answers from you. I still have on my todo list to get
> > > this in shape with a pretty recent reply of yours, which was
> > > supporting my view on how things should be (and why things are
> > > broken right now), and hence somewhat contrary to earlier replies
> > > of yours.
> > >
> > > To just name the most unclear (to me) aspect of what's there
> > > currently: What's the distinction between xmm, ymm, and zmm, when
> > > zmm is a superset of ymm (and ymm one of xmm), yet at the same
> > > time AVX512 writes to xmm mean writes to ymm and zmm (zeroing
> > > upper parts) as well. From my observations e.g. an AVX512 insn
> > > accessing just xmm registers will record just an xmm dependency,
> > > which then is simply wrong - the resulting binary in fact depends
> > > on all of xmm, ymm, zmm, and the mask registers. IIRC I proposed
> > > back then to tie what an insn records to the XCR0 bits it
> > > requires to be set in order for it to not fault.
> >
> > Should we add a field to i386 opcode table for this?
> >
> > > >  Let's see what fallouts will be.
> > >
> > > Fallout may become noticeable only when the behavior of the notes
> > > changes: People may start noticing that new (correct) dependencies
> > > prevent things from working (assuming there's any consumer of
> > > these notes).
> > >
> >
> > We have a couple months to address this before 2.36 is released.
>
> FWIW, as data point, if this option becomes default for 2.35 I'll patch it
> out again for our distro binutils.  I really really want to avoid
> spreading binaries with these notes into the wild in the current state.
> Whenever I look at them my guts grumble and I think they are ill-defined.
>
> The past attempts to clarify them (or to create better defined
> alternatives) never lead to anything like a agreement amongst affected
> parties, so this change in default seems to be work-around for that by
> creating unchangable facts.
>

Please open bugs for issues you find.

Thanks.

-- 
H.J.


More information about the Binutils mailing list