Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* version.h (VERSION): Define to 6.
	* include/features.h (__GLIBC_MINOR__): Likewise.
  • Loading branch information
Ulrich Drepper committed May 15, 2007
1 parent 83d8791 commit 2c1d617
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 49 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
@@ -1,5 +1,8 @@
2007-05-14 Ulrich Drepper <drepper@redhat.com>

* version.h (VERSION): Define to 6.
* include/features.h (__GLIBC_MINOR__): Likewise.

* malloc/malloc.c: Use all small bin slots on 64-bit archs.

* malloc/malloc.c (largebin_index): Really have 32 buckets with 64
Expand Down
4 changes: 2 additions & 2 deletions README
@@ -1,4 +1,4 @@
This directory contains the version 2.5 release of the GNU C Library.
This directory contains the version 2.6 release of the GNU C Library.

The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system. It provides the
Expand Down Expand Up @@ -52,7 +52,7 @@ The GNU C Library supports these configurations for using Linux kernels:

The code for other CPU configurations supported by volunteers outside of
the core glibc maintenance effort is contained in the separate `ports'
add-on. You can find glibc-ports-2.5 distributed separately in the
add-on. You can find glibc-ports-2.6 distributed separately in the
same place where you got the main glibc distribution files.
Currently these configurations are known to work using the `ports' add-on:

Expand Down
5 changes: 2 additions & 3 deletions include/features.h
@@ -1,5 +1,4 @@
/* Copyright (C) 1991,1992,1993,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006
Free Software Foundation, Inc.
/* Copyright (C) 1991,1992,1993,1995-2006,2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand Down Expand Up @@ -304,7 +303,7 @@
/* Major and minor version number of the GNU C library package. Use
these macros to test for features in specific releases. */
#define __GLIBC__ 2
#define __GLIBC_MINOR__ 5
#define __GLIBC_MINOR__ 6

#define __GLIBC_PREREQ(maj, min) \
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
Expand Down
7 changes: 0 additions & 7 deletions nptl/ChangeLog
@@ -1,12 +1,5 @@
2007-05-14 Ulrich Drepper <drepper@redhat.com>

* sysdeps/unix/sysv/linux/sem_post.c: Only wake threads if old
value of semaphore was zero.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sem_post.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.

* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
extra cancellation test.
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
Expand Down
15 changes: 15 additions & 0 deletions nptl/TODO
Expand Up @@ -14,3 +14,18 @@ syscall needed.

- test with threaded process terminating and semadj (?) being applied
only after all threads are gone



- semaphore changes:

- sem_post should only wake one thread and only when the state of
the semaphore changed from 0 to 1

this also requires that sem_wait and sem_timedwait don't drop the
post if they get canceled.

- possibly add counter field. This requires reviving the
differences between old and new semaphose funtions. The old ones
stay as they are now. The new once can use an additional field
wich is the counter for the number of waiters
7 changes: 2 additions & 5 deletions nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S
@@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Expand Down Expand Up @@ -44,12 +44,9 @@ __new_sem_post:
LOCK
xaddl %edx, (%ebx)

testl %edx, %edx
jne 2f

movl $SYS_futex, %eax
movl $FUTEX_WAKE, %ecx
movl $1, %edx
addl $1, %edx
ENTER_KERNEL

testl %eax, %eax
Expand Down
14 changes: 6 additions & 8 deletions nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
@@ -1,5 +1,5 @@
/* sem_post -- post to a POSIX semaphore. Powerpc version.
Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
Expand Down Expand Up @@ -32,14 +32,12 @@ __new_sem_post (sem_t *sem)
int *futex = (int *) sem;

__asm __volatile (__lll_rel_instr ::: "memory");
if (atomic_increment_val (futex) == 1)
int nr = atomic_increment_val (futex);
int err = lll_futex_wake (futex, nr);
if (__builtin_expect (err, 0) < 0)
{
int err = lll_futex_wake (futex, 1);
if (__builtin_expect (err, 0) < 0)
{
__set_errno (-err);
return -1;
}
__set_errno (-err);
return -1;
}
return 0;
}
Expand Down
14 changes: 6 additions & 8 deletions nptl/sysdeps/unix/sysv/linux/sem_post.c
@@ -1,5 +1,5 @@
/* sem_post -- post to a POSIX semaphore. Generic futex-using version.
Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
Expand Down Expand Up @@ -31,14 +31,12 @@ __new_sem_post (sem_t *sem)
{
int *futex = (int *) sem;

if (atomic_increment_val (futex) == 1)
int nr = atomic_increment_val (futex);
int err = lll_futex_wake (futex, nr);
if (__builtin_expect (err, 0) < 0)
{
int err = lll_futex_wake (futex, 1);
if (__builtin_expect (err, 0) < 0)
{
__set_errno (-err);
return -1;
}
__set_errno (-err);
return -1;
}
return 0;
}
Expand Down
13 changes: 5 additions & 8 deletions nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
@@ -1,5 +1,5 @@
/* sem_post -- post to a POSIX semaphore. SPARC version.
Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
Expand Down Expand Up @@ -39,14 +39,11 @@ __new_sem_post (sem_t *sem)
nr = ++*futex;
__sparc32_atomic_do_unlock24 (futex + 1);
}
if (nr == 1)
int err = lll_futex_wake (futex, nr);
if (__builtin_expect (err, 0) < 0)
{
int err = lll_futex_wake (futex, 1);
if (__builtin_expect (err, 0) < 0)
{
__set_errno (-err);
return -1;
}
__set_errno (-err);
return -1;
}
return 0;
}
Expand Down
9 changes: 3 additions & 6 deletions nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S
@@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Expand Down Expand Up @@ -41,18 +41,15 @@ sem_post:
LOCK
xaddl %edx, (%rdi)

testl %edx, %edx
jne 2f

movl $SYS_futex, %eax
movl $FUTEX_WAKE, %esi
movl $1, %edx
incl %edx
syscall

testq %rax, %rax
js 1f

2: xorl %eax, %eax
xorl %eax, %eax
retq

1:
Expand Down
4 changes: 2 additions & 2 deletions version.h
@@ -1,4 +1,4 @@
/* This file just defines the current version number of libc. */

#define RELEASE "development"
#define VERSION "2.5.90"
#define RELEASE "stable"
#define VERSION "2.6"

0 comments on commit 2c1d617

Please sign in to comment.