mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
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
This commit is contained in:
@@ -31,7 +31,8 @@ SHLIB_EXPORTS = exports.txt
|
||||
# Need to recompile any libpgport object files
|
||||
LIBS := $(filter-out -lpgport, $(LIBS))
|
||||
|
||||
OBJS= informix.o strerror.o $(filter snprintf.o strnlen.o, $(LIBOBJS)) $(WIN32RES)
|
||||
OBJS= informix.o snprintf.o strerror.o \
|
||||
$(filter strnlen.o, $(LIBOBJS)) $(WIN32RES)
|
||||
|
||||
PKG_CONFIG_REQUIRES_PRIVATE = libecpg libpgtypes
|
||||
|
||||
|
@@ -26,8 +26,8 @@ override CFLAGS += $(PTHREAD_CFLAGS)
|
||||
LIBS := $(filter-out -lpgport, $(LIBS))
|
||||
|
||||
OBJS= execute.o typename.o descriptor.o sqlda.o data.o error.o prepare.o memory.o \
|
||||
connect.o misc.o path.o pgstrcasecmp.o strerror.o \
|
||||
$(filter snprintf.o strlcpy.o strnlen.o win32setlocale.o isinf.o, $(LIBOBJS)) \
|
||||
connect.o misc.o path.o pgstrcasecmp.o snprintf.o strerror.o \
|
||||
$(filter strlcpy.o strnlen.o win32setlocale.o isinf.o, $(LIBOBJS)) \
|
||||
$(WIN32RES)
|
||||
|
||||
# thread.c is needed only for non-WIN32 implementation of path.c
|
||||
|
@@ -30,8 +30,8 @@ SHLIB_LINK += $(filter -lm, $(LIBS))
|
||||
SHLIB_EXPORTS = exports.txt
|
||||
|
||||
OBJS= numeric.o datetime.o common.o dt_common.o timestamp.o interval.o \
|
||||
pgstrcasecmp.o strerror.o \
|
||||
$(filter rint.o snprintf.o strnlen.o, $(LIBOBJS)) \
|
||||
pgstrcasecmp.o snprintf.o strerror.o \
|
||||
$(filter rint.o strnlen.o, $(LIBOBJS)) \
|
||||
string.o \
|
||||
$(WIN32RES)
|
||||
|
||||
|
@@ -36,9 +36,9 @@ OBJS= fe-auth.o fe-auth-scram.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-l
|
||||
libpq-events.o
|
||||
# libpgport C files we always use
|
||||
OBJS += chklocale.o inet_net_ntop.o noblock.o pgstrcasecmp.o pqsignal.o \
|
||||
strerror.o thread.o
|
||||
snprintf.o strerror.o thread.o
|
||||
# libpgport C files that are needed if identified by configure
|
||||
OBJS += $(filter crypt.o getaddrinfo.o getpeereid.o inet_aton.o open.o system.o snprintf.o strlcpy.o strnlen.o win32error.o win32setlocale.o, $(LIBOBJS))
|
||||
OBJS += $(filter crypt.o getaddrinfo.o getpeereid.o inet_aton.o open.o system.o strlcpy.o strnlen.o win32error.o win32setlocale.o, $(LIBOBJS))
|
||||
|
||||
ifeq ($(enable_strong_random), yes)
|
||||
OBJS += pg_strong_random.o
|
||||
|
Reference in New Issue
Block a user