Date: Tue, 07 May 2002 12:18:31 -0400 From: Nathan Hawkins <utsl@quic.net> To: John Baldwin <jhb@FreeBSD.org> Cc: arch@FreeBSD.ORG Subject: Re: syscall changes to deal with 32->64 changes. Message-ID: <3CD7FE57.1000508@quic.net> References: <XFMail.20020507103320.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote:
>Right. I would like to use the ELF_ABI_OSVERSION thingie, but according to
>O'Brien it violates the ELF spec to use any value other than 0. But then
>why does it exist if we can't use it? :( One idea being thrown about is
>that for the new ABI (It would be FreeBSD ABI 2) there would be a syscall
>at syscall 0 that would never change that could be used to select what "minor"
>version of the ABI you wanted to use, so if we wanted to add a new ABI at
>some point in the future we could stick that syscall in crt.c (or whatever
>the proper startup file is) to change to ABI 2.1 or 2.2 or something. However,
>for the current change, I think bumping the ELF OS version and adding a new
>ABI front-end for ABI 2 is the way to go.
>
>
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. It looks like gcc
is already inserting them, (run readelf -S, and you should see it) so
it'd be a matter of adding to the binary emulation selector to check
.note.ABI-tag. For your new ABI, set a version number in the tag. I
believe the tag gcc is putting in already has a field for that.
This also has the benefit of making emulations work more transparently,
as it should obsolete brandelf.
>Another advantage of this is that if our tools handle the OS version bit
>properly, we can actually not have to worry about much of a flag day. Instead
>we can gradually add the new ABI and support for it and then just quietly
>throw the switch to change the default ABI in current one day. Old binaries
>would still run fine. The only tricky part is for libc.so since you would
>really need two version of it (unless we also bumped to libc.so.6 for this..)
>and we would need to make sure we linked to the right OSVERSION of the lib when
>doing runtime linking, whcih could get ugly.
>
This would be about the same for the above suggestion.
I think bumping libc version would be good. It solves things neatly.
---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?3CD7FE57.1000508>
