The thing I did for OpenBSD 3.7 is patch the gcc-3.3.x we use: - On OpenBSD, by default, trampoline code generation is disabled in gcc 3.3.5. Code requiring trampolines will not compile without -ftrampolines. The warning flag -Wtrampolines can be used to locate trampoline instances if trampoline generation is re-enabled.
that way, you still have trampolines available in C if you need them, but you don't risk compiling dangerous code that disables executable stack protection by mistake. It's probably quite trivial to write a similar patch for gcc-current, assuming you guys think it's the right design decision. After enabling that patch, we recompiled the whole system, all of X, and the 3000 packages of third party sources. -ftrampolines was needed exactly 0 times.