Patch: Remove gcc dependency in definition of inline functions
Kurt Harriman <harriman@acm.org>
From: Kurt Harriman <harriman@acm.org>
To: pgsql-hackers@postgresql.org
Date: 2009-11-29T19:11:04Z
Lists: pgsql-hackers
Attachments
- inline-across-platforms.patch (text/plain) patch
Hi, The attached patch is offered for the 2010-01 commitfest. It's also available in my git repository in the "submitted" branch: http://git.postgresql.org/gitweb?p=users/harriman/share.git;a=shortlog;h=refs/heads/submitted In palloc.h and pg_list.h, some inline functions are defined if allowed by the compiler. Previously the test was gcc-specific. This patch enables inlining on more platforms, relying on the Autoconf-generated "configure" script to determine whether the compiler supports inline functions. Depending on the compiler, the keyword for defining an inline function might be spelled as inline, __inline, or __inline__, or none of these. "configure" finds out, and except in the first case, puts a suitable "#define inline" into pg_config.h. This hasn't changed. What's new is that "configure" will add "#define HAVE_INLINE 1" into pg_config.h if it detects that the compiler accepts inline function definitions. palloc.h and pg_list.h will condition their inline function definitions on HAVE_INLINE instead of the gcc-specific __GNUC__. After applying the patch, run these commands to update the configure script and pg_config.h.in: autoconf; autoheader (Does anybody still use a C compiler that doesn't support inline functions?) Regards, ... kurt