summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-16 21:19:13 +0000
committerRoland McGrath <roland@gnu.org>1996-07-16 21:19:13 +0000
commitf36f8dcf1cf07c66e9f7a3eba408e2b0af12d717 (patch)
tree93cf1bcdcb0c5b31f1b731184b32471443b9c287
parentec42724d6970b2d3e9007de0841394856e84d287 (diff)
downloadglibc-f36f8dcf1cf07c66e9f7a3eba408e2b0af12d717.tar.gz
glibc-f36f8dcf1cf07c66e9f7a3eba408e2b0af12d717.tar.xz
glibc-f36f8dcf1cf07c66e9f7a3eba408e2b0af12d717.zip
Tue Jul 16 16:43:58 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
	* sysdeps/mach/hurd/mmap.c: Use same inheritance arg in second vm_map
	call as in first.

	* Makerules (make-link): Install the new link with atomic mv -f in
	case ln itself requires the library being installed.
-rw-r--r--ChangeLog8
-rw-r--r--Makerules4
-rw-r--r--sysdeps/mach/hurd/mmap.c9
3 files changed, 15 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c2b516886f..45b890aae9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Jul 16 16:43:58 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+
+	* sysdeps/mach/hurd/mmap.c: Use same inheritance arg in second vm_map
+	call as in first.
+
+	* Makerules (make-link): Install the new link with atomic mv -f in
+	case ln itself requires the library being installed.
+
 Tue Jul 16 00:31:31 1996  Richard Henderson  <rth@tamu.edu>
 
 	* sysdeps/alpha/dl-machine.h: Mirror Roland's changes to
diff --git a/Makerules b/Makerules
index cb6b35425a..0554f85f98 100644
--- a/Makerules
+++ b/Makerules
@@ -583,7 +583,9 @@ versioned := $(strip $(foreach so,$(install-lib.so),\
 $(addprefix $(libdir)/,$(filter-out $(versioned),$(install-lib.so))): \
 $(libdir)/%.so: $(objpfx)%.so; $(do-install-program)
 
-make-link = cd $(@D); rm -f $(@F); $(LN_S) $(<F) $(@F)
+define make-link
+cd $(@D); rm -f $(@F).new; $(LN_S) $(<F) $(@F).new; mv -f $(@F).new $(@F)
+endef
 
 ifdef libc.so-version
 # For a library specified to be version N, install three files:
diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c
index f42c4e55c3..8753fd644b 100644
--- a/sysdeps/mach/hurd/mmap.c
+++ b/sysdeps/mach/hurd/mmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996 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
@@ -135,11 +135,10 @@ __mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
 	err = __vm_map (__mach_task_self (),
 			&mapaddr, (vm_size_t) len, (vm_address_t) 0,
 			0, memobj, (vm_offset_t) offset,
-			flags & (MAP_COPY|MAP_PRIVATE),
+			! (flags & MAP_SHARED),
 			vmprot, VM_PROT_ALL,
-			(flags & MAP_INHERIT) == 0 ? VM_INHERIT_NONE :
-			(flags & (MAP_COPY|MAP_PRIVATE)) ? VM_INHERIT_COPY :
-			VM_INHERIT_SHARE);
+			(flags & MAP_SHARED) ? VM_INHERIT_SHARE
+			: VM_INHERIT_COPY);
     }
 
   if (memobj != MACH_PORT_NULL)