I have finished updating about half of Postgres' builtin functions to
the new style of fmgr interface. At this point, everything that accepts
any pass-by-value datatypes is converted; the remaining work is for
functions that use only pass-by-reference datatypes, and therefore
receive only pointer arguments.
This should already take care of function-call-related portability
problems on many platforms. In particular these changes should
eliminate the need for Ryan Kirkpatrick's Linux/Alpha patches, and
should also solve the known problems on PPC builds with optimization
higher than -O0. We might be able to increase the optimization level
on other platforms that have had trouble with function-call
optimizations, too.
I'd like to get the current code tested by some people with Alphas
(or other 64-bit platforms), PPCs, and anything else that has had
optimization-related problems. You can get the 7.1 development code
from our CVS server, or use the current daily-snapshot tarball (see
ftp://ftp.postgresql.org/pub/dev/).
regards, tom lane