I have a .a file from which I want to get architecture information. Running file myFile.a results in file.a: current ar archive. How can I get more information on what architecture the file contains?
Just run file on the kernel image. It will show what architecture the binary was compiled as. file vmlinuz-2.6.
The command is uname -m . Open a terminal try using uname -m command. This should show you the OS architecture. If it gives any output like ix86 , where x is 3,4,5 or 6, Your OS is 32bit.
You can also skip the ar command and use readelf, via something like:
readelf -h <archive>.a | grep 'Class\|File\|Machine'
[00:32:15] /usr/lib $ readelf -h libxslt.a | grep 'Class\|File\|Machine' File: libxslt.a(attrvt.o) Class: ELF32 Machine: Intel 80386 File: libxslt.a(xslt.o) Class: ELF32 Machine: Intel 80386 ... #Trimmed this, it goes on a bit File: libxslt.a(transform.o) Class: ELF32 Machine: Intel 80386 File: libxslt.a(security.o) Class: ELF32 Machine: Intel 80386 [00:32:24] /usr/lib $ In case it's relevant, here's the other information that you can get from readelf -h. I just trimmed the above with grep, obviously:
File: libxslt.a(security.o) ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: REL (Relocatable file) Machine: Intel 80386 Version: 0x1 Entry point address: 0x0 Start of program headers: 0 (bytes into file) Start of section headers: 2548 (bytes into file) Flags: 0x0 Size of this header: 52 (bytes) Size of program headers: 0 (bytes) Number of program headers: 0 Size of section headers: 40 (bytes) Number of section headers: 16 Section header string table index: 13 That output is for one of the object files in libxslt.a, but it gives the same information for each file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With