about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-02-28 07:11:04 +0000
committerRoland McGrath <roland@gnu.org>2006-02-28 07:11:04 +0000
commite0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a (patch)
tree9ee2ada7a666b14f1e47aa183012ddf59de3fb73 /sysdeps
parent0f284e58375992e42d7e9b3f1ea14963cfa4462b (diff)
downloadglibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.tar.gz
glibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.tar.xz
glibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.zip
* Makefile (subdir-target-args): New variable.
	($(all-subdirs-targets)): Use it in place of -C option.
	* Rules: Use $(..) instead of ../ if it's already defined.
	* Makeconfig (subdir-srcdirs): New variable.
	* csu/Makefile (all-Banner-files): Use it.

	* configure.in (--enable-add-ons): Set to "yes" by default.
	Handle absolute add-on directory names when looking for configure
	fragments.  Also look for sysdeps/*/preconfigure fragments in add-ons.
	Require add-on configure to set $libc_add_on_canonical, use
	that in $add_ons_sfx.  Substitute add_on_subdirs with computed list
	of subdir names each add-on configure set in libc_add_on_subdirs.
	* configure: Regenerated.
	* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
	* config.make.in (add-on-subdirs): New substituted variable.
	* Makeconfig (all-subdirs): Include $(add-on-subdirs).
	Remove $(add-ons), $(sysdep-subdirs).
	Don't filter out $(sysdep-inhibit-subdirs).
	($(common-objpfx)sysd-dirs): Target removed.  Don't include it.
	($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
	files together to gen-sorted.awk, and $(subdirs) via -v.
	(subdirs): Remove magic reordering for mach and hurd.
	* scripts/gen-sorted.awk: Use subdirs from command line.
	Process Subdirs and Depend files directly.
	Let Subdirs files use "first dir" and "inhibit dir".
	Always move elf to the end of the list.
	* hurd/Depend: New file.
	* sysdeps/mach/Subdirs: Use "first mach".

	* Makefile (dist-separate): Remove linuxthreads.
	(dist-separate-linuxthreads): Variable removed.
	(glibc-%.tar rule): Use $(sysdeps-add-ons).

	* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
	not $(all-subdirs).
	(sysdep-makefiles): Use $(sysdirs).
	(sysdirs): Remove export.
	($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
	$(config-sysdirs).
	(+sysdir_pfx): Variable removed.
	(sysd-rules): Use $(common-objpfx) in place of it.
	(sysdirs): Variable moved to ...
	* Makeconfig (sysdirs): ... here.
	Handle absolute directory names in $(config-sysdirs).
	(full_config_sysdirs): Variable removed.
	* csu/Makefile: Use $(sysdirs) in vpath directive.
	* math/Makefile (ulps-file): Use $(sysdirs).
	* sysdeps/gnu/Makefile (errlist-c): Likewise.
	($(objpfx)errlist-compat.c): Likewise.
	* Makeconfig (all-Subdirs-files): Likewise.
	($(common-objpfx)config.status): Likewise.

	* configure.in (sysnames): Handle absolute add-on directory names.
	(sysdeps_add_ons): New variable, AC_SUBST it.
	Compute which add-ons contributed sysdeps directories.
	* configure: Regenerated.
	* config.make.in (sysdeps-add-ons): New substituted variable.
	* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
	* Makeconfig: ... to here.
	(+sysdep_dirs): Append $(sysdeps-add-ons) here.
	(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
	Remove $(includes).
	(sysdep-makeconfigs): Use $(+sysdep_dirs).
	($(common-objpfx)shlib-versions.v.i): Likewise.

	* Makeconfig: Remove hair to set Makeconfig-add-on.

	* sysdeps/unix/Makefile (sysdirs): Remove export.
	(asm_CPP): Variable removed.
	($(common-objpfx)sysd-syscalls): Pass them directly for the script.

	* sysdeps/posix/Makefile: New file.
	* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
	values here with ?=.

	* stdlib/gen-mpn-copy: File removed.
	* stdlib/Makefile (distribute): Remove it.
	* configure.in: Don't grok --with-gmp.
	* configure: Regenerated.

	* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
	* configure: Regenerated.

	* bare: Directory removed, saved in ports repository.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/gnu/Makefile11
-rw-r--r--sysdeps/mach/Subdirs10
-rw-r--r--sysdeps/unix/Makefile7
3 files changed, 17 insertions, 11 deletions
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
index 2b3194f04a..5b9a0a56ed 100644
--- a/sysdeps/gnu/Makefile
+++ b/sysdeps/gnu/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1996,1997,1998,1999,2001,2002,2003,2004, 2005
+# Copyright (C) 1996,1997,1998,1999,2001,2002,2003,2004,2005,2006
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
@@ -32,8 +32,7 @@ endif
 
 ifeq ($(subdir),stdio-common)
 
-errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c, \
-						   $(full_config_sysdirs) .)))
+errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c,$(sysdirs) .)))
 
 ifeq ($(versioning),yes)
 $(objpfx)errlist-compat.c: $(errlist-c) $(..)sysdeps/gnu/errlist-compat.awk \
@@ -47,8 +46,7 @@ endif
 	  $(CC) -S $(CPPFLAGS) $(CFLAGS) -DNOT_IN_libc -DEMIT_ERR_MAX $< -o - \
 	  | sed -n 's/^.*@@@[^0-9]*\([0-9]*\)[^0-9]*@@@.*$$/\1/p'` \
 	       -f $(..)sysdeps/gnu/errlist-compat.awk \
-	       $(wildcard $(patsubst %,$(..)%/Versions,\
-		 $(config-sysdirs) $(add-ons))) > $@T
+	       $(wildcard $(sysdirs:=/Versions)) > $@T
 # Make it unwritable so noone will edit it by mistake.
 	-chmod a-w $@T
 	mv -f $@T $@
@@ -59,7 +57,8 @@ $(objpfx)errlist-compat.h: $(objpfx)errlist-compat.c
 generated += errlist-compat.c errlist-compat.h
 
 # This will force the generation above to happy if need be.
-$(foreach o,.d $(object-suffixes),$(objpfx)errlist$o):$(objpfx)errlist-compat.h
+$(foreach o,$(object-suffixes) $(object-suffixes:=.d),\
+	  $(objpfx)errlist$o): $(objpfx)errlist-compat.h
 endif
 
 ifeq ($(subdir),login)
diff --git a/sysdeps/mach/Subdirs b/sysdeps/mach/Subdirs
index fc6ac35d83..24fa4a3c98 100644
--- a/sysdeps/mach/Subdirs
+++ b/sysdeps/mach/Subdirs
@@ -1 +1,9 @@
-mach
+# This file says that the mach subdirectory should appear before all others.
+# The mach and hurd subdirectories have many generated header files which
+# much of the rest of the library depends on, so it is best to build them
+# first (and mach before hurd, at that).  The before-compile additions in
+# sysdeps/{mach,hurd}/Makefile should make it reliably work for these files
+# not to exist when making in other directories, but it will be slower that
+# way with more somewhat expensive `make' invocations.
+
+first mach
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index c9aa360cde..4ab06ba33e 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -305,9 +305,6 @@ generated += stub-syscalls.c
 endif
 endif
 
-export sysdirs
-export asm_CPP := $(COMPILE.S) -E -x assembler-with-cpp
-
 # This is the end of the pipeline for compiling the syscall stubs.
 # The stdin in assembler with cpp using sysdep.h macros.
 # Be sure to disable debugging info since it would all just say "<stdin>".
@@ -318,7 +315,9 @@ $(common-objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \
 			       $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
 	for dir in $(+sysdep_dirs); do \
 	  test -f $$dir/syscalls.list && \
-	  { $(SHELL) $(dir $<)$(notdir $<) $$dir || exit 1; }; \
+	  { sysdirs='$(sysdirs)' \
+	    asm_CPP='$(COMPILE.S) -E -x assembler-with-cpp' \
+	    $(SHELL) $(dir $<)$(notdir $<) $$dir || exit 1; }; \
 	  test $$dir = $(..)sysdeps/unix && break; \
 	done > $@T
 	mv -f $@T $@