Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream
Дата
Msg-id 55BE176F.3070901@iki.fi
обсуждение исходный текст
Ответ на Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream  (Heikki Linnakangas <hlinnaka@iki.fi>)
Ответы Re: pgsql: Replace our hacked version of ax_pthread.m4 with latest upstream  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
On 07/26/2015 10:49 AM, Heikki Linnakangas wrote:
> On 07/26/2015 12:19 AM, Tom Lane wrote:
>> I've located another problem in the new improved ax_pthread.m4 script:
>> prairiedog is now concluding that it should use -pthread, which leads
>> to a whole bunch of build warnings along the lines of
>>
>> powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-pthread'
>>
>> Previously it concluded that it didn't need any special switch.
>>
>> ...
>
> Googling around, I found a ticket in the autoconf bug tracker for this:
> https://savannah.gnu.org/patch/?8186. The discussion died out in 2013,
> but it seems that the latest idea there was to change the order the
> flags are tested on Darwin, so that "none" is tested before "-pthread".
> That should fix the issue, and hopefully not create other problems on
> other Darwin variants. So I suggest that we do:
>
> @@ -160,7 +165,7 @@ case ${host_os} in
>            ;;
>
>            darwin*)
> -        ax_pthread_flags="-pthread $ax_pthread_flags"
> +        ax_pthread_flags="none -pthread $ax_pthread_flags"
>            ;;
>    esac
>
> It's sad that we have to hack this script again, I hoped we could use
> the upstream version as is. I'll comment on the upstream ticket, let's
> see if we can get the upstream version fixed too.

I commented on that autoconf bug tracker ticket, and Daniel Richard G
posted a new draft version there that fixes this problem. I pushed that
to master a few days ago, and the buildfarm results are now in. Seems to
have fixed the problem.


Andrew kindly let me run queries on the buildfarm database, and I was
able to extract the PTHREAD_CFLAGS chosen by the configure script, from
each buildfarm animal, with the three versions of the script that we've
had in the repository:

0 = Old hacked acx_pthread.m4 script, same as in 9.5 and below
1 = latest stable ax_pthread.m4 from upstream
2 = draft ax_pthread.m4, to be pushed upstream

I went through the results, and I believe the script is working the way
we want now. Attached is a trimmed result set, where I have removed all
the animals where there was no change in the PTHREAD_CFLAGS value chosen
between the three versions (configlogs-trimmed). I've also attached the
raw results and the query I used, for the sake of the archives
(configlogs-raw)


On some platforms, however, we are now getting duplicate -D options,
e.g. on dromedary:

> PTHREAD_CFLAGS='-D_REENTRANT  -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS'

That's harmless, but it would be nice to not clutter the cc command
line. It's happening because we are doing this in configure.in:

> # Some platforms use these, so just define them.  They can't hurt if they
> # are not supported.  For example, on Solaris -D_POSIX_PTHREAD_SEMANTICS
> # enables 5-arg getpwuid_r, among other things.
> PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"

I'm tempted to just remove -D_REENTRAND and -D_THREAD_SAFE, because
ax_pthread.m4 knows about those, and will add them on platforms where
they are needed. Any objections?

- Heikki


Вложения

В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix some planner issues with degenerate outer join clauses.
Следующее
От: Terry Scheingeld
Дата:
Сообщение: Taint mode in PL/Perl