C-Funktion exit() aufrufen (MIPS)?!

06/08/2010 - 20:38 von olk | Report spam
Wie rufe ich die exit() Funktion aus der libc korrekt auf (auf MIPS32)?
Ich möchte explizit keinen syscall durchführen.
Auf Linux/MIPS wird der gas verwendet. Soweit ich mitbekomme wird
standardmàßig PIC erzeugt (ohne -fPIC als compiler argument).

derzeit funktioniert zwar:

la $25, exit
jal $31, $25

Ich bekomme aber eine Warnung:
Warning: No .cprestore pseudo-op used in PIC code

Wie rufe ich den nun Funktionen der libc richtig auf?

thx,
Oliver
 

Lesen sie die antworten

#1 Ralf Bartzke
11/08/2010 - 17:16 | Warnen spam
olk schrieb:
Wie rufe ich die exit() Funktion aus der libc korrekt auf (auf MIPS32)?
Ich möchte explizit keinen syscall durchführen.
Auf Linux/MIPS wird der gas verwendet. Soweit ich mitbekomme wird
standardmàßig PIC erzeugt (ohne -fPIC als compiler argument).

derzeit funktioniert zwar:

la $25, exit
jal $31, $25

Ich bekomme aber eine Warnung:
Warning: No .cprestore pseudo-op used in PIC code

Wie rufe ich den nun Funktionen der libc richtig auf?

thx,
Oliver



Du bekommst hier eine Warnung, noch keine Fehlermeldung.

la $25, exit
jr $25

oder schlicht

j exit

müsste einen àquivalenten Code auch ohne Warnung erstellen. Ob der
Aufruf so heute und spàter funktioniert, ist vom restlichen Systemdesign
abhàngig. Es kann sein, dass generell nicht geht, was Du möchtest,
"explizit keinen syscall durchführen", aber diese Funktion dennoch
aufrufen und ausführen.

Ähnliche fragen