From adee0e1f174ed6ac1c146c1a042dca6c1b020173 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 11 Nov 2002 02:34:36 +0000 Subject: * 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. --- ChangeLog | 21 ++++++++++++++++++--- Makerules | 9 +++++++++ Rules | 3 +++ csu/Makefile | 5 +++++ sysdeps/gnu/Makefile | 2 +- sysdeps/unix/make-syscalls.sh | 1 + 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 + + * 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 + * 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 - * 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 . * 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 '; \\ echo 'PSEUDO ($strong, $syscall, $nargs)'; \\ echo ' ret'; \\ -- cgit v1.2.3