pgsql: Use AS_IF rather than plain shell "if" in pthread-check. - Mailing list pgsql-committers

From Heikki Linnakangas
Subject pgsql: Use AS_IF rather than plain shell "if" in pthread-check.
Date
Msg-id E1ZD7PT-0007TJ-7s@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Use AS_IF rather than plain shell "if" in pthread-check.

Autoconf generates additional code for the first AC_CHECK_HEADERS call in
the script. If the first call is within an if-block, the additional code is
put inside the if-block too, even though it is needed by subsequent
AC_CHECK_HEADERS checks and should always be executed. When I moved the
pthread-related checks earlier in the script, the pthread.h test inside
the block became the very first AC_CHECK_HEADERS call in the script,
triggering that problem.

To fix, use AS_IF instead of plain shell if. AS_IF knows about that issue,
and makes sure the additional code is always executed. To be completely
safe from this issue (and others), we should always be using AS_IF instead
of plain if, but that seems like excessive caution given that this is the
first time we have trouble like this. Plain if-then is more readable than
AS_IF.

This should fix compilation with --disable-thread-safety, and hopefully the
buildfarm failure on forgmouth, related to mingw standard headers, too.
I backpatched the previous fixes to 9.5, but it's starting to look like
these changes are too fiddly to backpatch, so commit this to master only,
and revert all the pthread-related configure changes in 9.5.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/01051a9879fcd353eaf0d3788a911e774b52798c

Modified Files
--------------
configure    |  273 ++++++++++++++++++++++++++++++----------------------------
configure.in |   14 +--
2 files changed, 149 insertions(+), 138 deletions(-)


pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Revert changes to pthread configure tests on REL9_5_STABLE.
Next
From: Heikki Linnakangas
Date:
Subject: Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream