diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2019-10-21 12:32:35 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2019-10-21 12:32:35 -0400 |
commit | 44273ce4f664a1bb34ef8ea9359237344cd6aaec (patch) | |
tree | cd524c164b5b043cb21207992ed454aaacade4de /src/template | |
parent | 80831bcdbe80a6ca7f22105e32c2cbb54e125c4c (diff) | |
download | postgresql-44273ce4f664a1bb34ef8ea9359237344cd6aaec.tar.gz |
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
Diffstat (limited to 'src/template')
-rw-r--r-- | src/template/aix | 5 | ||||
-rw-r--r-- | src/template/cygwin | 3 | ||||
-rw-r--r-- | src/template/darwin | 3 | ||||
-rw-r--r-- | src/template/freebsd | 3 | ||||
-rw-r--r-- | src/template/hpux | 7 | ||||
-rw-r--r-- | src/template/linux | 3 | ||||
-rw-r--r-- | src/template/netbsd | 3 | ||||
-rw-r--r-- | src/template/openbsd | 4 | ||||
-rw-r--r-- | src/template/solaris | 9 | ||||
-rw-r--r-- | src/template/win32 | 3 |
10 files changed, 43 insertions, 0 deletions
diff --git a/src/template/aix b/src/template/aix index 999cd35945..cec240d27b 100644 --- a/src/template/aix +++ b/src/template/aix @@ -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 @@ -17,6 +19,9 @@ if test "$GCC" != yes ; then FORCE_DISABLE_RESTRICT=yes 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 diff --git a/src/template/cygwin b/src/template/cygwin index b6ea0ded52..79a108145f 100644 --- a/src/template/cygwin +++ b/src/template/cygwin @@ -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, diff --git a/src/template/darwin b/src/template/darwin index c05adca0bf..f4d4e9d7cf 100644 --- a/src/template/darwin +++ b/src/template/darwin @@ -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 diff --git a/src/template/freebsd b/src/template/freebsd index a82d5a494c..41fa4a1aba 100644 --- a/src/template/freebsd +++ b/src/template/freebsd @@ -4,3 +4,6 @@ if test x"$PREFERRED_SEMAPHORES" = x"" ; then PREFERRED_SEMAPHORES=UNNAMED_POSIX fi + +# Extra CFLAGS for code that will go into a shared library +CFLAGS_SL="-fPIC -DPIC" diff --git a/src/template/hpux b/src/template/hpux index 79d3475664..50fff80c53 100644 --- a/src/template/hpux +++ b/src/template/hpux @@ -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 diff --git a/src/template/linux b/src/template/linux index e39290845a..ec3302c4a2 100644 --- a/src/template/linux +++ b/src/template/linux @@ -9,6 +9,9 @@ fi # This is also required for ppoll(2), and perhaps other things 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" diff --git a/src/template/netbsd b/src/template/netbsd index 198697723d..d97f995c74 100644 --- a/src/template/netbsd +++ b/src/template/netbsd @@ -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" diff --git a/src/template/openbsd b/src/template/openbsd index e69de29bb2..365268c489 100644 --- a/src/template/openbsd +++ b/src/template/openbsd @@ -0,0 +1,4 @@ +# src/template/openbsd + +# Extra CFLAGS for code that will go into a shared library +CFLAGS_SL="-fPIC -DPIC" diff --git a/src/template/solaris b/src/template/solaris index e07b9a0a8d..f88b1cdad3 100644 --- a/src/template/solaris +++ b/src/template/solaris @@ -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 diff --git a/src/template/win32 b/src/template/win32 index 7da9719acb..1380d16548 100644 --- a/src/template/win32 +++ b/src/template/win32 @@ -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 |