From c7fd2f4783d87f29f89709e11dc613b0cb04f0dc Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 23 Jul 1996 22:18:45 +0000 Subject: Tue Jul 23 18:13:37 1996 Roland McGrath * sysdeps/mach/hurd/Makefile (rpcuserlibs): New variable. ($(common-objpfx)libc.so): Move deps into that, use it. [$(subdir) = elf] ($(objpfx)librtld.so): Depend on $(rpcuserlibs:.so=_pic.a). * elf/Makefile ($(objpfx)librtld.so): Just depend on libc_pic.a; don't use $(LDLIBS-c.so). Thu Jul 18 21:41:25 1996 Andreas Schwab * sysdeps/generic/stpncpy.c: Fix semantics to make `stpncpy (d, s, n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'. --- ChangeLog | 14 ++++++++++++++ elf/Makefile | 4 +--- sysdeps/generic/stpncpy.c | 28 ++++++++++++++-------------- sysdeps/mach/hurd/Makefile | 12 ++++++++++-- 4 files changed, 39 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc4f32b235..ca0184bf05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Tue Jul 23 18:13:37 1996 Roland McGrath + + * sysdeps/mach/hurd/Makefile (rpcuserlibs): New variable. + ($(common-objpfx)libc.so): Move deps into that, use it. + [$(subdir) = elf] ($(objpfx)librtld.so): Depend on + $(rpcuserlibs:.so=_pic.a). + * elf/Makefile ($(objpfx)librtld.so): Just depend on libc_pic.a; don't + use $(LDLIBS-c.so). + +Thu Jul 18 21:41:25 1996 Andreas Schwab + + * sysdeps/generic/stpncpy.c: Fix semantics to make `stpncpy (d, s, + n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'. + Tue Jul 23 02:49:58 1996 Ulrich Drepper * locale/iso-4217.def: Add India to comment for symbol "INR ". diff --git a/elf/Makefile b/elf/Makefile index 3b3bd1457b..44c510ac43 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -70,9 +70,7 @@ $(objpfx)dl-allobjs.so: $(rtld-routines:%=$(objpfx)%.so) # Link together the dynamic linker into a single relocatable object. # We use this to produce both the ABI-compliant and Linux-compatible # dynamic linker shared objects below. -$(objpfx)librtld.so: $(objpfx)dl-allobjs.so \ - $(patsubst %,$(common-objpfx)lib%_pic.a,\ - c $(LDLIBS-c.so:-l%=%)) +$(objpfx)librtld.so: $(objpfx)dl-allobjs.so $(common-objpfx)libc_pic.a $(reloc-link) '-Wl,-(' $^ -lgcc '-Wl,-)' $(objpfx)ld.so: $(objpfx)librtld.so diff --git a/sysdeps/generic/stpncpy.c b/sysdeps/generic/stpncpy.c index 5cdd93d19e..427ed4b228 100644 --- a/sysdeps/generic/stpncpy.c +++ b/sysdeps/generic/stpncpy.c @@ -24,15 +24,13 @@ Cambridge, MA 02139, USA. */ /* Copy no more than N characters of SRC to DEST, returning the address of - the last character written into DEST. */ + the terminating '\0' in DEST, if any, or else DEST + N. */ char * DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n) { reg_char c; char *s = dest; - --dest; - if (n >= 4) { size_t n4 = n >> 2; @@ -40,27 +38,27 @@ DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n) for (;;) { c = *src++; - *++dest = c; + *dest++ = c; if (c == '\0') break; c = *src++; - *++dest = c; + *dest++ = c; if (c == '\0') break; c = *src++; - *++dest = c; + *dest++ = c; if (c == '\0') break; c = *src++; - *++dest = c; + *dest++ = c; if (c == '\0') break; if (--n4 == 0) goto last_chars; } - n = n - (dest - s) - 1; + n -= dest - s; if (n == 0) - return dest; + return dest - 1; goto zero_fill; } @@ -69,20 +67,22 @@ DEFUN(__stpncpy, (dest, src, n), char *dest AND CONST char *src AND size_t n) if (n == 0) return dest; - do + for (;;) { c = *src++; - *++dest = c; + *dest++ = c; + if (c == '\0') + break; if (--n == 0) return dest; } - while (c != '\0'); + --n; zero_fill: - while (n-- > 0) + while (--n > 0) dest[n] = '\0'; - return dest; + return dest - 1; } weak_alias (__stpncpy, stpncpy) diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index 8b70092f5f..26446951cc 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -104,11 +104,19 @@ endif # For the shared library, we don't need to do the linker script machination. # Instead, we specify the required libraries when building the shared object. -$(common-objpfx)libc.so: $(firstword $(objdir) $(..)mach)/libmachuser.so \ - $(firstword $(objdir) $(..)hurd)/libhurduser.so +rpcuserlibs := $(firstword $(objdir) $(..)mach)/libmachuser.so \ + $(firstword $(objdir) $(..)hurd)/libhurduser.so +$(common-objpfx)libc.so: $(rpcuserlibs) ifndef objpfx rpath-link += $(..)mach:$(..)hurd endif + +# The RPC stubs from these libraries are needed in building the dynamic +# linker, too. It must be self-contained, so we link the needed PIC +# objects directly into the shared object. +ifeq (elf,$(subdir)) +$(objpfx)librtld.so: $(rpcuserlibs:.so=_pic.a) +endif endif # in-Makerules -- cgit v1.2.3