ABI/architecture identification for packages

Baptiste Daroussin bapt at FreeBSD.org
Tue Mar 20 09:19:40 UTC 2012


On Mon, Mar 19, 2012 at 10:35:08PM +0100, Baptiste Daroussin wrote:
> Hi all,
> 
> In order to identify architectures I need to find a uniq id for every
> possibilities (for pkgng)
> 
> here is the identification I propose:
> 
> arch-class-os-majorversion(-archi_specific_extension)
> 
> arch can be one of the following:
> 
> - x86 for i386 and amd64 (discussed with kib)
> - powerpc for powerpc and powerpc64
> - arm
> - mips
> - sparc
> 
> class may be:
> - 32 bits
> - 64 bits
> 
> os will always be freebsd :) (lower case)
> 
> majorversion the freebsd major version (10 9 8)
> 
> achi_specific_extension currently only mips and arm are concerned,
> for arm could be:
> el_oabi
> eb_oabi
> el_eabi
> eb_eabi
> 
> (I don't know how to get arm version or hardfp/softfp from the elf)
> 
> for mips I don't know much.
> 
> for ia64, I have strictly no idea what I should set.
> 
> Everything is read from the elf file
> 
> for example:
> x86-64-freebsd-10
> x86-32-freebsd-8
> arm-32-freebsd-10-el_oabi
> 
> Please help me to improve this to get the better identification to have the best
> possible to determine which package can be installed where.
> 
> while proposing information please tell me how to get the information
> (dynamically)
> 
> regards,
> Bapt

Another question (by rwatson) that comes here is should we keep the architecture
names that freebsd uses to avoid confusion or should we try to use more accurate
names?

powerpc-64-freebsd-9 -> powerpc64-64-freebsd-9
x86-32-freebsd-9 -> i386-32-freebsd-9
x86-64-freebsd-9 -> amd64-64-freebsd-9
etc.

An example of implementation can be find here:
https://github.com/pkgng/pkgng/blob/master/libpkg/pkg_elf.c#L157

PS: Feel free to submit fixes/improvements to the code :)

regards,
Bapt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20120320/00f7d96c/attachment.pgp


More information about the freebsd-current mailing list