Tomáš Ebenlendr <[EMAIL PROTECTED]> writes:

>>> Little changes in source code, though I had to adapt asm files to
>>> passing parameters in stack (I compile without -mregparm=3 -mrtd options
>>> as I didn't want to recompile the whole C library with those passing
>>> parameters conventions).
>>
>> It would be nice to get this to work for the regular modules too.  In
>> that case we do not need two set of modules.  Besides that, it should
>> also work on the PPC, for example.  Which is a lot harder.
>
> I tried that a year ago and I failed: There are lots of hooks, and you
> don't know if passed pointer is pointer to function from module
> (with -mregparm) or from main binary (w/o -mregparm).
>
> The only solution that comes to my mind now is to have all function
> declaration with -mregparm gcc directives. Then all grub functions
> will be with -mregparm and all standard library functions without.
> Other option will be recompiling standard libraries or creating some
> wrappers for them. But again, we must be careful when manipulating
> pointers to functions...

Right, which is already being done for the modules.  I agree it will
be hard to make this work in the right way.  It's more important to
get modules loading working first, without disturbing anything else.

> I was also thinking about throwing the -mregparm stuff away, but other
> developers here want it.

Right.

--
Marco



_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to