pgsql: Always use our own versions of *printf().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Always use our own versions of *printf().
Date: 2018-09-26 17:14:02
Message-ID: E1g5DNy-0005cK-Vj@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Always use our own versions of *printf().

We've spent an awful lot of effort over the years in coping with
platform-specific vagaries of the *printf family of functions. Let's just
forget all that mess and standardize on always using src/port/snprintf.c.
This gets rid of a lot of configure logic, and it will allow a saner
approach to dealing with %m (though actually changing that is left for
a follow-on patch).

Preliminary performance testing suggests that as it stands, snprintf.c is
faster than the native printf functions for some tasks on some platforms,
and slower for other cases. A pending patch will improve that, though
cases with floating-point conversions will doubtless remain slower unless
we want to put a *lot* of effort into that. Still, we've not observed
that *printf is really a performance bottleneck for most workloads, so
I doubt this matters much.

Patch by me, reviewed by Michael Paquier

Discussion: https://postgr.es/m/2975.1526862605@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/96bf88d52711ad3a0a4cc2d1d9cb0e2acab85e63

Modified Files
--------------
config/c-compiler.m4 | 11 +-
config/c-library.m4 | 100 -------------
configure | 254 --------------------------------
configure.in | 83 -----------
src/include/c.h | 8 -
src/include/pg_config.h.in | 17 ---
src/include/pg_config.h.win32 | 17 ---
src/include/port.h | 8 +-
src/interfaces/ecpg/compatlib/Makefile | 3 +-
src/interfaces/ecpg/ecpglib/Makefile | 4 +-
src/interfaces/ecpg/pgtypeslib/Makefile | 4 +-
src/interfaces/libpq/Makefile | 4 +-
src/pl/plperl/plperl.h | 5 -
src/pl/plpython/plpython.h | 5 -
src/port/Makefile | 3 +-
src/port/README | 2 +-
16 files changed, 19 insertions(+), 509 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-09-26 17:32:03 pgsql: Implement %m in src/port/snprintf.c, and teach elog.c to rely on
Previous Message Tom Lane 2018-09-26 16:36:03 pgsql: Incorporate strerror_r() into src/port/snprintf.c, too.