[sanniolug] Re: Linking

  • From: Domenico De Felice <dfd@xxxxxxxx>
  • To: sanniolug@xxxxxxxxxxxxx
  • Date: Thu, 20 May 2004 15:49:34 +0200

Alle 22:46, mercoledì 19 maggio 2004, Alfonso Martone ha scritto:
> Per curiosita', a cosa ti serve l'assembler da Linux?
[...]

In verita` l'assembly lo uso per altri motivi. Nel senso che il risultato 
finale della compilazione e` un binario. Intendo un binario vero e proprio, 
senza alcun header, ne elf ne a.out. Quindi non e` prodotto e non ha a che 
fare con Linux.

Ho comunque posto la domanda qui perche` gli strumenti con i quali sto 
scrivendo e compilando i sorgenti sono strumenti Linux.

Il problema, lo ripeto, e` che non riesco a fare in modo che l'assemblatore 
(nasm) e il compilatore C (gcc) producano dei file oggetto in modo tale che 
il linker (ld) possa fare il suo lavoro in modo corretto. Probabilmente c'e` 
qualcosa di subdolo che non va, dato che come ho mostrato nella email 
precedente con objdump si desume che le informazioni contenute nei file 
oggetto siano corrette.

Ne approfitto per fare un'altra domanda. Come ho detto il binario finale 
dovra` essere un binario ``puro''. Dato che pero` il sorgente e` scritto in 
piu` di un linguaggio, e le varie parti hanno bisogno di scambiarsi 
informazioni, devo prima ottenere il codice oggetto di ogni sorgente per poi 
linkarli insieme. Quindi mi viene un dubbio. Il codice oggetto che produco 
ora, da quanto mi dice objdump, e` un codice oggetto ELF.
Ora, io non ne capisco molto di queste cose, ma esistono codici oggetti ELF e 
codici oggetti ``binari puri''? Sinceramente ero convinto che il codice 
oggetto fosse prodotto indipendentemente dal tipo dell'output finale che il 
linker doveva generare. A quanto pare invece no. Giungo alla domanda: posso 
linkare due codici oggetto ELF insieme per ottenere un binario finale senza 
alcun header? E se no, come specifico sia a nasm che a gcc di generare codici 
oggetto adatti a questa operazione? (Ho gia` letto i man di entrambi, ma non 
ho trovato nulla di utile)

Grazie in anticipo

-- 
Domenico De Felice

Real programmers don't write in BASIC.  Actually, no programmers write
in BASIC after reaching puberty.


Other related posts: