This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] [MIPS] Enable non-executable PT_GNU_STACK support v2

On Thu, 22 Dec 2016, Maciej W. Rozycki wrote:

>  Unfortunately binutils 2.27 have been released which already set ABI 
> version to 5 despite that they do not support IFUNC.  So we cannot 
> retroactively make version 5 imply IFUNC support, and consequently we 
> cannot make version 4 imply IFUNC support either, as we work under the 
> assumption that any given ABI version supports all the previous 
> (lower-numbered) ABI versions' features.

It's only if a version was released in glibc that you can't reassign it.  
I don't see why you can't change binutils to use version 4 for GNU_STACK 
(and then 5 for IFUNC), probably including on 2.27 branch - binaries built 
to use version 5 for GNU_STACK just won't work with glibc until it gets 
IFUNC support.  The relevant rule is: glibc doesn't claim to support a 
version unless it supports all ABIs <= that version (that is, all ABIs 
used by binaries that give a version <= that version).

It's OK for binaries to specify an ABI version higher than they require 
(which would, effectively, be the case for binaries built now that use 
version 5 for GNU_STACK - version 5 meaning, under the reassigned numbers, 
that you need a glibc supporting all of MIPS_PLT, UNIQUE, MIPS_O32_FP64, 
GNU_STACK and IFUNC - which is a stricter requirement than necessary, but 
it's OK for binaries to specify stricter requirements than necessary).

Joseph S. Myers

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]