[PATCH v7] MIPS: Sync elf.h from binutils

黄莺 ying.huang@oss.cipunited.com
Fri Aug 18 10:10:02 GMT 2023


Hi Maciej,
I have submitted pacth v10 including changing all E_MIPS_* to EF_MIPS_, and also update binutils & submit patch.
Thanks,
Ying
> From: "Maciej W. Rozycki"<macro@orcam.me.uk>
> Date:  Sat, Aug 12, 2023, 01:43
> Subject:  Re: [PATCH v7] MIPS: Sync elf.h from binutils
> To: "Florian Weimer"<fweimer@redhat.com>
> Cc: "Richard Sandiford"<richard.sandiford@arm.com>, "Ying Huang"<ying.huang@oss.cipunited.com>, "libc-alpha"<libc-alpha@sourceware.org>, <yunqiang.su@oss.cipunited.com>, <binutils@sourceware.org>
> Hi Florian,
> 
>  Cc-ing binutils now, to get a record of this discussion there.
> 
> > >  The EF_* definitions were added on top of preexisting E_* macros back in 
> > > 1998 by Ulrich Drepper with commit c3966b88eeb ("Update.") and only this:
> > >
> > > 	* elf/elf.h: Add lots of new symbols from Irix and Solaris.
> > 
> > My concern was adding EF_* constants to glibc that duplicate E_*
> > constants that are used in binutils.  I think we should either change
> > binutils to use the EF_* constants, too, or for these legacy constants,
> > use the E_* prefix in glibc as well.
> 
>  It's not a problem: as long as we reach consensus I can update binutils 
> accordingly, and we can discard E_* constants from there at any time if 
> needed as they are for BFD use only and we don't offer any stable BFD API.
> 
> > Not sure if this a reasonable position, though.
> 
>  So I did a little more research on this topic and came across this thread 
> of mine from decades ago, and specifically this message coming from the 
> lost world: <https://sourceware.org/ml/binutils/2002-07/msg00681.html>. 
> Clearly IRIX used to use EF_* macros, just as I thought and just as has 
> used the Linux kernel (and MTI never came to finishing their promised 
> psABI spec, where it only says "To be supplied" in the relevant part[1]).
> 
>  So while we may have to keep the few already existing in <elf.h>, just 
> because we were unfortunate enough to make them a part of our API back in 
> 1996:
> 
> 	* elf/elf.h: Add some new constants from recent Cygnus ELF
> 	header files.
> 
> having likely taken them as a Cygnus invention without due consideration, 
> I think we ought to refrain from adding new E_* macros and stick to EF_* 
> instead.
> 
>  NB the whole thread referred above might be worth reviewing for anyone 
> interested in these matters.  Here's a reference for the earlier part:
> <https://lore.kernel.org/r/Pine.GSO.3.96.1020724182704.27732L-100000@delta.ds2.pg.gda.pl/>
> as the discussion started on the old MIPS/Linux mailing lists first and 
> then was carried over to binutils as well.
> 
> References:
> 
> [1] "MIPS ABIs Described", MIPS Technologies, Inc., Document Number: 
>     MD00305, Revision 1.3, 2002/12/02, Chapter 7. "ELF object code", p. 24
>     <https://web.archive.org/web/20140911162016/https://dmz-portal.mips.com/mw/images/f/fe/MD00305-2B-ABIDESC-SPC-01.03.pdf>
> 
>   Maciej


More information about the Libc-alpha mailing list