[OpenBIOS] Q: How to "squeeze" C functions in between two symbols?

Andreas Färber andreas.faerber at web.de
Sat Oct 16 19:18:32 CEST 2010


Am 16.10.2010 um 13:43 schrieb Andreas Färber:

> Am 14.10.2010 um 18:45 schrieb Mark Cave-Ayland:
>
>> Andreas Färber wrote:
>>
>>> I got OpenBIOS to load my RTAS blob and AIX to enter my RTAS C  
>>> function and emit something to escc uart from there. It looks like  
>>> AIX is trying to emit "\nAIX " via display-character RTAS calls.
>>> My code's not very stable though, the same code snippet didn't  
>>> work inside a [{static,inline}] serial_putchar() function but did  
>>> directly in my main function called from assembly. Still poking at  
>>> ldscript and assembler to find the cause or a workaround. Right  
>>> now it does print okay but hangs on returning from the RTAS call.  
>>> Will post an RFC once I've cleaned it up a little, maybe it's  
>>> something obvious...
>>> Andreas
>>
>> I don't know if it helps with PPC, but on SPARC64 there is an issue  
>> whereby if you are compiling with -O0 (which is typical during  
>> development), you need to allow extra stack space when switching  
>> contexts. Does compiling with -Os solve the issue at all?
>
> Seems like it was compiling with -Os by default.

Update: I've been successful with the combination of -lgcc link and  
rtas-tokens.c compilation with -O2 -fpie (-O2 solved the _savegpr_31  
issue).
The _GLOBAL_OFFSET_TABLE_ issue remains though, I've been extending  
the rtas-ldscript without success so far.

Andreas


More information about the OpenBIOS mailing list