about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2008-02-01 00:01:25 +0000
committerRoland McGrath <roland@gnu.org>2008-02-01 00:01:25 +0000
commit363a641b1c856bf497840c6f7ed975366b48eb0e (patch)
tree80fa331870fbe6a2d76692d112e84cdbed7b99f3
parent7bd00dbfeb3398bead0ff2c0a9b190791cf251fa (diff)
downloadglibc-363a641b1c856bf497840c6f7ed975366b48eb0e.tar.gz
glibc-363a641b1c856bf497840c6f7ed975366b48eb0e.tar.xz
glibc-363a641b1c856bf497840c6f7ed975366b48eb0e.zip
* Makeconfig (sysd-rules-targets): New variable.
	* sysdeps/unix/make-syscalls.sh: Use it in the rules emitted.
	* sysdeps/unix/Makefile (omit-deps): Append variants for each target.
-rw-r--r--ChangeLog6
-rw-r--r--Makeconfig3
-rw-r--r--nptl/Makefile6
-rw-r--r--sysdeps/unix/Makefile4
-rw-r--r--sysdeps/unix/make-syscalls.sh8
5 files changed, 17 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 8be3612c61..b6f044a68f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-31  Roland McGrath  <roland@redhat.com>
+
+	* Makeconfig (sysd-rules-targets): New variable.
+	* sysdeps/unix/make-syscalls.sh: Use it in the rules emitted.
+	* sysdeps/unix/Makefile (omit-deps): Append variants for each target.
+
 2008-01-30  Roland McGrath  <roland@redhat.com>
 
 	* manual/libc.texinfo: Update back-cover text.
diff --git a/Makeconfig b/Makeconfig
index d7cf0aa031..d269936f32 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -944,6 +944,9 @@ ifneq (,$(sysdep-makeconfigs))
 include $(sysdep-makeconfigs)
 endif
 
+# Compute just the target patterns.  Makeconfig has set sysd-rules-patterns.
+sysd-rules-targets := $(foreach p,$(sysd-rules-patterns),\
+		      		$(firstword $(subst :, ,$p)))
 
 endif # Makeconfig not yet included
 
diff --git a/nptl/Makefile b/nptl/Makefile
index 00cf40d695..a55d7f5e92 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -1,4 +1,5 @@
-# Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+# Copyright (C) 2002,2003,2004,2005,2006,2007,2008
+#	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
@@ -192,9 +193,6 @@ CFLAGS-tcdrain.c = -fexceptions -fasynchronous-unwind-tables
 
 CFLAGS-pt-system.c = -fexceptions
 
-# Don't generate deps for calls with no sources.  See sysdeps/unix/Makefile.
-omit-deps = $(unix-syscalls:%=ptw-%)
-
 
 tests = tst-typesizes \
 	tst-attr1 tst-attr2 tst-attr3 \
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 4ab06ba33e..2696e7fb62 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1991,1992,1993,1994,1995,1996,1997,1998,1999,2003, 2006
+# Copyright (C) 1991,1992,1993,1994,1995,1996,1997,1998,1999,2003, 2006, 2008
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
@@ -260,7 +260,7 @@ ifndef inhibit-unix-syscalls
 # which specifies objects to be compiled as simple Unix system calls.
 
 -include $(common-objpfx)sysd-syscalls
-omit-deps += $(unix-syscalls)
+omit-deps += $(foreach t,$(sysd-rules-targets),$(unix-syscalls:%=$t))
 
 ifeq (misc,$(subdir))
 sysdep_routines += $(unix-extra-syscalls)
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 0ec8b28fd2..ca82e1f331 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -146,9 +146,8 @@ shared-only-routines += $file
     ;;
   *)
     echo "\
-\$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o) \
-\$(foreach o,\$(object-suffixes),\$(objpfx)ptw-$file\$o) \
-\$(objpfx)rtld-$file.os: \\"
+\$(foreach p,\$(sysd-rules-targets),\
+\$(foreach o,\$(object-suffixes),\$(objpfx)\$(patsubst %,\$p,$file)\$o)): \\"
     ;;
   esac
 
@@ -216,7 +215,8 @@ shared-only-routines += $file
   done
 
   # And finally, pipe this all into the compiler.
-  echo '	) | $(compile-syscall)'
+  echo '	) | $(compile-syscall) '"\
+\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
 
   case $weak in
   *@*)