pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Firefox 54 doesn't build...PTHREAD_PRIO_INHERIT missing



Hi,

On an amd64 7.1 system trying to build Firefox 54 dies with:

In file included from /usr/pkgsrc/www/firefox/work.x86_64/build/ipc/chromium/Unified_cpp_ipc_chromium0.cpp:74:0:
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/ipc/chromium/src/base/lock_impl_posix.cc: In constructor 'base::internal::LockImpl::LockImpl()':
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/ipc/chromium/src/base/lock_impl_posix.cc:35:46: error: 'PTHREAD_PRIO_INHERIT' was not declared in this scope
rv = pthread_mutexattr_setprotocol(&mta, PTHREAD_PRIO_INHERIT);
^
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/ipc/chromium/src/base/lock_impl_posix.cc:35:66: error: 'pthread_mutexattr_setprotocol' was not declared in this scope
rv = pthread_mutexattr_setprotocol(&mta, PTHREAD_PRIO_INHERIT);
^
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/config/rules.mk:1016: recipe for target 'Unified_cpp_ipc_chromium0.o' failed
gmake[3]: *** [Unified_cpp_ipc_chromium0.o] Error 1
gmake[3]: Leaving directory '/usr/pkgsrc/www/firefox/work.x86_64/build/ipc/chromium'
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/config/recurse.mk:71: recipe for target 'ipc/chromium/target' failed
gmake[2]: *** [ipc/chromium/target] Error 2
gmake[2]: Leaving directory '/usr/pkgsrc/www/firefox/work.x86_64/build'
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/config/recurse.mk:32: recipe for target 'compile' failed
gmake[1]: *** [compile] Error 2
gmake[1]: Leaving directory '/usr/pkgsrc/www/firefox/work.x86_64/build'
/usr/pkgsrc/www/firefox/work.x86_64/firefox-54.0/config/rules.mk:525: recipe for target 'all' failed
gmake: *** [all] Error 2
*** Error code 2

Stop.
make[1]: stopped in /usr/pkgsrc/www/firefox
*** Error code 1

So it looks like the version of pthreads in 7.1 doesn’t define PTHREAD_PRIO_INHERIT.  I was able to work around this, and get Firefox to build successfully, by changing ‘lock_impl_posix.cc’ from:

#if defined(OS_NACL) || defined(OS_ANDROID)
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 0
#else
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 1
#endif

to:

#if defined(OS_NACL) || defined(OS_ANDROID) || defined(OS_NETBSD)
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 0
#else
#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 1
#endif

This worked and Firefox built and (so far) has been running without any problems but I’m wondering if there’s a better way to fix this.  Or does pthreads define PTHREAD_PRIO_INHERIT in 8.0 ?

thanks,

Steve


Home | Main Index | Thread Index | Old Index