From 755f55b0dbb0ffadc0acf020123c727dcf558354 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 19 Dec 1995 10:00:22 +0000 Subject: [PATCH] Mon Dec 18 13:40:37 1995 Roland McGrath * stdio/fread.c: Don't increment __offset when it's -1. * elf/rtld.c (dl_main): Prepend tab to "statically linked". Exit 0 in that case. * misc/err.c (vwarnx, vwarn): Fix major brainos. * sysdeps/mach/hurd/dl-sysdep.c (mmap): Fix setting of inheritance. --- ChangeLog | 12 ++++++++++++ elf/rtld.c | 28 ++++++++++++---------------- misc/err.c | 22 +++++++++++++++++----- stdio/fread.c | 9 ++++++--- sysdeps/mach/hurd/dl-sysdep.c | 2 +- 5 files changed, 48 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1a7e411b5b..480136aea2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Mon Dec 18 13:40:37 1995 Roland McGrath + + * stdio/fread.c: Don't increment __offset when it's -1. + + * elf/rtld.c (dl_main): Prepend tab to "statically linked". Exit + 0 in that case. + + * misc/err.c (vwarnx, vwarn): Fix major brainos. + + * sysdeps/mach/hurd/dl-sysdep.c (mmap): Fix setting of + inheritance. + Sun Dec 17 15:56:35 1995 Miles Bader * misc/getpass.c (getpass): Don't barf if getline returns a null BUF. diff --git a/elf/rtld.c b/elf/rtld.c index f91ffc77ef..070febc59f 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -301,22 +301,18 @@ of this helper program; chances are you did not intend to run this program.\n", after relocation. */ if (! _dl_loaded->l_info[DT_NEEDED]) - { - _dl_sysdep_message (_dl_loaded->l_name, ": statically linked\n", - NULL); - _exit (1); - } - - for (l = _dl_loaded->l_next; l; l = l->l_next) - { - char buf[20], *bp; - buf[sizeof buf - 1] = '\0'; - bp = _itoa (l->l_addr, &buf[sizeof buf - 1], 16, 0); - while (&buf[sizeof buf - 1] - bp < sizeof l->l_addr * 2) - *--bp = '0'; - _dl_sysdep_message ("\t", l->l_libname, " => ", l->l_name, - " (0x", bp, ")\n", NULL); - } + _dl_sysdep_message ("\t", "statically linked\n", NULL); + else + for (l = _dl_loaded->l_next; l; l = l->l_next) + { + char buf[20], *bp; + buf[sizeof buf - 1] = '\0'; + bp = _itoa (l->l_addr, &buf[sizeof buf - 1], 16, 0); + while (&buf[sizeof buf - 1] - bp < sizeof l->l_addr * 2) + *--bp = '0'; + _dl_sysdep_message ("\t", l->l_libname, " => ", l->l_name, + " (0x", bp, ")\n", NULL); + } _exit (0); } diff --git a/misc/err.c b/misc/err.c index 82719a8756..3ad7bf360f 100644 --- a/misc/err.c +++ b/misc/err.c @@ -20,6 +20,8 @@ Cambridge, MA 02139, USA. */ #include #include #include +#include +#include #include extern char *__progname; @@ -33,18 +35,28 @@ extern char *__progname; } void -vwarn (const char *format, __gnuc_va_list ap) +vwarnx (const char *format, __gnuc_va_list ap) { - fprintf (stderr, format, ap); + if (__progname) + fprintf (stderr, "%s: ", __progname); + if (format) + vfprintf (stderr, format, ap); + putc ('\n', stderr); } void -vwarnx (const char *format, __gnuc_va_list ap) +vwarn (const char *format, __gnuc_va_list ap) { + int error = errno; + if (__progname) fprintf (stderr, "%s: ", __progname); - fprintf (stderr, format, ap); - putc ('\n', stderr); + if (format) + { + vfprintf (stderr, format, ap); + fputs (": ", stderr); + } + fprintf (stderr, "%s\n", strerror (error)); } diff --git a/stdio/fread.c b/stdio/fread.c index 347e8446e1..d2766f6616 100644 --- a/stdio/fread.c +++ b/stdio/fread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1995 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 @@ -95,8 +95,11 @@ DEFUN(fread, (p, size, nmemb, stream), if (count > 0) { to_read -= count; - stream->__offset += count; - stream->__target += count; + if (stream->__offset != -1) + { + stream->__offset += count; + stream->__target += count; + } ptr += count; } else if (count == 0) diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index a2ffcd2e8c..2d2d360cf2 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -517,7 +517,7 @@ mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) (mach_port_t) fd, (vm_offset_t) offset, flags & (MAP_COPY|MAP_PRIVATE), vmprot, VM_PROT_ALL, - (flags & MAP_INHERIT) ? VM_INHERIT_COPY : VM_INHERIT_NONE); + (flags & MAP_SHARED) ? VM_INHERIT_SHARE : VM_INHERIT_COPY); return err ? (caddr_t) __hurd_fail (err) : (caddr_t) mapaddr; } -- 2.11.4.GIT