Thread: thread_test's sched_yield requires -lrt on solaris

thread_test's sched_yield requires -lrt on solaris

From
Oskari Saarenmaa
Date:
I configured the dingo and binturong Solaris 10 animals to build 9.3
some time ago but apparently they always failed the configure phase.
Turns out this is caused by thread_test's usage of sched_yield which is
in librt on Solaris but which is not pulled in by anything on 9.3 and
earlier on my box.

Apparently the other Solaris animal (castoroides) requires librt for
fdatasync, but that's not required on my system.  On 9.4 and master
librt is required for shm_open so the check doesn't fail there.

Attached a patch to check for sched_yield in configure, the patch only
applies against 9.0 - 9.3 which are using autoconf 2.63.  We should
probably check for sched_yield anyway on all branches even if it's not
strictly required on 9.4+ at the moment.

/ Oskari

Attachment

Re: thread_test's sched_yield requires -lrt on solaris

From
Robert Haas
Date:
On Fri, Jun 26, 2015 at 3:52 AM, Oskari Saarenmaa <os@ohmu.fi> wrote:
> I configured the dingo and binturong Solaris 10 animals to build 9.3
> some time ago but apparently they always failed the configure phase.
> Turns out this is caused by thread_test's usage of sched_yield which is
> in librt on Solaris but which is not pulled in by anything on 9.3 and
> earlier on my box.
>
> Apparently the other Solaris animal (castoroides) requires librt for
> fdatasync, but that's not required on my system.  On 9.4 and master
> librt is required for shm_open so the check doesn't fail there.
>
> Attached a patch to check for sched_yield in configure, the patch only
> applies against 9.0 - 9.3 which are using autoconf 2.63.  We should
> probably check for sched_yield anyway on all branches even if it's not
> strictly required on 9.4+ at the moment.

Thanks for working on support for this obscure platform; testing such
platforms helps to improve portability and reliability.

You might want to add your patch to the next CommitFest:

https://commitfest.postgresql.org/action/commitfest_view/open

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: thread_test's sched_yield requires -lrt on solaris

From
Alvaro Herrera
Date:
Oskari Saarenmaa wrote:
> I configured the dingo and binturong Solaris 10 animals to build 9.3
> some time ago but apparently they always failed the configure phase.
> Turns out this is caused by thread_test's usage of sched_yield which is
> in librt on Solaris but which is not pulled in by anything on 9.3 and
> earlier on my box.
> 
> Apparently the other Solaris animal (castoroides) requires librt for
> fdatasync, but that's not required on my system.  On 9.4 and master
> librt is required for shm_open so the check doesn't fail there.
> 
> Attached a patch to check for sched_yield in configure, the patch only
> applies against 9.0 - 9.3 which are using autoconf 2.63.  We should
> probably check for sched_yield anyway on all branches even if it's not
> strictly required on 9.4+ at the moment.

I'm going to apply this patch to all branches.  (I don't think it's so
cool to rely on librt being pulled in by unrelated functions.)

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services