1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-02 04:21:28 +03:00

Select CFLAGS_SL at configure time, not in platform-specific Makefiles.

Move the platform-dependent logic that sets CFLAGS_SL from
src/makefiles/Makefile.foo to src/template/foo, so that the value
is determined at configure time and thus is available while running
configure's tests.

On a couple of platforms this might save a few microseconds of build
time by eliminating a test that make otherwise has to do over and over.
Otherwise it's pretty much a wash for build purposes; in particular,
this makes no difference to anyone who might be overriding CFLAGS_SL
via a make option.

This patch in itself does nothing with the value and thus should not
change any behavior, though you'll probably have to re-run configure
to get a correctly updated Makefile.global.  We'll use the new
configure variable in a follow-on patch.

Per gripe from Kyotaro Horiguchi.  Back-patch to all supported branches,
because the follow-on patch is a portability bug fix.

Discussion: https://postgr.es/m/20191010.144533.263180400.horikyota.ntt@gmail.com
This commit is contained in:
Tom Lane
2019-10-21 12:32:36 -04:00
parent 09d74aef33
commit 62ca50ad7a
25 changed files with 73 additions and 32 deletions

View File

@@ -1,3 +1,5 @@
# src/template/aix
# Set default options if using xlc. This formerly included -qsrcmsg, but that
# option elicits internal compiler errors from xlc v16.1.0. Note: configure
# will add -qnoansialias if the compiler accepts it, even if user specifies a
@@ -13,6 +15,9 @@ if test "$GCC" != yes ; then
esac
fi
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL=""
# Native memset() is faster, tested on:
# AIX 5.1 and 5.2, XLC 6.0 (IBM's cc)
# AIX 5.3 ML3, gcc 4.0.1

View File

@@ -2,6 +2,9 @@
SRCH_LIB="/usr/local/lib"
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL=""
# --allow-multiple-definition is required to link pg_dump because it finds
# pg_toupper() etc. in both libpq and pgport
# we'd prefer to use --disable-auto-import to match MSVC linking behavior,

View File

@@ -16,6 +16,9 @@ if test x"$PG_SYSROOT" != x"" ; then
fi
fi
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL=""
# Select appropriate semaphore support. Darwin 6.0 (macOS 10.2) and up
# support System V semaphores; before that we have to use named POSIX
# semaphores, which are less good for our purposes because they eat a

View File

@@ -1 +1,4 @@
# src/template/freebsd
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL="-fPIC -DPIC"

View File

@@ -8,6 +8,13 @@ if test "$GCC" != yes ; then
CFLAGS="+O2"
fi
# Extra CFLAGS for code that will go into a shared library
if test "$GCC" = yes ; then
CFLAGS_SL="-fPIC"
else
CFLAGS_SL="+Z"
fi
# Pick right test-and-set (TAS) code. We need out-of-line assembler
# when not using gcc.
case $host in

View File

@@ -3,6 +3,9 @@
# Force _GNU_SOURCE on; plperl is broken with Perl 5.8.0 otherwise
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL="-fPIC"
# If --enable-profiling is specified, we need -DLINUX_PROFILE
PLATFORM_PROFILE_FLAGS="-DLINUX_PROFILE"

View File

@@ -1,2 +1,5 @@
# src/template/netbsd
# tools/thread/thread_test must be run
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL="-fPIC -DPIC"

View File

@@ -0,0 +1,4 @@
# src/template/openbsd
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL="-fPIC -DPIC"

View File

@@ -1 +1,10 @@
# src/template/sco
CC="$CC -b elf"
# Extra CFLAGS for code that will go into a shared library
if test "$GCC" = yes ; then
CFLAGS_SL="-fpic"
else
CFLAGS_SL="-K PIC"
fi

View File

@@ -1,3 +1,12 @@
# src/template/solaris
# Extra CFLAGS for code that will go into a shared library
if test "$GCC" = yes ; then
CFLAGS_SL="-fPIC"
else
CFLAGS_SL="-KPIC"
fi
if test "$SUN_STUDIO_CC" = yes ; then
CC="$CC -Xa" # relaxed ISO C mode
CFLAGS="-v" # -v is like gcc -Wall

View File

@@ -1,3 +1,5 @@
# src/template/unixware
if test "$GCC" != yes; then
# The -Kno_host is for a bug in the compiler. See -hackers
# discussion on 7-8/Aug/2003.
@@ -37,5 +39,12 @@ __EOF__
fi
# Extra CFLAGS for code that will go into a shared library
if test "$GCC" = yes ; then
CFLAGS_SL="-fpic"
else
CFLAGS_SL="-K PIC"
fi
# Unixware's ldap library reportedly needs these too
EXTRA_LDAP_LIBS="-llber -lresolv"

View File

@@ -1,5 +1,8 @@
# src/template/win32
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL=""
# --allow-multiple-definition is required to link pg_dump because it finds
# pg_toupper() etc. in both libpq and pgport
# --disable-auto-import is to ensure we get MSVC-like linking behavior