summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-11-11 02:34:36 +0000
committerRoland McGrath <roland@gnu.org>2002-11-11 02:34:36 +0000
commitadee0e1f174ed6ac1c146c1a042dca6c1b020173 (patch)
treeefe7e3ae6f14cc3a514fb48635da2063f5188e83
parent8bbd8b0ba260a124edd42495b4194c7b9c30d0bc (diff)
* sysdeps/unix/make-syscalls.sh: Insert $(make-target-directory) at
the beginning of generated target commands. * csu/Makefile ($(objpfx)crti.o, $(objpfx)crtn.o): Add explicit dependencies for these in case implicit rule search skipped the nonexistent source directory. * sysdeps/gnu/Makefile ($(objpfx)errlist.d): Give this rule all the files with $(object-suffixes) as targets too. * Makerules [no_deps && objpfx] (before-compile): Add $(objpfx). and a target for it using $(make-target-directory). * Rules (before-compile): Add $(common-objpfx)bits/stdio-lim.h. * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ... * sysdeps/generic/bits/pthreadtypes.h: ... here.
-rw-r--r--ChangeLog21
-rw-r--r--Makerules9
-rw-r--r--Rules3
-rw-r--r--csu/Makefile5
-rw-r--r--sysdeps/gnu/Makefile2
-rw-r--r--sysdeps/unix/make-syscalls.sh1
6 files changed, 37 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index bbd27444b7..f994d6b8b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
+2002-11-10 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/unix/make-syscalls.sh: Insert $(make-target-directory) at
+ the beginning of generated target commands.
+
+ * csu/Makefile ($(objpfx)crti.o, $(objpfx)crtn.o): Add explicit
+ dependencies for these in case implicit rule search skipped the
+ nonexistent source directory.
+ * sysdeps/gnu/Makefile ($(objpfx)errlist.d): Give this rule all the
+ files with $(object-suffixes) as targets too.
+ * Makerules [no_deps && objpfx] (before-compile): Add $(objpfx).
+ and a target for it using $(make-target-directory).
+
+ * Rules (before-compile): Add $(common-objpfx)bits/stdio-lim.h.
+
2002-11-10 Roland McGrath <roland@frob.com>
+ * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ...
+ * sysdeps/generic/bits/pthreadtypes.h: ... here.
+
* sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Treat a struct flock with
l_start == 0 and l_len == 1 as we do l_len == 0.
@@ -9,9 +27,6 @@
2002-11-10 Roland McGrath <roland@redhat.com>
- * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ...
- * sysdeps/generic/bits/pthreadtypes.h: ... here.
-
* config.make.in (includedir): New variable, substituted by configure.
Reported missing by Jocelyn Fournier <joc@presence-pc.com>.
* Makeconfig (includedir): Use $(prefix), not $(exec_prefix).
diff --git a/Makerules b/Makerules
index 071352db51..461451f8a4 100644
--- a/Makerules
+++ b/Makerules
@@ -125,6 +125,15 @@ $(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
endif # avoid-generated
endif # $(versioning) = yes
+# When we have no deps pass doing it, then make sure the subdirectory
+# for object files gets created.
+ifdef no_deps
+ifdef objpfx
+before-compile += $(objpfx).
+$(objpfx).:
+ $(make-target-directory)
+endif
+endif
# Remove existing files from `before-compile'. Things are added there when
# they must exist for dependency generation to work right, but once they
diff --git a/Rules b/Rules
index 6090deb09d..f74cc64dfa 100644
--- a/Rules
+++ b/Rules
@@ -61,6 +61,9 @@ ifneq "$(findstring env,$(origin common-generated))" ""
common-generated :=
endif
+# See below. This must be set before Makerules processes it.
+before-compile += $(common-objpfx)bits/stdio_lim.h
+
include ../Makerules
.PHONY: subdir_lib
diff --git a/csu/Makefile b/csu/Makefile
index a71649ed6e..6b6991935a 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -113,6 +113,11 @@ $(objpfx)crtn.S: $(objpfx)initfini.s
-e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \
-e '/@TRAILER_BEGINS/,$$p' $< > $@
+# These explicit rules are necessary when the $(objpfx) subdirectory
+# did not exist at the time make considered the implicit rules using it.
+# This comes up with a fresh build using no_deps=t.
+$(patsubst %,$(objpfx)crt%.o,i n): %.o: %.S
+
$(objpfx)defs.h: $(objpfx)initfini.s
sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
$(AWK) -f defs.awk > $@
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
index 661d5f8752..591b6ce432 100644
--- a/sysdeps/gnu/Makefile
+++ b/sysdeps/gnu/Makefile
@@ -49,7 +49,7 @@ endif
mv -f $@T $@
# This will force the generation above to happy if need be.
-$(objpfx)errlist.d: $(objpfx)errlist-compat.c
+$(foreach o,.d $(object-suffixes),$(objpfx)errlist$o):$(objpfx)errlist-compat.c
endif
ifeq ($(subdir),login)
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index e85a21dd9b..d49688aacc 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -141,6 +141,7 @@ shared-only-routines += $file
;;
x*)
echo "\
+ \$(make-target-directory)
(echo '#include <sysdep.h>'; \\
echo 'PSEUDO ($strong, $syscall, $nargs)'; \\
echo ' ret'; \\