On Thu, 2006-09-28 at 15:45 +0200, [EMAIL PROTECTED] wrote: > > if (grub_strcmp (name, "grub_mod_init") == 0) > mod->init = (void (*) (grub_dl_t)) sym->st_value; > > This won't work on ia64 AFAIK.
Can't this problem be solved with an architecture-specific macro? FWIW, 64-bit PowerPC also uses function descriptors. They look something like: long code_address long table_of_contents long unused The table_of_contents (TOC) value needs to be placed into r2 when jumping at code_address (and of course the old one needs to be restored when returning). I assume IA64 is similar here, and given that, a module_jump function implemented in assembly by each architecture would solve this problem. (Generally speaking, the TOC on ppc64 only varies across separately linked modules.) (This issue does not apply to GRUB on ppc64 systems, since those systems still use 32-bit firmware and thus 32-bit GRUB.) -Hollis _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel