Hi, GCC 4.6.1 manual states that, starting with version 4.6, targets Linux_x86 and Darwin_x86 use "-fomit-frame-pointer" when not optimizing for size. This seems to be also the case for Hurd_x86, since compiling GNU Mach with it breaks i386/i386/locore.S:kdb_kintr, as it expects to find the base frame pointer in ebp.
I see three solutions for this problem: 1.- Modify GCC build options to disable "-fomit-frame-pointer" for Hurd_x86 target. 2.- Compile GNU Mach with "-fno-omit-frame-pointer". 3.- Fix all code which depends on having the frame pointer in ebp. Personally, I'd go with the first one. What do you think?