Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 07 May 2002 23:00:42 -0400
From:      Nathan Hawkins <utsl@quic.net>
To:        arch@FreeBSD.ORG
Subject:   Re: syscall changes to deal with 32->64 changes.
Message-ID:  <3CD894DA.6060602@quic.net>
References:  <XFMail.20020507103320.jhb@FreeBSD.org> <3CD7FE57.1000508@quic.net> <20020507110901.F23330@dragon.nuxi.com> <3CD823E8.2010809@quic.net> <20020507135957.A30027@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David O'Brien wrote:

>On Tue, May 07, 2002 at 02:58:48PM -0400, Nathan Hawkins wrote:
>  
>
>>>>I'd like to see FreeBSD start using ELF .note.ABI-tag sections to handle 
>>>>the binary OS type/versioning. I know that at least NetBSD, Linux and 
>>>>Hurd do it this way, and I think most others do too.
>>>>        
>>>>
>>>Why?  Just to follow the NIH herd?  The EI_OSABI and EI_ABIVERSION fields
>>>were in the gABI spec before anyone started using .note sections for
>>>this.
>>>
>>>      
>>>
>>Because AFAICS, it's a defacto, unwritten standard. Even if it violates 
>>spec.
>>
>Your response is mostly content free.  But I honestly interested in your
>response.  Could you reread what I said and address it?
>  
>
All right:
1. Why?
How about being able to use stock binutils?

The original subject was how to handle some proposed ABI changes. The 
.note.ABI-tag section has a version field, already in the binaries 
(since 4.1, I believe.) It looks pretty simple to add a field to 
Elf_Brandinfo that has the ABI version. exec_elf_imgact could then be 
altered to select the right sysvec based on OS and ABI version from the 
note.

2. The EI_OSABI and EI_ABIVERSION fields were in the gABI spec before 
anyone started using .note sections for this.

But there has since been agreement to use the .note sections. One good 
reason is that it keeps OS specifics out of binutils, and makes it 
possible to cross compile for another OS on the same architecture.

You'd have to alter binutils to change the default EI_ABIVERSION or 
EI_OSABI field. If you do, how do you compile for the old ABI? The 
ABI-tags method would allow binutils to support both ABI's, by linking 
with a different copy of /usr/lib/crt1.o.

        ---Nathan



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CD894DA.6060602>