From 95878586ec7611791f4001a4ee17abf943fae3c1 Mon Sep 17 00:00:00 2001 From: "https://me.yahoo.com/a/g3Ccalpj0NhN566pHbUl6i9QF0QEkrhlfPM-#b1c14" Date: Mon, 16 Feb 2015 20:08:03 +0100 Subject: rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn --- .../glibc_libpthread_robust_mutexes.mdwn | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 service_solahart_jakarta_selatan__082122541663/glibc_libpthread_robust_mutexes.mdwn (limited to 'service_solahart_jakarta_selatan__082122541663/glibc_libpthread_robust_mutexes.mdwn') diff --git a/service_solahart_jakarta_selatan__082122541663/glibc_libpthread_robust_mutexes.mdwn b/service_solahart_jakarta_selatan__082122541663/glibc_libpthread_robust_mutexes.mdwn new file mode 100644 index 00000000..a92c984d --- /dev/null +++ b/service_solahart_jakarta_selatan__082122541663/glibc_libpthread_robust_mutexes.mdwn @@ -0,0 +1,54 @@ +[[!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. -- cgit v1.2.3