Thread: thread_test's sched_yield requires -lrt on solaris
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
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
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