gcc-gnat-3.2.3-24, when building the hello-world ada source "foo.ads" with Text_Io; use Text_Io; procedure hello is begin put ("Hello world!"); end hello; incurs a compiler SEGV.
If the kernel uses non-executable stack by default on AMD64 and doesn't honor PT_GNU_STACK marking (only FC1+ kernel honors it AFAIK), it is a kernel bug. Ada certainly uses trampolines, as well as several other programs. You might want to try noexec=off noexec32=off kernel options.
The noexec=off option does indeed eliminate the SEGV. I'm now looking into now invasive it would be to support PT_GNU_STACK for RHEL3-U2.
I've got a patch that fixes this; now under code review.
Patch slated for U2
*** Bug 115282 has been marked as a duplicate of this bug. ***
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2004-188.html