about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/unix/Makefile12
-rw-r--r--sysdeps/unix/make-syscalls.sh4
-rw-r--r--sysdeps/unix/s-proto-cancel.S5
4 files changed, 24 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index a128a8018d..983d826c4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2002-12-28  Andreas Schwab  <schwab@suse.de>
+
+	* sysdeps/unix/Makefile: Include $(common-objpfx)s-proto-cancel.d.
+	($(common-objpfx)s-%.d): Generalized from
+	$(common-objpfx)s-proto.d rule.
+	(common-generated): Add s-proto-cancel.d.
+	* sysdeps/unix/make-syscalls.sh: Use s-proto-cancel.d for
+	cancellable syscalls.
+	* sysdeps/unix/s-proto-cancel.S: New file.
+
 2002-12-29  Roland McGrath  <roland@redhat.com>
 
 	* resolv/res_libc.c: Move _res defn magic after res_init defn
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index db09b9454c..d6aabb4c98 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -297,22 +297,24 @@ $(common-objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \
 	mv -f $@T $@
 endif
 
-# This syscall objects depend on s-proto.d, which is generated to
-# specify dependencies generated syscalls with have on headers.
+# The syscall objects depend on s-proto.d or s-proto-cancel.d, which
+# are generated to specify dependencies generated syscalls have on
+# headers.
 ifdef subdir
 ifndef no_deps
 # These deps use file names relative to a subdir, so don't
 # include them in the parent directory.
 -include $(common-objpfx)s-proto.d
+-include $(common-objpfx)s-proto-cancel.d
 endif
 endif
 
-$(common-objpfx)s-proto.d: $(common-objpfx)%.d: $(..)sysdeps/unix/%.S \
-			   $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
+$(common-objpfx)s-%.d: $(..)sysdeps/unix/s-%.S \
+		       $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
 # Don't try to use compat.h in the db2 subdir
 	$(subst -include ./compat.h,,$(+make-deps))
 
-common-generated += s-proto.d
+common-generated += s-proto.d s-proto-cancel.d
 postclean-generated += sysd-syscalls
 
 endif
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 932f48d295..bbc8d43108 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -139,7 +139,7 @@ shared-only-routines += $file
     ;;
   esac
 
-  echo '		$(common-objpfx)s-proto.d'
+  echo "		\$(common-objpfx)s-proto$cancellable.d"
   case x"$callnum" in
   x_)
   echo "\
@@ -248,7 +248,7 @@ shared-only-routines += $file
     # generate makefile envelope & rule head
     echo "ifeq (,\$(filter $file,\$(bp-thunks)))"
     echo "bp-thunks += $file"
-    echo "\$(objpfx)\$(bppfx)$file.ob: \$(common-objpfx)s-proto.d"
+    echo "\$(objpfx)\$(bppfx)$file.ob: \$(common-objpfx)s-proto$cancellable.d"
 
     # generate macro head
     echo "	(echo '#define $callname(`echo $arglist | \
diff --git a/sysdeps/unix/s-proto-cancel.S b/sysdeps/unix/s-proto-cancel.S
new file mode 100644
index 0000000000..042be3c8df
--- /dev/null
+++ b/sysdeps/unix/s-proto-cancel.S
@@ -0,0 +1,5 @@
+/* This file exists just to have its dependencies determined.
+   Those dependencies are then used for the objects of the cancellable
+   system calls.  */
+
+#include <sysdep-cancel.h>