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