Bug 9894 - Support for PI futexes wrongly marked as introduced in 2.6.18
: Support for PI futexes wrongly marked as introduced in 2.6.18
Status: NEW
Product: glibc
Classification: Unclassified
Component: libc
: unspecified
: P2 normal
: ---
Assigned To: Not yet assigned to anyone
:
:
:
:
  Show dependency treegraph
 
Reported: 2009-02-24 23:19 UTC by Aurelien Jarno
Modified: 2013-05-10 18:50 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
patch for main architecture (1.22 KB, patch)
2009-02-24 23:20 UTC, Aurelien Jarno
Details | Diff
patch for arm (532 bytes, patch)
2009-02-24 23:20 UTC, Aurelien Jarno
Details | Diff
patch for mips (474 bytes, patch)
2009-02-24 23:21 UTC, Aurelien Jarno
Details | Diff
patch for hppa (638 bytes, patch)
2009-02-24 23:21 UTC, Aurelien Jarno
Details | Diff
Updated patch for main architectures (2.23 KB, patch)
2009-02-27 15:08 UTC, Aurelien Jarno
Details | Diff
Updated patch for arm (882 bytes, patch)
2009-02-27 15:08 UTC, Aurelien Jarno
Details | Diff
Updated patch for hppa (828 bytes, patch)
2009-02-27 15:09 UTC, Aurelien Jarno
Details | Diff
Updated patch for mips (828 bytes, patch)
2009-02-27 15:09 UTC, Aurelien Jarno
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Aurelien Jarno 2009-02-24 23:19:48 UTC
While support for PI futexes has been added in 2.6.18, it depends on
futex_atomic_cmpxchg_inatomic() being implemented, which has been
implemented later (or not yet implemented) on some architectures.

Below is the kernel version where the support has been added for main
and ports glibc architectures;

- i386:    2.6.18
- ia64:    2.6.19
- powerpc: 2.6.18
- s390:    2.6.18
- sparc:   not implemented
- sparc64: 2.6.18
- sh:      2.6.23
- x86_64:  2.6.18

- alpha:   not implemented
- arm:     2.6.28
- cris:    not implemented
- hppa :   2.6.19
- m68k:    not implemented
- mips:    2.6.18

Patches to fix the problem are following soon
Comment 1 Aurelien Jarno 2009-02-24 23:20:26 UTC
Created attachment 3764 [details]
patch for main architecture
Comment 2 Aurelien Jarno 2009-02-24 23:20:54 UTC
Created attachment 3765 [details]
patch for arm
Comment 3 Aurelien Jarno 2009-02-24 23:21:13 UTC
Created attachment 3766 [details]
patch for mips
Comment 4 Aurelien Jarno 2009-02-24 23:21:34 UTC
Created attachment 3767 [details]
patch for hppa
Comment 5 Aurelien Jarno 2009-02-27 15:07:29 UTC
The same problem also exists with robust mutexes and is due to the same problem,
ie they are available when both get/set_robust_list syscalls have been added
*and* futex_atomic_cmpxchg_inatomic() is available. This give the following
availabilities for main
and ports glibc architectures:

- i386:    2.6.17
- ia64:    2.6.19
- powerpc: 2.6.17
- s390:    2.6.18
- sparc:   not implemented
- sparc64: 2.6.19
- sh:      2.6.23
- x86_64:  2.6.17

- alpha:   not implemented
- arm:     2.6.28
- cris:    not implemented
- hppa :   2.6.19
- m68k:    not implemented
- mips:    2.6.19

Update patches fixing the problem will follow.
Comment 6 Aurelien Jarno 2009-02-27 15:08:19 UTC
Created attachment 3777 [details]
Updated patch for main architectures
Comment 7 Aurelien Jarno 2009-02-27 15:08:47 UTC
Created attachment 3778 [details]
Updated patch for arm
Comment 8 Aurelien Jarno 2009-02-27 15:09:07 UTC
Created attachment 3779 [details]
Updated patch for hppa
Comment 9 Aurelien Jarno 2009-02-27 15:09:24 UTC
Created attachment 3780 [details]
Updated patch for mips
Comment 10 Joseph Myers 2009-04-15 20:47:00 UTC
The ARM and MIPS changes look OK; I haven't applied them because they
depend on the libc changes.  It might be useful to do a version of the ports
changes that works with present libc (so conditionally #undefing the macros
after including the libc kernel-features.h), which could be reverted and
replaced with the present patch versions after the libc changes go in.
Comment 11 Aurelien Jarno 2009-05-01 10:56:51 UTC
I fully agree that we can do a ports specific patch until the other patch is 
applied to libc. However it would be a lot easier to apply the libc patch 
first. 

What is the problem with the current libc patch? It is not specific to ports as 
it also concerns two main architectures from libc, that is sparc and sh.
Comment 12 Joseph Myers 2012-02-19 02:19:53 UTC
Could you update the patches for current sources (taking account of ia64 no
longer being included) and for any implementations for additional architectures
in the mean time?  (Patches for any additional ports architectures are
optional, but the libc patch needs updating.)
Comment 13 Joseph Myers 2012-08-03 14:11:51 UTC
Aurelien, ping regarding updating the patches for current sources and kernels. 
You mentioned that you were trying to review kernel-features.h generally - but
incremental patches that actually exist, updating things only for some macros
or some architectures, are better than ideal complete patches that don't exist
- try to send small pieces to libc-alpha (CC libc-ports where ports
kernel-features.h headers are updated as well) each of which fixes some
particular problem without making things worse in any case.
Comment 14 Andreas Jaeger 2013-05-10 18:50:13 UTC
Aurelien, could you finish these patches, please?