Toon posts:

Zien of een executable 64bit of 32bit is.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb voor de gein eens een re-compile gedaan van squid op m'n Sun UltraSparc machine (zie zig.).

Ik heb de GCC cflags aangepast naar "-g -O2 -Wall -mcpu=ultrasparc -mvis -mtune=ultrasparc -m64"

Ik heb gemerkt dat de meeste software compilaties over hun nek gaan als je er een 64 bits binary van wilt maken (met "-m64" dus).
(Squid en bv. Mozilla zijn echter wel geschikt voor 64bits platforms).

Squid draait stabiel (al zij het niet merkbaar sneller als zonder alle UltraSparc specifieke optimalisaties maar goed) maar hoe kan ik nu zien dat het ook echt een 64bits binary is ?

Is er bv. een programmaatje dat me kan vertellen dat file X een 32bits of een 64bits ELF binary is ?

[ Voor 6% gewijzigd door Verwijderd op 16-12-2003 23:58 . Reden: Gruwelijke tiepvout... ]


  • imdos
  • Registratie: Maart 2000
  • Laatst online: 23-02 10:39

imdos

I use FreeNAS and Ubuntu

file filenaam

file /bin/echo
/bin/echo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped

[ Voor 84% gewijzigd door imdos op 16-12-2003 23:53 . Reden: erg summier ]

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Het programma file kan dat.
code:
1
2
3
# file /sbin/init
/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked (uses shared libs), stripped

Ik neem dat als het een 64 bit executable is, dat ie dat er bij zegt :)
edit:

wat ^^ zegt dus :)

[ Voor 8% gewijzigd door blaataaps op 16-12-2003 23:54 ]


Verwijderd

Topicstarter
file /opt/squid/sbin/squid

Levert op:

/opt/squid/sbin/squid: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV), dynamically linked (uses shared libs), not stripped


Jullie zijn geweldig _/-\o_

Verwijderd

Topicstarter
uhh, wat betekend dat "stripped" en "not stripped" eigenlijk ?

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
DESCRIPTION
GNU strip discards all symbols from object files objfile. The list of object files may include
archives. At least one object file must be given.
Dat betekent of bepaalde debug-informatie weggehaald is of niet, het debugt dan moeilijker, maar de bestanden worden er een stuk kleiner van :)

Verwijderd

Topicstarter
Aha, en kan je in de compiler opties meegeven dat ie "gestripped" moet worden of moet ./configure daar een optie voor aanbieden ?

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
dat doe je door
strip "bestand" te doen, zie ook man strip :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 20:52

igmar

ISO20022

blaataaps schreef op 17 december 2003 @ 00:08:
dat doe je door
strip "bestand" te doen, zie ook man strip :)
Of --strip-all of --strip-debug aan de linker, meerdere wegen die naar Rome leiden :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 20:52

igmar

ISO20022

Verwijderd schreef op 16 december 2003 @ 23:46:
Squid draait stabiel (al zij het niet merkbaar sneller als zonder alle UltraSparc specifieke optimalisaties maar goed) maar hoe kan ik nu zien dat het ook echt een 64bits binary is ?
Elfutils bevat diverse tools waarmee je gedetailleerder info over ELF binaries kan opvragen, waarbij eu-readelf en eu-strip het meest nuttig zijn.

Verwijderd

blaataaps schreef op 17 december 2003 @ 00:04:
[...]

Dat betekent of bepaalde debug-informatie weggehaald is of niet, het debugt dan moeilijker, maar de bestanden worden er een stuk kleiner van :)
offtopic:
Doet me denken aan een bepaald inhouse product waar ik ooit eens mee gewerkt had; Die hadden executables van gemiddeld rond de 150~250MB per stuk (sic). Toen ik erachter kwam dat die executables debugging info gebruikte, ben ik het gebruik van strip erdoor gaan duwen. Na strippen werden die binaries gemiddeld 15~20MB groot (alsnog sic). Het kan dus flink schelen...

[ Voor 11% gewijzigd door Verwijderd op 17-12-2003 11:17 ]

Pagina: 1