diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/pthread_kill.c | 6 | ||||
-rw-r--r-- | sysdeps/posix/sysconf.c | 8 |
3 files changed, 16 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 5ca66feb90..fcaa26c98d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-02-17 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/posix/sysconf.c (__sysconf): Test for LOGIN_NAME_MAX and + TTY_NAME_MAX and not the _POSIX_* minimal value macros. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX + and LOGIN_NAME_MAX. + 2003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca> Franz Sirl <Franz.Sirl-kernel@lauterbach.com> diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_kill.c b/nptl/sysdeps/unix/sysv/linux/pthread_kill.c index 0fce02a401..e1c79e79b3 100644 --- a/nptl/sysdeps/unix/sysv/linux/pthread_kill.c +++ b/nptl/sysdeps/unix/sysv/linux/pthread_kill.c @@ -34,7 +34,11 @@ __pthread_kill (threadid, signo) /* We have a special syscall to do the work. */ INTERNAL_SYSCALL_DECL (err); - int val = INTERNAL_SYSCALL (tkill, err, 2, pd->tid, signo); + /* The kernel returns EINVAL for PIDs <= 0. This is not nice since + the user would expect ESRCH. Correct it here. */ + int val = (pd->tid > 0 + ? INTERNAL_SYSCALL (tkill, err, 2, pd->tid, signo) + : ESRCH); return (INTERNAL_SYSCALL_ERROR_P (val, err) ? INTERNAL_SYSCALL_ERRNO (val, err) : 0); diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c index 1700ed0b87..7ad8ac7891 100644 --- a/sysdeps/posix/sysconf.c +++ b/sysdeps/posix/sysconf.c @@ -515,15 +515,15 @@ __sysconf (name) return NSS_BUFLEN_PASSWD; case _SC_LOGIN_NAME_MAX: -#ifdef _POSIX_LOGIN_NAME_MAX - return _POSIX_LOGIN_NAME_MAX; +#ifdef LOGIN_NAME_MAX + return LOGIN_NAME_MAX; #else return -1; #endif case _SC_TTY_NAME_MAX: -#ifdef _POSIX_TTY_NAME_MAX - return _POSIX_TTY_NAME_MAX; +#ifdef TTY_NAME_MAX + return TTY_NAME_MAX; #else return -1; #endif |