From: | Max Filippov <jcmvbkbc(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
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 01:51:55 |
Message-ID: | CAMo8BfKg=Nd9s3V68yxxBbEtfao1C+EEAQVvnPK7ZwcaPn5-vw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Tom,
On Fri, Mar 20, 2015 at 3:50 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> 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.
Well... That doesn't answer my question.
> 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.
Actually it *is* in the program being built here, because it's being
linked with libcrypto. The full command line produced by the first eval
is this:
xtensa-linux-gcc -o conftest -Wall -Wmissing-prototypes
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls
-mtext-section-literals -Os -pthread -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE conftest.c
-lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm
and if I drop irrelevant libraries from that command its stdout+stderr
will probably be empty.
But I was curious why this test is written *that* way.
--
Thanks.
-- Max
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2015-03-20 01:57:05 | Re: Lets delete src/test/performance |
Previous Message | Andrew Gierth | 2015-03-20 01:51:45 | Re: configure can't detect proper pthread flags |