summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/signal/allocrtsig.c2
-rw-r--r--libc/stdlib/malloc-standard/malloc.h2
-rw-r--r--libc/stdlib/malloc/malloc.h4
-rw-r--r--libc/sysdeps/linux/common/bits/uClibc_local_lim.h2
-rw-r--r--libc/sysdeps/linux/common/not-cancel.h17
-rw-r--r--libc/sysdeps/linux/common/pause.c2
-rw-r--r--libc/sysdeps/linux/common/pread_write.c2
-rw-r--r--libc/unistd/confstr.c5
8 files changed, 28 insertions, 8 deletions
diff --git a/libc/signal/allocrtsig.c b/libc/signal/allocrtsig.c
index d93966a46..974418761 100644
--- a/libc/signal/allocrtsig.c
+++ b/libc/signal/allocrtsig.c
@@ -32,7 +32,7 @@ static int current_rtmax = -1;
#else
# ifdef __UCLIBC_HAS_THREADS_NATIVE__
static int current_rtmin = __SIGRTMIN + 2;
-# elif defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_HAS_LINUXTHREADS__
+# elif defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
/* psm: might be good for LT old as well, do not want to break it for now */
/* Sanity check */
# if !defined __SIGRTMIN || (__SIGRTMAX - __SIGRTMIN) < 3
diff --git a/libc/stdlib/malloc-standard/malloc.h b/libc/stdlib/malloc-standard/malloc.h
index f3e2d2a2a..1a4cc5a62 100644
--- a/libc/stdlib/malloc-standard/malloc.h
+++ b/libc/stdlib/malloc-standard/malloc.h
@@ -27,7 +27,7 @@
__UCLIBC_MUTEX_EXTERN(__malloc_lock)
-#if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_HAS_LINUXTHREADS__
+#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
attribute_hidden
#endif
;
diff --git a/libc/stdlib/malloc/malloc.h b/libc/stdlib/malloc/malloc.h
index 75262593f..53683c479 100644
--- a/libc/stdlib/malloc/malloc.h
+++ b/libc/stdlib/malloc/malloc.h
@@ -199,13 +199,13 @@ extern void __malloc_debug_printf (int indent, const char *fmt, ...) attribute_h
extern struct heap_free_area *__malloc_heap attribute_hidden;
#ifdef __UCLIBC_HAS_THREADS__
__UCLIBC_MUTEX_EXTERN(__malloc_heap_lock)
-# ifndef __UCLIBC_HAS_LINUXTHREADS__
+# ifndef __LINUXTHREADS_OLD__
attribute_hidden
# endif
;
# ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
__UCLIBC_MUTEX_EXTERN(__malloc_mmb_heap_lock)
-# ifndef __UCLIBC_HAS_LINUXTHREADS__
+# ifndef __LINUXTHREADS_OLD__
attribute_hidden
# endif
;
diff --git a/libc/sysdeps/linux/common/bits/uClibc_local_lim.h b/libc/sysdeps/linux/common/bits/uClibc_local_lim.h
index ce166a15b..0727ebf55 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_local_lim.h
+++ b/libc/sysdeps/linux/common/bits/uClibc_local_lim.h
@@ -20,7 +20,7 @@
/* glibc uses 16384 */
# define PTHREAD_THREADS_MAX 1024
# define TIMER_MAX 256
-# ifdef __UCLIBC_HAS_LINUXTHREADS__
+# ifdef __LINUXTHREADS_OLD__
# undef SEM_VALUE_MAX
# define SEM_VALUE_MAX ((int) ((~0u) >> 1))
# endif
diff --git a/libc/sysdeps/linux/common/not-cancel.h b/libc/sysdeps/linux/common/not-cancel.h
index ac32366a6..acf8e39e8 100644
--- a/libc/sysdeps/linux/common/not-cancel.h
+++ b/libc/sysdeps/linux/common/not-cancel.h
@@ -70,6 +70,12 @@ extern int __openat64_nocancel (int fd, const char *fname, int oflag,
#define read_not_cancel(fd, buf, n) \
INLINE_SYSCALL (read, 3, (fd), (buf), (n))
+#ifdef __LINUXTHREADS_NEW__
+/* Uncancelable write. */
+#define write_not_cancel(fd, buf, n) \
+ INLINE_SYSCALL (write, 3, (fd), (buf), (n))
+#endif
+
#if 0
/* Uncancelable writev. */
#define writev_not_cancel_no_status(fd, iov, n) \
@@ -81,6 +87,17 @@ extern int __openat64_nocancel (int fd, const char *fname, int oflag,
__fcntl_nocancel (fd, cmd, val)
#endif
+#ifdef __LINUXTHREADS_NEW__
+/* Uncancelable waitpid. */
+#if 0 /*def __NR_waitpid*/
+# define waitpid_not_cancel(pid, stat_loc, options) \
+ INLINE_SYSCALL (waitpid, 3, pid, stat_loc, options)
+#else
+# define waitpid_not_cancel(pid, stat_loc, options) \
+ INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
+#endif
+#endif
+
/* Uncancelable pause. */
#ifdef __NR_pause
# define pause_not_cancel() \
diff --git a/libc/sysdeps/linux/common/pause.c b/libc/sysdeps/linux/common/pause.c
index 95d064ab5..c35ecd5d5 100644
--- a/libc/sysdeps/linux/common/pause.c
+++ b/libc/sysdeps/linux/common/pause.c
@@ -22,7 +22,7 @@ CANCELLABLE_SYSCALL(int, pause, (void), ())
# include <signal.h>
int
-# ifdef __UCLIBC_HAS_LINUXTHREADS__
+# ifdef __LINUXTHREADS_OLD__
weak_function
# endif
__NC(pause)(void)
diff --git a/libc/sysdeps/linux/common/pread_write.c b/libc/sysdeps/linux/common/pread_write.c
index d0abd90e4..4f96f681d 100644
--- a/libc/sysdeps/linux/common/pread_write.c
+++ b/libc/sysdeps/linux/common/pread_write.c
@@ -102,7 +102,7 @@ static ssize_t __NC(pwrite64)(int fd, const void *buf, size_t count, off64_t off
CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, off64_t offset),
(fd, buf, count, offset))
# else
-# ifdef __UCLIBC_HAS_LINUXTHREADS__
+# ifdef __LINUXTHREADS_OLD__
weak_alias(pread,pread64)
weak_alias(pwrite,pwrite64)
lt_strong_alias(pread64)
diff --git a/libc/unistd/confstr.c b/libc/unistd/confstr.c
index 4d4c217e5..373644265 100644
--- a/libc/unistd/confstr.c
+++ b/libc/unistd/confstr.c
@@ -43,9 +43,12 @@ size_t confstr (int name, char *buf, size_t len)
break;
#ifdef __UCLIBC_HAS_THREADS__
case _CS_GNU_LIBPTHREAD_VERSION:
-# if defined __UCLIBC_HAS_LINUXTHREADS__
+# if defined __LINUXTHREADS_OLD__
string = "linuxthreads-0.01";
string_len = sizeof("linuxthreads-x.xx");
+# elif defined __LINUXTHREADS_NEW__
+ string = "linuxthreads-0.10";
+ string_len = sizeof("linuxthreads-x.xx");
# elif defined __UCLIBC_HAS_THREADS_NATIVE__
# define __NPTL_VERSION ("NPTL " \
__stringify(__UCLIBC_MAJOR__) "." \