Responding to myself:
Some progress:
I put additional informational output between all commands in the
suspect area in GRUBs util/setup.c and pinpointed the bug:
#ifdef GRUB_SETUP_SPARC64
{
grub_partition_t container = root_dev->disk->partition;
if (grub_strstr (container->partmap->name, "gpt"))
bl.gpt_offset = grub_partition_get_start (container);
}
#endif
When installing on an md-device - or other special devices - it will
never have a partition table, thus "container" is null.
After that, access to struct members is tried without checking if it
even exists, leading to the segfault.
if (container && grub_strstr (container->partmap->name, "gpt"))
actually works & installs on LVM if I put a hint for GRUB into the
device.map pointing to the UUID of the MDRAID.
I'll try to get a patch for that submitted or discussed (I'm new to this
and not exactly sure if the change has other implications).
It still won't boot, though. The first "stage" in the 2nd partition
block is executed by OBP and something along the lines of "GRUB FAIL -
trap: Illegal Instruction" and on a second attempt "Unaligned Memory
Access" was encountered...
I'll post back,
Greetings,
Robin