I ended up reinstalling from scratch to recover, so no longer have emerge info. It was only *after* reinstalling that I realized modprobe had started crashing (at the insmod step) after I changed from module-init-tools to kmod. Note that the crash may have been caused by something else I did (I had rebuilt glibc) but under gdb on modprobe or insmod I saw an illegal instruction in /sbin/kmod syscall.S at the ldmfd after a SWI #0. I assume this is because the number of the syscall was invalid - possibly a kernel config issue. I was using a kernel built from the rpi github GIT head (git://github.com/raspberrypi/linux) with CONFIG_BLK_DEV_BSG set (suggested by udev). No module could be loaded (lsmod, which worked fine, showed nothing). With an identical kernel module-init-tools modprobe seems to work just fine.
Illegal instruction could mean that your modprobe was built with incorrect compiler flags.
The code looked (In reply to comment #1) > Illegal instruction could mean that your modprobe was built with incorrect > compiler flags. The code looked correct; a SWI followed by an LDMFD, both instructions were in the ARM 1 ;-) Of course it's possible, but then I don't see why it was just kmod, and why it happened in syscall.S at something that looked innocuous. I'd rebuilt everything that depended on libc.so If I'm right, however, it implies that it will repro on any Rpi, and I note that 'stable' now pulls kmod. I'll double check since I now have a kernel build with no boot-time module requirements.
I can no longer reproduce the problem. I'm guessing it was actually a problem with the recomplication of libc, where compiler flags (CFLAGS) were empty. That seems a little weird, but it's the only obvious thing that happened other than upgrading the compiler. The only other possibility is that ~arm has problems (I'm now using stable.)