"Alignment" von Funktionen

27/11/2008 - 15:08 von Philipp Pichler | Report spam
Hi

Ich habe als kleines Testprogramm einen ganz simplen C-Code
mit 2 Funktionen

int calc_result (int a, int b);
void print_message (int a);


When ich objdump -t a.out verwerde, schaut mein Symbole-table
wiefolgt aus:

...
08048368 g F .text 00000015 calc_result
08048278 g F .init 00000000 _init
080482c0 g F .text 00000000 _start
0804837d g F .text 0000001b print_message


Meine Frage ist nun folgende: Gibt es eine Moeglichkeit dem gcc bzw. dem
loader mitzuteilen die beiden Funktionen in eine von mir vorgegeben
Adresse im Memory abzulegen? Vielleicht hat jemand mal sowas probiert
und waere cool wenn es hier dann den einen oder anderen Tip gibt ;)

Philipp
 

Lesen sie die antworten

#1 Rainer Weikusat
27/11/2008 - 16:42 | Warnen spam
Philipp Pichler writes:

[...]

When ich objdump -t a.out verwerde, schaut mein Symbole-table
wiefolgt aus:

...
08048368 g F .text 00000015 calc_result
08048278 g F .init 00000000 _init
080482c0 g F .text 00000000 _start
0804837d g F .text 0000001b print_message


Meine Frage ist nun folgende: Gibt es eine Moeglichkeit dem gcc
bzw. dem loader mitzuteilen die beiden Funktionen in eine von mir
vorgegeben Adresse im Memory abzulegen?



Weder noch. 'gcc' ist der 'compiler driver' und soetwas wie 'einen
loader' der Adressen anders als durch Addition einer
Laufzeitbasisadresse aendern koennte, gibt es nicht. Aber die
Dokumentation Deines Linkers koennte Dir weiterhelfen. Fuer den
Gnu-Linker sollte das meiner Erinnerung nach durch Benutzung eines
'linker scripts' moeglich sein.

Ähnliche fragen