aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--localedata/ChangeLog3
-rw-r--r--localedata/locales/ug_CN11
-rw-r--r--nptl/ChangeLog8
-rw-r--r--nptl/Makefile1
-rw-r--r--nptl/allocatestack.c7
-rw-r--r--nptl/tst-basic7.c56
-rw-r--r--sysdeps/x86_64/memset.S1
8 files changed, 84 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 17178716f2..ed269eeaf2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-11-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/memset.S: Add sfence after movnti.
+
2007-11-07 Ulrich Drepper <drepper@redhat.com>
[BZ #5277]
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index f7c6c08dc3..9a6722bf55 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,5 +1,8 @@
2007-11-07 Ulrich Drepper <drepper@redhat.com>
+ [BZ #5238]
+ * locales/ug_CN: Fix typo in collating symbol definition.
+
[BZ #5237]
* locales/lo_LA: Fix typos in collation symbols.
diff --git a/localedata/locales/ug_CN b/localedata/locales/ug_CN
index c4526416f9..3732d7bdc1 100644
--- a/localedata/locales/ug_CN
+++ b/localedata/locales/ug_CN
@@ -2,7 +2,7 @@ escape_char /
comment_char %
%
% Uyghur language locale for China
-% Source:
+% Source:
% Contact: Pablo Saratxaga
% Email: pablo@mandriva.com
% Language: ug
@@ -56,8 +56,8 @@ LC_COLLATE
% U+0224, U+0225 are also similar to ztail and are sorted the same.
%
% new arabic writting uses some extra letters too.
-% all vowels are noted, and in beginning of the word there is a
-% "yeh with hamza" (U+0626) in the front; should it be ignored
+% all vowels are noted, and in beginning of the word there is a
+% "yeh with hamza" (U+0626) in the front; should it be ignored
% in sorting?
%
% arabic old latin turkic (from azeri, which has same phonemes)
@@ -107,7 +107,7 @@ collating-symbol <htail>
collating-symbol <ktail>
collating-symbol <ztail>
collating-symbol <obar>
-collating-symbol <udiaresis>
+collating-symbol <udiaeresis>
collating-element <h,> from "<U0068><U0321>"
collating-element <H,> from "<U0048><U0321>"
@@ -238,7 +238,7 @@ reorder-after <U0648>
<U06D0> <ar_e>;<BAS>;<MIN>;IGNORE
<U06CC> <ar_i>;<BAS>;<MIN>;IGNORE
<U064A> <ar_y>;<BAS>;<MIN>;IGNORE
-
+
reorder-end
END LC_COLLATE
@@ -330,4 +330,3 @@ LC_ADDRESS
% FIXME
copy "en_DK"
END LC_ADDRESS
-
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index c92e6abf45..bc4d43ce5b 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-07 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #5245]
+ * allocatestack.c (allocate_stack): Change ENOMEM error in case
+ mmap failed to EAGAIN.
+ * Makefile (tests): Add tst-basic7.
+ * tst-basic7.c: New file.
+
2007-11-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
diff --git a/nptl/Makefile b/nptl/Makefile
index f239846fb7..00cf40d695 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -222,6 +222,7 @@ tests = tst-typesizes \
tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
tst-align tst-align2 tst-align3 \
tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
+ tst-basic7 \
tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
tst-raise1 \
tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 \
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
index c894e96a28..f75599c668 100644
--- a/nptl/allocatestack.c
+++ b/nptl/allocatestack.c
@@ -462,7 +462,12 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
mem = ARCH_RETRY_MMAP (size);
if (__builtin_expect (mem == MAP_FAILED, 0))
#endif
- return errno;
+ {
+ if (errno == ENOMEM)
+ errno = EAGAIN;
+
+ return errno;
+ }
}
/* SIZE is guaranteed to be greater than zero.
diff --git a/nptl/tst-basic7.c b/nptl/tst-basic7.c
new file mode 100644
index 0000000000..da461e43df
--- /dev/null
+++ b/nptl/tst-basic7.c
@@ -0,0 +1,56 @@
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/resource.h>
+
+static void
+use_up_memory (void)
+{
+ struct rlimit rl;
+ getrlimit (RLIMIT_AS, &rl);
+ rl.rlim_cur = 10 * 1024 * 1024;
+ setrlimit (RLIMIT_AS, &rl);
+
+ char *c;
+ int PAGESIZE = getpagesize ();
+ while (1)
+ {
+ c = mmap (NULL, PAGESIZE, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
+ if (c == MAP_FAILED)
+ break;
+ }
+}
+
+static void *
+child (void *arg)
+{
+ sleep (1);
+ return arg;
+}
+
+static int
+do_test (void)
+{
+ int err;
+ pthread_t tid;
+
+ use_up_memory ();
+
+ err = pthread_create (&tid, NULL, child, NULL);
+ if (err != 0)
+ {
+ printf ("pthread_create returns %d: %s\n", err,
+ err == EAGAIN ? "OK" : "FAIL");
+ return err != EAGAIN;
+ }
+
+ /* We did not fail to allocate memory despite the preparation. Oh well. */
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/sysdeps/x86_64/memset.S b/sysdeps/x86_64/memset.S
index bf2ef005b4..939240600d 100644
--- a/sysdeps/x86_64/memset.S
+++ b/sysdeps/x86_64/memset.S
@@ -127,6 +127,7 @@ L(memset_entry):
add $0x40,%rcx
dec %rax
jne 11b
+ sfence
jmp 4b
END (memset)