From 8c35c0da02e3c7a835263e0442ff0fa3d9da79c5 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 12 Jul 2001 06:32:02 +0000 Subject: Update. 2001-07-01 Andreas Jaeger * sysdeps/unix/sysv/linux/dl-sysdep.c (frob_brk): Remove duplicate sbrk. Closes PR libc/2312. 2001-07-01 Andreas Jaeger * sysdeps/generic/segfault.c (install_handler): Handle case that the output file does not exists. Closes PR libc/2345. 2001-07-11 Ulrich Drepper * intl/locale.alias: Use he language code for hebrew, not il [PR libc/2382]. 2001-07-11 Jakub Jelinek * iconv/gconv_int.h: Fix comment typo. * hurd/hurdsig.c (_hurdsig_init): Remove a useless line of code. backwards conditional in test for x == 1.0. --- sysdeps/generic/segfault.c | 9 +++++++-- sysdeps/unix/sysv/linux/dl-sysdep.c | 11 +---------- 2 files changed, 8 insertions(+), 12 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/generic/segfault.c b/sysdeps/generic/segfault.c index 8a8ee1d1a2..7e364f025f 100644 --- a/sysdeps/generic/segfault.c +++ b/sysdeps/generic/segfault.c @@ -237,6 +237,11 @@ install_handler (void) /* Preserve the output file name if there is any given. */ name = getenv ("SEGFAULT_OUTPUT_NAME"); - if (name != NULL && name[0] != '\0' && access (name, R_OK | W_OK) == 0) - fname = __strdup (name); + if (name != NULL && name[0] != '\0') + { + int ret = access (name, R_OK | W_OK); + + if (ret == 0 || (ret == -1 && errno == ENOENT)) + fname = __strdup (name); + } } diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c index 07338573dc..b58f4c13e2 100644 --- a/sysdeps/unix/sysv/linux/dl-sysdep.c +++ b/sysdeps/unix/sysv/linux/dl-sysdep.c @@ -1,5 +1,5 @@ /* Dynamic linker system dependencies for Linux. - Copyright (C) 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1997, 2001 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 @@ -27,16 +27,7 @@ static inline void frob_brk (void) { - extern size_t _dl_pagesize; - extern void _end; __brk (0); /* Initialize the break. */ - if (__sbrk (0) == &_end) - /* The dynamic linker was run as a program, and so the initial break - starts just after our bss, at &_end. The malloc in dl-minimal.c - will consume the rest of this page, so tell the kernel to move the - break up that far. When the user program examines its break, it - will see this new value and not clobber our data. */ - __sbrk (_dl_pagesize - ((&_end - (void *) 0) & _dl_pagesize)); } #include -- cgit 1.4.1