Has anyone been here: http://blog.fpmurphy.com/2010/03/grub2-efi-support.html ? As a disclaimer, I don't know C or am a developer or anything, I'm just summarising what the "OS plumber" said and reporting what I saw happen when I try to compile grub. Basically the webpage talks about three bugs and gives source code for quit.mod.
1. "The header ../include/grub/i18n also has a minor error. The fix is to change the syntax of the ENABLE_NLS guard from #if to #ifdef."
About that. "#if (defined(ENABLE_NLS) && ENABLE_NLS) || !defined (GRUB_UTIL)" sounds like it's combining "if" with some kind of defining. Has this bug been taken care of? Does it really need to be "ifdef"? From my layman's point of view, #ifdef" seems redundant.
default cache size causes slow booting with EFI, change to:
#define GRUB_DISK_CACHE_SIZE 8192
#define GRUB_DISK_CACHE_BITS 13
#define GRUB_DISK_CACHE_SIZE 8
#define GRUB_DISK_CACHE_BITS 3
3. "The current linux loader does not reset the screen text-mode foreground and background colors to their defaults."
[fix on webpage]
The OS plumber is referring to 1.98. I looked at 1.99 and the bzr as of January 8th, 2012. The only mod I did was the cache one. 1.99 compiled for me with the cache mod in Linux Mint 11 (though some other places I tried to compile it in were less lucky). I compiled 1.99 with --enable-efiemu and --enable-grub-mkfont (both for the heck of it, sounds potentially fun for thumb drive use.).
The bzr version didn't compile at all, without any mods. Furthermore, when I tried --enable-efiemu with the bzr version, it said "configure: error: efiemu runtime was explicitly requested but can't be compiled". You'd think it should be able to if I just compiled grub 1.99 with --enable-efiemu. All the dependencies should be there, unless bzr extended
--enable-efiemu to need new dependencies (either "new" as in more entirely new dependencies or "new" as in newer versions of previously used dependencies).