ELF auxiliary vector tags
Julian Elischer
julian at freebsd.org
Sat Sep 9 16:18:31 UTC 2017
On 9/9/17 1:36 am, John Baldwin wrote:
> Currently, each architecture defines a list of auxiliary vector tag values (AT_*)
> in the respective <machine/elf.h>. Most of these lists are identical except that
> powerpc is missing AT_GID and AT_EGID and all the of the vectors after those two
> are thus N-2 on powerpc compared to all our other architectures.
>
> I noticed this while working on patches to add AT_HWCAP for ARM which debuggers
> can use to determine the layout of VFP registers (and which might have other
> uses at runtime).
>
> I'd like to move AT_* to sys/elf_common.h to have a single list across all
> platforms (the auxv parsing code in GDB for FreeBSD already assumes the list of
> AT_* values is identical across all platforms on FreeBSD). However, it would be
> convenient it powerpc could be updated to use the same values as all other
> platforms. This would probably be a flag day for powerpc (breaking all existing
> binaries) if we did it though, so I'm not sure if we can do that? I know Justin
> changed time_t to 64-bit on 32-bit powerpc which effectively broke 32-bit
> powerpc earlier, but this change would break both 32-bit and 64-bit powerpc and
> is probably more disruptive (in theory some binaries might have worked with a
> wrong time_t, but renumber AT_STACKPROT, etc. will probably break every binary).
>
> Does anyone object to making AT_* MI, and if not, can we "break" powerpc or do
> we need to preserve the AT_* values on powerpc?
>
I'm guessing it would require a 2 or 3 step process over quite a long
time period.
An alias for each of the entries about the one s you mention, while
still supporting the ones in old binaries
and then after a couple of years removing the originals, and then
after a couple of
years more, moving them to the new locations (with maybe some cookie
change to declare old binaries unrunable
or maybe something as radical a separate image executor.
More information about the freebsd-arch
mailing list