Commit Graph

16 Commits

Author SHA1 Message Date
Heikki Linnakangas
7f06c7082a Revert changes to pthread configure tests on REL9_5_STABLE.
Some buildfarm animals are still unhappy. These changes are becoming too
invasive for backpatch, for little benefit. This reverts commits
080c4dab3d and
ce0da62610.
2015-07-09 10:59:10 +03:00
Heikki Linnakangas
ce0da62610 Replace our hacked version of ax_pthread.m4 with latest upstream version.
Our version was different from the upstream version in that we tried to use
all possible pthread-related flags that the compiler accepts, rather than
just the first one that works. That change was made in commit
e48322a6d6, to work-around a bug affecting GCC
versions 3.2 and below (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8888),
although we didn't realize that it was a GCC bug at the time. We hardly care
about that old GCC versions anymore, so we no longer need that workaround.

This fixes the macro for compilers that print warnings with the chosen
flags. That's pretty annoying on its own right, but it also inconspicuously
disabled thread-safety, because we refused to use any pthread-related flags
if the compiler produced warnings. Max Filippov reported that problem when
linking with uClibc and OpenSSL. The warnings-check was added because the
workaround for the GCC bug caused warnings otherwise, so it's no longer
needed either. We can just use the upstream version as is.

If you really want to compile with GCC version 3.2 or older, you can still
work-around it manually by setting PTHREAD_CFLAGS="-pthread -lpthread"
manually on the configure command line.

Backpatch to 9.5. I don't want to unnecessarily rock the boat on stable
branches, but 9.5 seems like fair game.
2015-07-08 20:39:44 +03:00
Tom Lane
2e8ce9ae46 Remove some useless code in the configure script.
Almost ten years ago, commit e48322a6d6 broke
the logic in ACX_PTHREAD by looping through all the possible flags rather
than stopping with the first one that would work.  This meant that
$acx_pthread_ok was no longer meaningful after the loop; it would usually
be "no", whether or not we'd found working thread flags.  The reason nobody
noticed is that Postgres doesn't actually use any of the symbols set up
by the code after the loop.  Rather than complicate things some more to
make it work as designed, let's just remove all that dead code, and thereby
save a few cycles in each configure run.
2014-07-01 17:51:53 -04:00
Peter Eisentraut
f005384532 Better support for thread-support flag detection with clang
When testing the stderr produced by various thread-support flags, also
run a compilation in addition to a link, because clang warns on
certain flags when compiling but not when linking.
2011-02-16 23:15:54 +02:00
Bruce Momjian
1a6fe83011 Allow Win32 libpq will use it's minimal pthread implementation, and ecpg
will use pthreadGC2.

Dave Page
2005-08-29 00:47:35 +00:00
Bruce Momjian
af80de1f01 Update aix cc_r wording. 2004-12-14 14:53:53 +00:00
Bruce Momjian
0f4b3f2215 Mention aix cc_r is not supported, and why 2004-12-14 12:58:29 +00:00
Tom Lane
9b3fc492d3 If we're going to test for switch validity by observing whether the
compiler emits any warnings, the test program had better be 100%
correct, not only 90% correct.  The recent addition of -Wold-style-definition
broke thread-safety detection on every platform that has that switch,
because the test program used an old-style definition.
2004-10-24 00:54:12 +00:00
Bruce Momjian
b85faa87b9 Send thread test output to file descriptor 5 like configure does rather
than /dev/null, which Win32 doesn't have.
2004-09-11 02:12:17 +00:00
Bruce Momjian
8becd824aa Check for ignored thread compiler options to reduce compiler noise. 2004-09-11 00:03:06 +00:00
Bruce Momjian
0d4aa039ac Fix agressive collection of thread flags. 2004-08-17 15:19:09 +00:00
Bruce Momjian
6a5718b1ee Fix syntax error just introduced. 2004-08-16 23:49:58 +00:00
Bruce Momjian
e48322a6d6 Be more aggressive about adding flags to thread compiles. The configure
test only tests for building a binary, not building a shared library.

On Linux, you can build a binary with -pthread, but you can't build a
binary that uses a threaded shared library unless you also use -pthread
when building the binary, or adding -lpthread to the shared library
build.  This patch has the effect of doing the later by adding both
-pthread and -lpthread when building libpq.
2004-08-12 16:39:50 +00:00
Bruce Momjian
19f1370b1e Minor style cleanup of thread test script. 2004-08-12 14:58:37 +00:00
Bruce Momjian
30a06fe2c4 Unconditionally define:
-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS

for all ports.  It can't hurt if they are not supported, but it makes
our job easier for porting.

Should fix Darwin compile and other platforms without mucking with the
thread detection code.
2004-04-26 04:04:42 +00:00
Bruce Momjian
7a66015e98 Add new auto-detection of thread flags.
Allow additional thread flags to be added via port templates.

Change thread flag names to PTHREAD_CFLAGS and PTHREAD_LIBS to match new
configure script.
2004-04-23 18:15:55 +00:00