[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!tag open_issue_glibc open_issue_libpthread]] libpthread: glibc 44e2ad5ab8c21dbfed3e384ba2ed31d7a8fc4744 998e5fc14595229101561d76282036839e5b66ab -- The robust mutex functions are in POSIX 2008. --- IRC, #hurd, unknown date. neal: bad news: you remember the PTHREAD_RECURSIVE_MUTEX_INITIALIZER that points to a global __pthread_recursive_mutexattr? that doesn't work because some libraries like libstdc++ do not link against libpthread, while still using pthread_mutex_lock/unlock (counting on them being provided by either libc or libpthread-stubs) sthibaul-guest * r626 pkg-hurd/hurd/trunk/debian/ (changelog patches/series): * debian/patches/libpthread_rwlock_initializer.patch: Disable patch for now: our initializer does not work when the application does not link against libpthread. sthibaul-guest * r629 pkg-hurd/hurd/trunk/debian/ (changelog patches/series): do not disable adding PTHREAD_RWLOCK_INITIALIZER, that's not the one that poses problems sthibaul-guest * r630 pkg-hurd/hurd/trunk/debian/ (3 files in 2 dirs): * debian/patches/libpthread_no_recursive_mutex_initializer.patch: New patch to drop undefined references to __pthread_recursive_mutexattr. I'm thinking about how to fix the PTHREAD_RECURSIVE_MUTEX_INITIALIZER instead of a pointer to a static attribute variable, which posed problem could we perhaps consider that page 0 is never mapped and thus not only pointer 0 but also 1 2, etc. are invalid I think that is a good solution and use them as special values alternatively, we could assume that -PAGESIZE is never valid that makes us test it in all pthread_mutex_* functions, but it's not so bad I'm not sure which is better why isn't it? because the kernel is mapped there normally the kernel could be elsewhere true in a 64bit adressing space for instance I think your solution is a good one ok sthibault * r633 pkg-hurd/hurd/trunk/debian/ (3 files in 2 dirs): * debian/patches/libpthread_recursive_mutex_initializer.patch: New patch to fix the recursive mutex initializers usage in libraries not linking against libpthread.