Re: configure can't detect proper pthread flags

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Max Filippov <jcmvbkbc(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org, Peter Seiderer <ps(dot)report(at)gmx(dot)net>
Subject: Re: configure can't detect proper pthread flags
Date: 2015-03-20 00:50:10
Message-ID: 32766.1426812610@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Max Filippov <jcmvbkbc(at)gmail(dot)com> writes:
> when PostgreSQL is cross-compiled in the Buildroot with uClibc toolchain
> it may not correctly detect compiler/linker flags for threading. [1]
> The reason is that config/acx_pthread.m4:146 uses compiler and linker
> stdout and stderr to make decision if acx_pthread_ok should be yes or no:

> if test "`(eval $ac_link 2>&1 1>&5)`" = "" && test "`(eval
> $ac_compile 2>&1 1>&5)`" = ""; then

> and the toolchain emits the following warning at linking step:

> libcrypto.so: warning: gethostbyname is obsolescent, use
> getnameinfo() instead.

> git log doesn't tell much why it is done that way. Does anybody know?

The short answer is that the linker you're using is written by pedantic
idiots. Notice that the gethostbyname call it's complaining about is
somewhere inside libcrypto; it's *not* in Postgres, much less the test
program being built here. As such, we have no options whatever for
suppressing the complaint, which means that the complaint is being
delivered inappropriately, and it shouldn't be there. The linker is a
silly choice for a place to impose this sort of value judgment anyway;
it has absolutely no way to know whether the use of gethostbyname in
a particular program is unsafe.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2015-03-20 00:50:13 Re: "cancelling statement due to user request error" occurs but the transaction has committed.
Previous Message Tom Lane 2015-03-20 00:43:52 Re: "cancelling statement due to user request error" occurs but the transaction has committed.