GCC before 3.3.3 had "something" missing so that prototypes' attributes could be different from attributes declared at the function body.
Since now GCC 3.3.3 correctly emits a warning whenever the prototype doesnot match the function UP TO THE CHAR, it barks out.
And Linux 2.4.x is affected by this now.
I have put up a fix that solves this.
fastcall.diff
Even though it's diffed against 2.4.21-SuSE202, it should work against most other 2.4s. If not, well, you can only correct offending hunks by hand :-)
edit@aug09: fixed link