[csw-maintainers] Determining the architecture of a binary
Sebastian Kayser
skayser at opencsw.org
Wed Jan 13 12:07:54 CET 2010
Hi Maciej,
* Maciej (Matchek) Blizinski <maciej at opencsw.org> wrote:
> I'd like to write a new check, to make sure that the actual binaries
> inside a package match the architecture declared in the pkginfo file.
> Unfortunately, the file command's output is not as reliable as I'd
> like it to. For instance, on build8s, it can tell when a binary is
> i386, but it doesn't say the same about an amd64 binary.
>
> maciej at build8s [build8s]:~ > file
> ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-i386/install-isa-i386/opt/csw/mysql5/bin/mysql
> | cut -d: -f2
> ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped
> maciej at build8s [build8s]:~ > file
> ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-i386/install-isa-amd64/opt/csw/mysql5/bin/amd64/mysql
> | cut -d: -f2
> ELF 64-bit LSB executable Version 1, dynamically linked, stripped
>
> We don't have our own, up-to-date file (or gfile), do we?
>
> Is there a better way of determining binary's architecture? (/usr/ccs/bin/dump?)
great to see that you are enhancing the checks. The more we do catch
upfront the better it is for all involved people (maintainer and release
manager).
You could have a look at the ELF header via elfdump. All outputs are
from build8s.
$ /usr/ccs/bin/elfdump -e ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-i386/install-isa-i386/opt/csw/mysql5/bin/mysql | grep e_machine
e_machine: EM_386 e_version: EV_CURRENT
$ /usr/ccs/bin/elfdump -e ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-i386/install-isa-amd64/opt/csw/mysql5/bin/amd64/mysql | grep e_machine
e_machine: EM_AMD64 e_version: EV_CURRENT
$ /usr/ccs/bin/elfdump -e ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-sparc/install-isa-sparcv8/opt/csw/mysql5/bin/mysql | grep e_machine
e_machine: EM_SPARC e_version: EV_CURRENT
$ /usr/ccs/bin/elfdump -e ~maciej/src/opencsw/pkg/mysql5/branches/mysql-5.0.x/work/solaris8-sparc/install-isa-sparcv9/opt/csw/mysql5/bin/sparcv9/mysql | grep e_machine
e_machine: EM_SPARCV9 e_version: EV_CURRENT
Sebastian
More information about the maintainers
mailing list