* 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.
This commit is contained in:
Roland McGrath 2006-02-28 07:11:04 +00:00
parent 0f284e5837
commit e0a3ed4ff9
41 changed files with 796 additions and 362 deletions

View File

@ -1,3 +1,88 @@
2006-02-27 Roland McGrath <roland@redhat.com>
* 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.
2006-02-27 Ulrich Drepper <drepper@redhat.com> 2006-02-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/linkat.c (linkat): Allow flags to be set * sysdeps/unix/sysv/linux/linkat.c (linkat): Allow flags to be set
@ -6,6 +91,8 @@
2006-02-26 Roland McGrath <roland@redhat.com> 2006-02-26 Roland McGrath <roland@redhat.com>
* bare: Directory removed, saved in ports repository.
* sysdeps/unix/common/Makefile: File removed. * sysdeps/unix/common/Makefile: File removed.
* sysdeps/unix/common/glue-ctype.c: File removed. * sysdeps/unix/common/glue-ctype.c: File removed.
* sysdeps/unix/common/configure.in: File removed. * sysdeps/unix/common/configure.in: File removed.

View File

@ -99,7 +99,20 @@ binfmt-subdir = aout
endif endif
# Complete path to sysdep dirs. # Complete path to sysdep dirs.
export full_config_sysdirs := $(addprefix $(..),$(config-sysdirs)) # `configure' writes a definition of `config-sysdirs' in `config.make'.
sysdirs := $(foreach D,$(config-sysdirs),$(firstword $(filter /%,$D) $(..)$D))
# Add-ons that contribute sysdeps trees get added to the include list
# after sysdeps/generic. This makes #include <sysdeps/...> work right
# to find specific add-on files without assuming the add-on directory name.
# It also means that headers can go into an add-on's base directory
# instead of the add-on needing a sysdeps/generic of its own.
+sysdep_dirs := $(sysdirs) $(foreach add-on,$(sysdeps-add-ons),\
$(firstword $(filter /%,$(add-on)) \
$(..)$(add-on)))
ifdef objdir
+sysdep_dirs := $(objdir) $(+sysdep_dirs)
endif
# Run config.status to update config.make and config.h. We don't show the # Run config.status to update config.make and config.h. We don't show the
# dependence of config.h to Make, because it is only touched when it # dependence of config.h to Make, because it is only touched when it
@ -113,16 +126,16 @@ $(common-objpfx)config.make: $(common-objpfx)config.status \
# Find all the add-on and sysdeps configure fragments, to make sure we # Find all the add-on and sysdeps configure fragments, to make sure we
# re-run configure when any of them changes. # re-run configure when any of them changes.
$(common-objpfx)config.status: $(..)version.h $(..)configure \ $(common-objpfx)config.status: $(..)version.h $(..)configure \
$(foreach dir,$(full_config_sysdirs),\ $(foreach dir,$(sysdirs),\
$(wildcard \ $(wildcard $(dir)/Implies) \
$(dir)/Implies) \
$(patsubst %.in,%,\ $(patsubst %.in,%,\
$(firstword $(wildcard \ $(firstword $(wildcard \
$(addprefix $(dir)/,configure configure.in))))) \ $(addprefix $(dir)/,configure configure.in))))) \
$(patsubst %.in,%,\ $(patsubst %.in,%,\
$(foreach dir,$(add-ons),\ $(foreach add-on,$(add-ons),\
$(firstword $(wildcard \ $(firstword $(wildcard \
$(addprefix $(..)$(dir)/,configure configure.in))))) $(addprefix $(firstword $(filter /%,$(add-on)) $(..)$(add-on))/,\
configure configure.in)))))
@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \ @cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
echo The GNU C library has not been configured. >&2; \ echo The GNU C library has not been configured. >&2; \
echo Run \`configure\' to configure it before building. >&2; \ echo Run \`configure\' to configure it before building. >&2; \
@ -632,11 +645,10 @@ endif # $(+cflags) == ""
# include files (including ones given in angle brackets) in the parent # include files (including ones given in angle brackets) in the parent
# library source directory, in the include directory, and in the # library source directory, in the include directory, and in the
# current directory. # current directory.
# `+sysdep-includes' will be defined by Makerules. +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
+includes = -I$(..)include \ +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
$(patsubst %/,-I%,$(objpfx)) $(+sysdep-includes) \ $(+sysdep-includes) \
$(patsubst %/,-I%,$(..)) $(libio-include) $(includes) -I. \ $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
$(sysincludes)
# Since libio has several internal header files, we use a -I instead # Since libio has several internal header files, we use a -I instead
# of many little headers in the include directory. # of many little headers in the include directory.
@ -753,12 +765,10 @@ endif
move-if-change = $(SHELL) $(..)scripts/move-if-change move-if-change = $(SHELL) $(..)scripts/move-if-change
-include $(common-objpfx)sysd-dirs
ifeq ($(sysd-dirs-done),t)
-include $(common-objpfx)sysd-sorted -include $(common-objpfx)sysd-sorted
subdirs = $(sorted-subdirs) subdirs = $(sorted-subdirs)
endif subdir-srcdirs = $(foreach dir,$(subdirs),\
$(firstword $($(dir)-srcdir) $(..)$(dir)))
ifeq (yes, $(build-shared)) ifeq (yes, $(build-shared))
@ -789,9 +799,8 @@ ifndef avoid-generated
# This lets add-ons give more-specific matches that override defaults # This lets add-ons give more-specific matches that override defaults
# in the top-level file. # in the top-level file.
$(common-objpfx)shlib-versions.v.i: \ $(common-objpfx)shlib-versions.v.i: \
$(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) \ $(wildcard $(+sysdep_dirs:=/shlib-versions) \
$(config-sysdirs) \ $(subdir-srcdirs:=/shlib-versions)) \
$(subdirs))) \
$(..)shlib-versions $(..)shlib-versions
soversions-default-setname = $(patsubst %, %,\ soversions-default-setname = $(patsubst %, %,\
@ -891,81 +900,39 @@ endif
# These are the subdirectories containing the library source. The order # These are the subdirectories containing the library source. The order
# is more or less arbitrary. The sorting step will take care of the # is more or less arbitrary. The sorting step will take care of the
# dependencies. Only the $(binfmt-subdir) should always be kept at the # dependencies.
# end of the list.
all-subdirs = csu assert ctype locale intl catgets math setjmp signal \ all-subdirs = csu assert ctype locale intl catgets math setjmp signal \
stdlib stdio-common libio malloc string wcsmbs time dirent \ stdlib stdio-common libio malloc string wcsmbs time dirent \
grp pwd posix io termios resource misc socket sysvipc gmon \ grp pwd posix io termios resource misc socket sysvipc gmon \
gnulib iconv iconvdata wctype manual shadow po argp \ gnulib iconv iconvdata wctype manual shadow po argp \
crypt $(add-ons) nss localedata timezone rt conform debug \ crypt nss localedata timezone rt conform debug \
$(sysdep-subdirs) $(dlfcn) $(binfmt-subdir) $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
all-subdirs := $(filter-out $(sysdep-inhibit-subdirs),$(all-subdirs))
# 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.
subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
$(filter-out mach hurd,$(subdirs))
ifndef avoid-generated ifndef avoid-generated
all-Subdirs-files = $(wildcard $(config-sysdirs:%=$(..)%/Subdirs)) all-Depend-files := $(wildcard $(foreach dir,$(all-subdirs),\
$(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files) $(firstword $($(dir)-srcdir) \
$(AWK) 'BEGIN { subdirs = ""; inhibit = "" }; \ $(..)$(dir))/Depend))
/^#/ { next }; \ $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk \
/^[^-]/ { subdirs = subdirs " " $$0 }; \ $(common-objpfx)config.make $(..)Makeconfig \
/^-/ { inhibit = inhibit " " substr($$0, 2) }; \ $(wildcard $(sysdirs:=/Subdirs)) \
END { printf "sysdep-subdirs =%s\n", subdirs; \ $(all-Depend-files)
printf "sysdep-inhibit-subdirs =%s\n", inhibit; \ $(AWK) -f $< \
print "sysd-dirs-done = t" }' \ -v subdirs='$(all-subdirs)' \
$(patsubst $<,/dev/null,$^) > $@-tmp -v srcpfx='$(..)' \
mv -f $@-tmp $@ $(filter %/Subdirs %/Depend,$^) > $@-tmp
all-Depend-files = $(wildcard $(..)*/Depend)
$(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
$(common-objpfx)sysd-dirs $(..)Makeconfig
{ { dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend,$^))'; \
for d in $$dirs; do \
while read on; do \
echo "depend $$d $$on"; \
done < $(..)$$d/Depend; \
done; \
for f in $(all-subdirs); do \
echo $$f; \
done; \
} | $(AWK) -f $< && \
echo sysd-sorted-done = t; \
} > $@-tmp
mv -f $@-tmp $@ mv -f $@-tmp $@
$(all-Depend-files): ; $(all-Depend-files): ;
endif endif
# Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here. # Let sysdeps/ subdirs contain a Makeconfig fragment for us to include here.
sysdep-makeconfigs := $(wildcard $(patsubst %,$(..)%/Makeconfig,\ sysdep-makeconfigs := $(wildcard $(+sysdep_dirs:=/Makeconfig))
$(config-sysdirs) $(add-ons)))
ifneq (,$(sysdep-makeconfigs)) ifneq (,$(sysdep-makeconfigs))
Makeconfig-doing-sysdep := $(sysdep-makeconfigs) include $(sysdep-makeconfigs)
# Before each one, include ourselves again to do the bit below that
# will set `Makeconfig-add-on' in an add-on's Makeconfig fragment.
include $(foreach M,$(sysdep-makeconfigs),$(..)Makeconfig $M)
endif endif
endif # Makeconfig not yet included endif # Makeconfig not yet included
# The whole body above didn't run when we are included as a subroutine
# of ourselves in the sysdep-makeconfigs include line. This bit runs.
ifneq (,$(Makeconfig-doing-sysdep))
sysdep-Makeconfig := $(firstword $(Makeconfig-doing-sysdep))
Makeconfig-doing-sysdep := $(filter-out $(sysdep-Makeconfig),\
$(Makeconfig-doing-sysdep))
Makeconfig-add-on := $(filter $(add-ons),$(patsubst $(..)%/Makeconfig,%,\
$(sysdep-Makeconfig)))
endif
# Local Variables: # Local Variables:
# mode: makefile # mode: makefile
# End: # End:

View File

@ -50,6 +50,7 @@ endef
configure: configure.in aclocal.m4; $(autoconf-it) configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it) %/configure: %/configure.in aclocal.m4; $(autoconf-it)
%/preconfigure: %/preconfigure.in aclocal.m4; $(autoconf-it)
endif # $(AUTOCONF) = no endif # $(AUTOCONF) = no
@ -202,7 +203,13 @@ all-subdirs-targets := $(foreach dir,$(subdirs),\
# The action for each of those is to cd into the directory and make the # The action for each of those is to cd into the directory and make the
# target there. # target there.
$(all-subdirs-targets): $(all-subdirs-targets):
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) $(MAKE) $(PARALLELMFLAGS) $(subdir-target-args) $(@F)
define subdir-target-args
subdir=$(@D)$(if $($(@D)-srcdir),\
-C $($(@D)-srcdir) ..=`pwd`/,\
-C $(@D) ..=../)
endef
.PHONY: $(+subdir_targets) $(all-subdirs-targets) .PHONY: $(+subdir_targets) $(all-subdirs-targets)
@ -353,17 +360,16 @@ files-for-dist := README FAQ INSTALL NOTES configure
tag-of-stem = glibc-$(subst .,_,$*) tag-of-stem = glibc-$(subst .,_,$*)
# Add-ons in the main repository but distributed in their own tar files. # Add-ons in the main repository but distributed in their own tar files.
dist-separate = libidn linuxthreads dist-separate = libidn
# Directories in each add-on. # Directories in each add-on.
dist-separate-libidn = libidn dist-separate-libidn = libidn
dist-separate-linuxthreads = linuxthreads linuxthreads_db
glibc-%.tar $(dist-separate:%=glibc-%-%.tar): $(files-for-dist) \ glibc-%.tar $(dist-separate:%=glibc-%-%.tar): $(files-for-dist) \
$(foreach D,$(dist-separate),\ $(foreach D,$(dist-separate),\
$D/configure) $D/configure)
@rm -fr glibc-$* @rm -fr glibc-$*
$(MAKE) -q `find sysdeps $(addsuffix /sysdeps,$(add-ons)) \ $(MAKE) -q `find sysdeps $(addsuffix /sysdeps,$(sysdeps-add-ons)) \
-name configure` -name configure`
cvs $(CVSOPTS) -Q export -d glibc-$* -r $(tag-of-stem) libc cvs $(CVSOPTS) -Q export -d glibc-$* -r $(tag-of-stem) libc
# Touch all the configure scripts going into the tarball since cvs export # Touch all the configure scripts going into the tarball since cvs export

View File

@ -56,22 +56,6 @@ ifndef +included-Makeconfig
include $(..)Makeconfig include $(..)Makeconfig
endif endif
# `configure' writes a definition of `config-sysdirs' in `config.make'.
sysdirs = $(strip $(full_config_sysdirs))
+sysdir_pfx = $(common-objpfx)
export sysdirs := $(sysdirs)
+sysdep_dirs := $(full_config_sysdirs)
ifdef objdir
+sysdep_dirs := $(objdir) $(+sysdep_dirs)
endif
# Add -I switches to get the right sysdep directories.
# `+includes' in Makeconfig references $(+sysdep-includes).
+sysdep-includes := $(addprefix -I,$(+sysdep_dirs))
# This variable is used in ``include $(o-iterator)'' after defining # This variable is used in ``include $(o-iterator)'' after defining
# $(o-iterator-doit) to produce some desired rule using $o for the object # $(o-iterator-doit) to produce some desired rule using $o for the object
# suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy # suffix, and setting $(object-suffixes-left) to $(object-suffixes); a copy
@ -94,7 +78,7 @@ vpath %.x $(subst $(empty) ,:,$(strip $(common-objpfx) $(objpfx) \
# being included individually by a subdir makefile (hurd/Makefile needs this). # being included individually by a subdir makefile (hurd/Makefile needs this).
in-Makerules := yes in-Makerules := yes
sysdep-makefiles := $(wildcard $(full_config_sysdirs:=/Makefile)) sysdep-makefiles := $(wildcard $(sysdirs:=/Makefile))
ifneq (,$(sysdep-makefiles)) ifneq (,$(sysdep-makefiles))
include $(sysdep-makefiles) include $(sysdep-makefiles)
endif endif
@ -229,20 +213,22 @@ endef
close-check-inhibit-asm = ;; esac ; close-check-inhibit-asm = ;; esac ;
endif endif
-include $(+sysdir_pfx)sysd-rules -include $(common-objpfx)sysd-rules
ifneq ($(sysd-rules-sysdirs),$(config-sysdirs)) ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
# The value of $(+sysdep_dirs) the sysd-rules was computed for # The value of $(+sysdep_dirs) the sysd-rules was computed for
# differs from the one we are using now. So force a rebuild of sysd-rules. # differs from the one we are using now. So force a rebuild of sysd-rules.
sysd-rules-force = FORCE sysd-rules-force = FORCE
FORCE: FORCE:
endif endif
$(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \ $(common-objpfx)sysd-rules: $(common-objpfx)config.make $(..)Makerules \
$(wildcard $(foreach dir,$(sysdirs),\ $(sysdep-makefiles) $(sysd-rules-force)
$(dir)/Makefile))\
$(sysd-rules-force)
-@rm -f $@T -@rm -f $@T
(echo 'sysd-rules-sysdirs := $(config-sysdirs)'; \ (echo 'sysd-rules-sysdirs := $(config-sysdirs)'; \
for dir in $(config-sysdirs:%='$$(..)%'); do \ for dir in $(config-sysdirs); do \
case "$$dir" in \
/*) ;; \
*) dir="\$$(..)$$dir" ;; \
esac; \
for o in $(all-object-suffixes); do \ for o in $(all-object-suffixes); do \
$(open-check-inhibit-asm) \ $(open-check-inhibit-asm) \
echo "\$$(objpfx)%$$o: $$dir/%.S \$$(before-compile); \ echo "\$$(objpfx)%$$o: $$dir/%.S \$$(before-compile); \
@ -340,7 +326,7 @@ postclean-generated += sysd-versions Versions.all abi-versions.h \
Versions.def.v.i Versions.def.v Versions.v.i Versions.v Versions.def.v.i Versions.def.v Versions.v.i Versions.v
ifndef avoid-generated ifndef avoid-generated
ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs)) ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
sysd-versions-force = FORCE sysd-versions-force = FORCE
FORCE: FORCE:
endif endif
@ -358,14 +344,14 @@ $(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
} | LC_ALL=C $(AWK) -f $< > $@T } | LC_ALL=C $(AWK) -f $< > $@T
mv -f $@T $@ mv -f $@T $@
# See %.v/%.v.i implicit rules in Makeconfig. # See %.v/%.v.i implicit rules in Makeconfig.
$(common-objpfx)Versions.v.i: $(wildcard $(all-subdirs:%=$(..)%/Versions)) \ $(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
$(wildcard $(sysdirs:%=%/Versions)) \ $(wildcard $(sysdirs:%=%/Versions)) \
$(common-objpfx)abi-versions.h \ $(common-objpfx)abi-versions.h \
$(sysd-versions-force) $(sysd-versions-force)
$(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
$(common-objpfx)Versions.v \ $(common-objpfx)Versions.v \
$(..)scripts/versions.awk $(..)scripts/versions.awk
( echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \ ( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
cat $(word 2,$^) \ cat $(word 2,$^) \
| LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \ | LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-v move_if_change='$(move-if-change)' \ -v move_if_change='$(move-if-change)' \
@ -1301,18 +1287,12 @@ endif
endif endif
# There's no good place to put this - here will do. # These will have been set by sysdeps/posix/Makefile.
ifeq ($(filter %posix, $(sysdirs)),) L_tmpnam ?= 1
L_tmpnam = 1 TMP_MAX ?= 0
TMP_MAX = 0 L_ctermid ?= 1
L_ctermid = 1 L_cuserid ?= 1
L_cuserid = 1
else
L_tmpnam = 20
TMP_MAX = 238328
L_ctermid = 9
L_cuserid = 9
endif
stdio_lim = $(common-objpfx)bits/stdio_lim.h stdio_lim = $(common-objpfx)bits/stdio_lim.h
$(stdio_lim:lim.h=%.h) $(stdio_lim:lim.h=%.d): $(stdio_lim:lim.h=%.st); @: $(stdio_lim:lim.h=%.h) $(stdio_lim:lim.h=%.d): $(stdio_lim:lim.h=%.st); @:

4
Rules
View File

@ -27,7 +27,7 @@ endif
all: # Don't let the default goal come from Makeconfig. all: # Don't let the default goal come from Makeconfig.
include ../Makeconfig include $(firstword $(..) ../)Makeconfig
ifndef subdir ifndef subdir
Each subdirectory makefile must define the `subdir' variable. Each subdirectory makefile must define the `subdir' variable.
@ -65,7 +65,7 @@ endif
# See below. This must be set before Makerules processes it. # See below. This must be set before Makerules processes it.
before-compile += $(common-objpfx)bits/stdio_lim.h before-compile += $(common-objpfx)bits/stdio_lim.h
include ../Makerules include $(..)Makerules
.PHONY: subdir_lib .PHONY: subdir_lib
subdir_lib: lib-noranlib subdir_lib: lib-noranlib

View File

@ -88,6 +88,8 @@ build-omitfp = @omitfp@
build-bounded = @bounded@ build-bounded = @bounded@
build-static-nss = @static_nss@ build-static-nss = @static_nss@
add-ons = @add_ons@ add-ons = @add_ons@
add-on-subdirs = @add_on_subdirs@
sysdeps-add-ons = @sysdeps_add_ons@
cross-compiling = @cross_compiling@ cross-compiling = @cross_compiling@
force-install = @force_install@ force-install = @force_install@

232
configure vendored
View File

@ -313,7 +313,7 @@ ac_includes_default="\
# include <unistd.h> # include <unistd.h>
#endif" #endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons base_machine submachine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_ssp libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS' ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_ssp libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
ac_subst_files='' ac_subst_files=''
# Initialize some variables set by options. # Initialize some variables set by options.
@ -891,7 +891,6 @@ Optional Features:
Optional Packages: Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed)
--with-gd=DIR find libgd include dir and library with prefix DIR --with-gd=DIR find libgd include dir and library with prefix DIR
--with-gd-include=DIR find libgd include files in DIR --with-gd-include=DIR find libgd include files in DIR
--with-gd-lib=DIR find libgd library files in DIR --with-gd-lib=DIR find libgd library files in DIR
@ -1406,22 +1405,6 @@ fi
# This will get text that should go into config.make. # This will get text that should go into config.make.
config_vars= config_vars=
# Check for a --with-gmp argument and set gmp-srcdir in config.make.
# Check whether --with-gmp or --without-gmp was given.
if test "${with_gmp+set}" = set; then
withval="$with_gmp"
case "$with_gmp" in
yes) { { echo "$as_me:$LINENO: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&5
echo "$as_me: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&2;}
{ (exit 1); exit 1; }; } ;;
''|no) ;;
*) config_vars="$config_vars
gmp-srcdir = $withval" ;;
esac
fi;
# Check for a --with-gd argument and set libgd-LDFLAGS in config.make. # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
# Check whether --with-gd or --without-gd was given. # Check whether --with-gd or --without-gd was given.
@ -1618,15 +1601,9 @@ fi
# Check whether --enable-add-ons or --disable-add-ons was given. # Check whether --enable-add-ons or --disable-add-ons was given.
if test "${enable_add_ons+set}" = set; then if test "${enable_add_ons+set}" = set; then
enableval="$enable_add_ons" enableval="$enable_add_ons"
case "$enableval" in
yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
add_ons_automatic=yes
test "$add_ons" = "*" && add_ons= ;;
*) add_ons=`echo "$enableval" | sed 's/,/ /g'`
add_ons_automatic=no ;;
esac
else else
add_ons= add_ons_automatic=no enable_add_ons=yes
fi; fi;
@ -1844,7 +1821,7 @@ echo "$as_me: error: --with-cpu requires an argument" >&2;}
fi; fi;
# An add-on can set this when it the tuple to disable the sanity check below. # An add-on can set this when it wants to disable the sanity check below.
libc_config_ok=no libc_config_ok=no
@ -1852,6 +1829,18 @@ libc_config_ok=no
subdirs="$subdirs " subdirs="$subdirs "
case "$enable_add_ons" in
''|no) add_ons= ;;
yes|'*')
add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
sed 's@/[^/]*$@@' | sort | uniq`
add_ons_automatic=yes
;;
*) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
add_ons_automatic=no ;;
esac
configured_add_ons=
add_ons_sfx= add_ons_sfx=
add_ons_pfx= add_ons_pfx=
if test x"$add_ons" != x; then if test x"$add_ons" != x; then
@ -1885,13 +1874,6 @@ echo "$as_me: error:
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
;; ;;
esac esac
# Test whether such a subdir really exists.
test -d $srcdir/$f || {
{ { echo "$as_me:$LINENO: error: add-on directory \"$f\" does not exist" >&5
echo "$as_me: error: add-on directory \"$f\" does not exist" >&2;}
{ (exit 1); exit 1; }; }
}
done done
# Now source each add-on's configure fragment. # Now source each add-on's configure fragment.
@ -1901,19 +1883,81 @@ echo "$as_me: error: add-on directory \"$f\" does not exist" >&2;}
# whether it goes into the list to be actually used in the build. # whether it goes into the list to be actually used in the build.
use_add_ons= use_add_ons=
for libc_add_on in $add_ons; do for libc_add_on in $add_ons; do
libc_add_on_frag=$srcdir/$libc_add_on/configure # Test whether such a directory really exists.
if test -r $libc_add_on_frag; then # It can be absolute, or relative to $srcdir, or relative to the build dir.
echo "$as_me:$LINENO: result: running configure fragment for add-on $libc_add_on" >&5 case "$libc_add_on" in
echo "${ECHO_T}running configure fragment for add-on $libc_add_on" >&6 /*)
. $libc_add_on_frag libc_add_on_srcdir=$libc_add_on
else ;;
{ echo "$as_me:$LINENO: WARNING: add-on fragment $libc_add_on_frag missing" >&5 *)
echo "$as_me: WARNING: add-on fragment $libc_add_on_frag missing" >&2;} test -d "$srcdir/$libc_add_on" || {
if test -d "$libc_add_on"; then
libc_add_on="`pwd`/$libc_add_on"
else
{ { echo "$as_me:$LINENO: error: add-on directory \"$libc_add_on\" does not exist" >&5
echo "$as_me: error: add-on directory \"$libc_add_on\" does not exist" >&2;}
{ (exit 1); exit 1; }; }
fi
}
libc_add_on_srcdir=$srcdir/$libc_add_on
;;
esac
libc_add_on_frag=$libc_add_on_srcdir/configure
libc_add_on_canonical=
if test -r "$libc_add_on_frag"; then
{ echo "$as_me:$LINENO: running configure fragment for add-on $libc_add_on" >&5
echo "$as_me: running configure fragment for add-on $libc_add_on" >&6;}
libc_add_on_canonical=unknown
libc_add_on_subdirs=
. "$libc_add_on_frag"
test -z "$libc_add_on" || {
configured_add_ons="$configured_add_ons $libc_add_on"
if test "x$libc_add_on_canonical" = xunknown; then
{ { echo "$as_me:$LINENO: error: fragment must set \$libc_add_on_canonical" >&5
echo "$as_me: error: fragment must set \$libc_add_on_canonical" >&2;}
{ (exit 1); exit 1; }; }
fi
for d in $libc_add_on_subdirs; do
case "$libc_add_on" in
/*) subdir_srcdir="$libc_add_on" ;;
*) subdir_srcdir="\$(..)$libc_add_on" ;;
esac
case "$d" in
.)
d="${libc_add_on_canonical:-$libc_add_on}"
;;
/*)
subdir_srcdir="$d"
;;
*)
subdir_srcdir="$subdir_srcdir/$d"
;;
esac
d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
add_on_subdirs="$add_on_subdirs $d"
test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
$d-srcdir = $subdir_srcdir"
done
}
fi fi
if test -n "$libc_add_on"; then if test -n "$libc_add_on"; then
if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
then
echo "$as_me:$LINENO: checking add-on $libc_add_on for preconfigure fragments" >&5
echo $ECHO_N "checking add-on $libc_add_on for preconfigure fragments... $ECHO_C" >&6
for frag in $frags; do
name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
echo $ECHO_N "$name $ECHO_C" >&6
. "$frag"
done
echo "$as_me:$LINENO: result: " >&5
echo "${ECHO_T}" >&6
fi
use_add_ons="$use_add_ons $libc_add_on" use_add_ons="$use_add_ons $libc_add_on"
add_ons_pfx="$add_ons_pfx $libc_add_on/" add_ons_pfx="$add_ons_pfx $libc_add_on/"
add_ons_sfx="$add_ons_sfx /$libc_add_on" test -z "$libc_add_on_canonical" ||
add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
fi fi
done done
# Use echo to strip excess whitespace. # Use echo to strip excess whitespace.
@ -1922,6 +1966,7 @@ fi
### ###
### I put this here to prevent those annoying emails from people who cannot ### I put this here to prevent those annoying emails from people who cannot
### read and try to compile glibc on unsupported platforms. --drepper ### read and try to compile glibc on unsupported platforms. --drepper
@ -2065,8 +2110,8 @@ done
# Find what sysdep directories exist. # Find what sysdep directories exist.
sysnames_add_ons=
sysnames= sysnames=
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for b in $base ''; do for b in $base ''; do
for m0 in $mach ''; do for m0 in $mach ''; do
for v in /$vendor ''; do for v in /$vendor ''; do
@ -2076,17 +2121,27 @@ for b in $base ''; do
for m in $mach ''; do for m in $mach ''; do
for d in $add_ons_pfx ''; do for d in $add_ons_pfx ''; do
for a in $add_ons_sfx ''; do for a in $add_ons_sfx ''; do
if test "$m0$m0sub$b$v$o$m$msub"; then if test -n "$m0$m0sub$b$v$o$m$msub"; then
try_srcdir="${srcdir}/"
case "$d" in
/*) try_srcdir= ;;
esac
try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a" try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
test -n "$enable_debug_configure" && test -n "$enable_debug_configure" &&
echo "$0 DEBUG: try $try" >&2 echo "$0 DEBUG: try $try" >&2
if test -d $srcdir/$try; then if test -d "$try_srcdir$try"; then
sysnames="$sysnames $try" sysnames="$sysnames $try"
{ test -n "$o" || test -n "$b"; } && os_used=t { test -n "$o" || test -n "$b"; } && os_used=t
{ test -n "$m" || test -n "$m0"; } && machine_used=t { test -n "$m" || test -n "$m0"; } && machine_used=t
case x${m0:-$m} in case x${m0:-$m} in
x*/$submachine) submachine_used=t ;; x*/$submachine) submachine_used=t ;;
esac esac
if test -n "$d"; then
case "$sysnames_add_ons" in
*" $d "*) ;;
*|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
esac
fi
fi fi
fi fi
done done
@ -2096,19 +2151,6 @@ for b in $base ''; do
done done
done done
done done
for d in $add_ons_pfx ''; do
for a in $add_ons_sfx ''; do
if test -n "$d" && test "$d" != "$a"; then
try="${d}sysdeps/generic${a}"
test -n "$enable_debug_configure" &&
echo "$0 DEBUG: try $try" >&2
if test -d $srcdir/$try; then
sysnames="$sysnames $try"
fi
fi
done
done
IFS="$ac_save_ifs"
if test -z "$os_used" && test "$os" != none; then if test -z "$os_used" && test "$os" != none; then
{ { echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5 { { echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5
@ -2195,6 +2237,10 @@ while test $# -gt 0; do
then then
implied="$implied $try" implied="$implied $try"
found=yes found=yes
case "$sysnames_add_ons" in
*" $d "*) ;;
*|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
esac
fi fi
done done
if test $found = no; then if test $found = no; then
@ -2234,6 +2280,65 @@ sysnames="$names $default_sysnames"
echo "$as_me:$LINENO: result: $default_sysnames" >&5 echo "$as_me:$LINENO: result: $default_sysnames" >&5
echo "${ECHO_T}$default_sysnames" >&6 echo "${ECHO_T}$default_sysnames" >&6
# Collect the list of add-ons that supply partial sysdeps trees.
sysdeps_add_ons=
for add_on in $add_ons; do
case "$add_on" in
/*) xsrcdir= ;;
*) xsrcdir="$srcdir/" ;;
esac
test -d "$xsrcdir$add_on/sysdeps" || {
case "$configured_add_ons " in
*" $add_on "*) ;;
*|'')
{ { echo "$as_me:$LINENO: error: add-on $add_on has no configure fragment or sysdeps tree" >&5
echo "$as_me: error: add-on $add_on has no configure fragment or sysdeps tree" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
continue
}
sysdeps_add_ons="$sysdeps_add_ons $add_on"
case "$sysnames_add_ons" in
*" $add_on/ "*) ;;
*|'')
{ echo "$as_me:$LINENO: WARNING: add-on $add_on contributed no sysdeps directories" >&5
echo "$as_me: WARNING: add-on $add_on contributed no sysdeps directories" >&2;}
continue ;;
esac
found=no
for d in $sysnames; do
case "$d" in
$add_on/sysdeps/*) ;;
*) continue ;;
esac
(cd "$xsrcdir$d" && for f in *[!~]; do
case "$f" in
sys|bits)
for ff in $f/*.h; do
test -d "$ff" || { test -e "$ff" && exit 88; }
done
;;
*)
test -d "$f" || { test -e "$f" && exit 88; }
;;
esac
done)
if test $? -eq 88; then
found=yes
break
fi
done
if test $found = no; then
{ echo "$as_me:$LINENO: WARNING: add-on $add_on contributed no useful sysdeps directories" >&5
echo "$as_me: WARNING: add-on $add_on contributed no useful sysdeps directories" >&2;}
fi
done
### Locate tools. ### Locate tools.
@ -7565,13 +7670,6 @@ if test $shared = default; then
shared=$elf shared=$elf
fi fi
if test x"$libc_cv_idn" = xyes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_LIBIDN 1
_ACEOF
fi
echo "$as_me:$LINENO: checking whether -fPIC is default" >&5 echo "$as_me:$LINENO: checking whether -fPIC is default" >&5
echo $ECHO_N "checking whether -fPIC is default... $ECHO_C" >&6 echo $ECHO_N "checking whether -fPIC is default... $ECHO_C" >&6
if test "${pic_default+set}" = set; then if test "${pic_default+set}" = set; then
@ -8259,9 +8357,11 @@ s,@host_vendor@,$host_vendor,;t t
s,@host_os@,$host_os,;t t s,@host_os@,$host_os,;t t
s,@subdirs@,$subdirs,;t t s,@subdirs@,$subdirs,;t t
s,@add_ons@,$add_ons,;t t s,@add_ons@,$add_ons,;t t
s,@add_on_subdirs@,$add_on_subdirs,;t t
s,@base_machine@,$base_machine,;t t s,@base_machine@,$base_machine,;t t
s,@submachine@,$submachine,;t t s,@submachine@,$submachine,;t t
s,@sysnames@,$sysnames,;t t s,@sysnames@,$sysnames,;t t
s,@sysdeps_add_ons@,$sysdeps_add_ons,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t

View File

@ -13,18 +13,6 @@ fi
# This will get text that should go into config.make. # This will get text that should go into config.make.
config_vars= config_vars=
# Check for a --with-gmp argument and set gmp-srcdir in config.make.
AC_ARG_WITH([gmp],
AC_HELP_STRING([--with-gmp=DIRECTORY],
[find GMP source code in DIRECTORY (not needed)]),
[
case "$with_gmp" in
yes) AC_MSG_ERROR([--with-gmp requires an argument; use --with-gmp=DIRECTORY]) ;;
''|no) ;;
*) config_vars="$config_vars
gmp-srcdir = $withval" ;;
esac
])
# Check for a --with-gd argument and set libgd-LDFLAGS in config.make. # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
AC_ARG_WITH([gd], AC_ARG_WITH([gd],
AC_HELP_STRING([--with-gd=DIR], AC_HELP_STRING([--with-gd=DIR],
@ -186,15 +174,9 @@ fi
dnl Generic infrastructure for drop-in additions to libc. dnl Generic infrastructure for drop-in additions to libc.
AC_ARG_ENABLE([add-ons], AC_ARG_ENABLE([add-ons],
AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@], AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
[configure and build add-ons in DIR1,DIR2,... search for add-ons if no parameter given]), [configure and build add-ons in DIR1,DIR2,...
[case "$enableval" in search for add-ons if no parameter given]),
yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'` , [enable_add_ons=yes])
add_ons_automatic=yes
test "$add_ons" = "*" && add_ons= ;;
*) add_ons=`echo "$enableval" | sed 's/,/ /g'`
add_ons_automatic=no ;;
esac],
[add_ons= add_ons_automatic=no])
dnl Let the user avoid using TLS. Don't know why but... dnl Let the user avoid using TLS. Don't know why but...
AC_ARG_WITH([tls], AC_ARG_WITH([tls],
@ -344,7 +326,7 @@ AC_ARG_WITH([cpu],
]) ])
# An add-on can set this when it the tuple to disable the sanity check below. # An add-on can set this when it wants to disable the sanity check below.
libc_config_ok=no libc_config_ok=no
dnl Having this here, though empty, makes sure that if add-ons' fragments dnl Having this here, though empty, makes sure that if add-ons' fragments
@ -352,6 +334,18 @@ dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
dnl our AC_OUTPUT will actually use it. dnl our AC_OUTPUT will actually use it.
AC_CONFIG_SUBDIRS() AC_CONFIG_SUBDIRS()
case "$enable_add_ons" in
''|no) add_ons= ;;
yes|'*')
add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
sed 's@/[[^/]]*$@@' | sort | uniq`
add_ons_automatic=yes
;;
*) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
add_ons_automatic=no ;;
esac
configured_add_ons=
add_ons_sfx= add_ons_sfx=
add_ons_pfx= add_ons_pfx=
if test x"$add_ons" != x; then if test x"$add_ons" != x; then
@ -373,11 +367,6 @@ if test x"$add_ons" != x; then
*** \`localedata' add-on.]) *** \`localedata' add-on.])
;; ;;
esac esac
# Test whether such a subdir really exists.
test -d $srcdir/$f || {
AC_MSG_ERROR(add-on directory \"$f\" does not exist)
}
done done
# Now source each add-on's configure fragment. # Now source each add-on's configure fragment.
@ -387,23 +376,81 @@ if test x"$add_ons" != x; then
# whether it goes into the list to be actually used in the build. # whether it goes into the list to be actually used in the build.
use_add_ons= use_add_ons=
for libc_add_on in $add_ons; do for libc_add_on in $add_ons; do
libc_add_on_frag=$srcdir/$libc_add_on/configure # Test whether such a directory really exists.
if test -r $libc_add_on_frag; then # It can be absolute, or relative to $srcdir, or relative to the build dir.
AC_MSG_RESULT(running configure fragment for add-on $libc_add_on) case "$libc_add_on" in
. $libc_add_on_frag /*)
else libc_add_on_srcdir=$libc_add_on
AC_MSG_WARN(add-on fragment $libc_add_on_frag missing) ;;
*)
test -d "$srcdir/$libc_add_on" || {
if test -d "$libc_add_on"; then
libc_add_on="`pwd`/$libc_add_on"
else
AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist)
fi
}
libc_add_on_srcdir=$srcdir/$libc_add_on
;;
esac
libc_add_on_frag=$libc_add_on_srcdir/configure
libc_add_on_canonical=
if test -r "$libc_add_on_frag"; then
AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on)
libc_add_on_canonical=unknown
libc_add_on_subdirs=
. "$libc_add_on_frag"
test -z "$libc_add_on" || {
configured_add_ons="$configured_add_ons $libc_add_on"
if test "x$libc_add_on_canonical" = xunknown; then
AC_MSG_ERROR(fragment must set \$libc_add_on_canonical)
fi
for d in $libc_add_on_subdirs; do
case "$libc_add_on" in
/*) subdir_srcdir="$libc_add_on" ;;
*) subdir_srcdir="\$(..)$libc_add_on" ;;
esac
case "$d" in
.)
d="${libc_add_on_canonical:-$libc_add_on}"
;;
/*)
subdir_srcdir="$d"
;;
*)
subdir_srcdir="$subdir_srcdir/$d"
;;
esac
d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
add_on_subdirs="$add_on_subdirs $d"
test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
$d-srcdir = $subdir_srcdir"
done
}
fi fi
if test -n "$libc_add_on"; then if test -n "$libc_add_on"; then
if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
then
AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments)
for frag in $frags; do
name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'`
echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
. "$frag"
done
AC_MSG_RESULT()
fi
use_add_ons="$use_add_ons $libc_add_on" use_add_ons="$use_add_ons $libc_add_on"
add_ons_pfx="$add_ons_pfx $libc_add_on/" add_ons_pfx="$add_ons_pfx $libc_add_on/"
add_ons_sfx="$add_ons_sfx /$libc_add_on" test -z "$libc_add_on_canonical" ||
add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
fi fi
done done
# Use echo to strip excess whitespace. # Use echo to strip excess whitespace.
add_ons="`echo $use_add_ons`" add_ons="`echo $use_add_ons`"
fi fi
AC_SUBST(add_ons) AC_SUBST(add_ons)
AC_SUBST(add_on_subdirs)
### ###
@ -552,8 +599,8 @@ dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
changequote([,])dnl changequote([,])dnl
# Find what sysdep directories exist. # Find what sysdep directories exist.
sysnames_add_ons=
sysnames= sysnames=
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for b in $base ''; do for b in $base ''; do
for m0 in $mach ''; do for m0 in $mach ''; do
for v in /$vendor ''; do for v in /$vendor ''; do
@ -563,17 +610,27 @@ for b in $base ''; do
for m in $mach ''; do for m in $mach ''; do
for d in $add_ons_pfx ''; do for d in $add_ons_pfx ''; do
for a in $add_ons_sfx ''; do for a in $add_ons_sfx ''; do
if test "$m0$m0sub$b$v$o$m$msub"; then if test -n "$m0$m0sub$b$v$o$m$msub"; then
try_srcdir="${srcdir}/"
case "$d" in
/*) try_srcdir= ;;
esac
try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a" try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
test -n "$enable_debug_configure" && test -n "$enable_debug_configure" &&
echo "$0 [DEBUG]: try $try" >&2 echo "$0 [DEBUG]: try $try" >&2
if test -d $srcdir/$try; then if test -d "$try_srcdir$try"; then
sysnames="$sysnames $try" sysnames="$sysnames $try"
{ test -n "$o" || test -n "$b"; } && os_used=t { test -n "$o" || test -n "$b"; } && os_used=t
{ test -n "$m" || test -n "$m0"; } && machine_used=t { test -n "$m" || test -n "$m0"; } && machine_used=t
case x${m0:-$m} in case x${m0:-$m} in
x*/$submachine) submachine_used=t ;; x*/$submachine) submachine_used=t ;;
esac esac
if test -n "$d"; then
case "$sysnames_add_ons" in
*" $d "*) ;;
*|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
esac
fi
fi fi
fi fi
done done
@ -583,19 +640,6 @@ for b in $base ''; do
done done
done done
done done
for d in $add_ons_pfx ''; do
for a in $add_ons_sfx ''; do
if test -n "$d" && test "$d" != "$a"; then
try="${d}sysdeps/generic${a}"
test -n "$enable_debug_configure" &&
echo "$0 DEBUG: try $try" >&2
if test -d $srcdir/$try; then
sysnames="$sysnames $try"
fi
fi
done
done
IFS="$ac_save_ifs"
if test -z "$os_used" && test "$os" != none; then if test -z "$os_used" && test "$os" != none; then
AC_MSG_ERROR(Operating system $os is not supported.) AC_MSG_ERROR(Operating system $os is not supported.)
@ -676,6 +720,10 @@ while test $# -gt 0; do
then then
implied="$implied $try" implied="$implied $try"
found=yes found=yes
case "$sysnames_add_ons" in
*" $d "*) ;;
*|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
esac
fi fi
done done
if test $found = no; then if test $found = no; then
@ -715,6 +763,61 @@ AC_SUBST(sysnames)
# The other names were emitted during the scan. # The other names were emitted during the scan.
AC_MSG_RESULT($default_sysnames) AC_MSG_RESULT($default_sysnames)
# Collect the list of add-ons that supply partial sysdeps trees.
sysdeps_add_ons=
for add_on in $add_ons; do
case "$add_on" in
/*) xsrcdir= ;;
*) xsrcdir="$srcdir/" ;;
esac
test -d "$xsrcdir$add_on/sysdeps" || {
case "$configured_add_ons " in
*" $add_on "*) ;;
*|'')
AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
;;
esac
continue
}
sysdeps_add_ons="$sysdeps_add_ons $add_on"
case "$sysnames_add_ons" in
*" $add_on/ "*) ;;
*|'')
AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
continue ;;
esac
found=no
for d in $sysnames; do
case "$d" in
$add_on/sysdeps/*) ;;
*) continue ;;
esac
(cd "$xsrcdir$d" && for f in *[[!~]]; do
case "$f" in
sys|bits)
for ff in $f/*.h; do
test -d "$ff" || { test -e "$ff" && exit 88; }
done
;;
*)
test -d "$f" || { test -e "$f" && exit 88; }
;;
esac
done)
if test $? -eq 88; then
found=yes
break
fi
done
if test $found = no; then
AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
fi
done
AC_SUBST(sysdeps_add_ons)
### Locate tools. ### Locate tools.
@ -2026,10 +2129,6 @@ if test $shared = default; then
shared=$elf shared=$elf
fi fi
if test x"$libc_cv_idn" = xyes; then
AC_DEFINE(HAVE_LIBIDN)
fi
AC_CACHE_CHECK([whether -fPIC is default], pic_default, AC_CACHE_CHECK([whether -fPIC is default], pic_default,
[pic_default=yes [pic_default=yes
cat > conftest.c <<EOF cat > conftest.c <<EOF

View File

@ -1,5 +1,5 @@
# Makefile for csu code for GNU C library. # Makefile for csu code for GNU C library.
# Copyright (C) 1995-2004, 2005 Free Software Foundation, Inc. # Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -95,7 +95,7 @@ $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
vpath initfini.c $(full_config_sysdirs) vpath initfini.c $(sysdirs)
$(objpfx)initfini.s: initfini.c $(before-compile) $(objpfx)initfini.s: initfini.c $(before-compile)
$(compile.c) -S $(CFLAGS-initfini.s) -finhibit-size-directive \ $(compile.c) -S $(CFLAGS-initfini.s) -finhibit-size-directive \
@ -200,8 +200,7 @@ $(objpfx)abi-tag.h: $(..)abi-tags
if test -r $@.new; then mv -f $@.new $@; \ if test -r $@.new; then mv -f $@.new $@; \
else echo >&2 'This configuration not matched in $<'; exit 1; fi else echo >&2 'This configuration not matched in $<'; exit 1; fi
all-Banner-files = $(wildcard $(addsuffix /Banner, \ all-Banner-files = $(wildcard $(addsuffix /Banner,$(subdir-srcdirs)))
$(addprefix $(..), $(subdirs))))
$(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files) $(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files)
$(make-target-directory) $(make-target-directory)
(case $(config-os) in \ (case $(config-os) in \

9
hurd/Depend Normal file
View File

@ -0,0 +1,9 @@
# This file says that the mach subdirectory should appear before this one.
# 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.
mach

View File

@ -1,4 +1,4 @@
# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -31,10 +31,10 @@ libcidn-routines := punycode toutf8 nfkc stringprep rfc3454 profiles idna \
iconvme iconvme
include ../Makeconfig include $(..)Makeconfig
libcidn-inhibit-o = $(filter-out .os,$(object-suffixes)) libcidn-inhibit-o = $(filter-out .os,$(object-suffixes))
include ../Rules include $(..)Rules
$(objpfx)libcidn.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a $(objpfx)libcidn.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a

3
libidn/configure vendored
View File

@ -1,5 +1,8 @@
# This file is generated from configure.in by Autoconf. DO NOT EDIT! # This file is generated from configure.in by Autoconf. DO NOT EDIT!
libc_add_on_canonical=
libc_add_on_subdirs=.
# Get this defined in config.h for main source code to test. # Get this defined in config.h for main source code to test.
cat >>confdefs.h <<\_ACEOF cat >>confdefs.h <<\_ACEOF
#define HAVE_LIBIDN 1 #define HAVE_LIBIDN 1

View File

@ -1,5 +1,8 @@
dnl glibc configure fragment for libidn add-on dnl glibc configure fragment for libidn add-on
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
libc_add_on_canonical=
libc_add_on_subdirs=.
# Get this defined in config.h for main source code to test. # Get this defined in config.h for main source code to test.
AC_DEFINE([HAVE_LIBIDN]) AC_DEFINE([HAVE_LIBIDN])

View File

@ -108,7 +108,7 @@ generated += $(libm-tests-generated) libm-test.stmp
# This is needed for dependencies # This is needed for dependencies
before-compile += $(objpfx)libm-test.c before-compile += $(objpfx)libm-test.c
ulps-file = $(firstword $(wildcard $(config-sysdirs:%=$(..)%/libm-test-ulps))) ulps-file = $(firstword $(wildcard $(sysdirs:%=%/libm-test-ulps)))
$(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp $(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp

View File

@ -1,3 +1,33 @@
2006-02-27 Roland McGrath <roland@redhat.com>
* sysdeps/pthread/Subdirs: List nptl here too.
* configure (libc_add_on_canonical): New variable.
* sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
* sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
self to get main source tree's file.
* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
* Makefile: Use $(sysdirs) in vpath directive.
* sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
(CPPFLAGS-timer_routines.c): Likewise.
* Makeconfig (includes): Variable removed.
2006-02-26 Roland McGrath <roland@redhat.com> 2006-02-26 Roland McGrath <roland@redhat.com>
* sysdeps/generic/pt-raise.c: Moved to ... * sysdeps/generic/pt-raise.c: Moved to ...

View File

@ -1,4 +1,4 @@
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. # Copyright (C) 2002,2003,2005,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. # Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -28,7 +28,3 @@ static-thread-library = $(common-objpfx)nptl/libpthread.a
bounded-thread-library = $(common-objpfx)nptl/libpthread_b.a bounded-thread-library = $(common-objpfx)nptl/libpthread_b.a
rpath-dirs += nptl rpath-dirs += nptl
ifneq ($(subdir),nptl)
includes += -I$(..)nptl
endif

View File

@ -528,7 +528,7 @@ $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
endif endif
ifeq ($(build-shared),yes) ifeq ($(build-shared),yes)
vpath pt-initfini.c $(full_config_sysdirs) vpath pt-initfini.c $(sysdirs)
$(objpfx)pt-initfini.s: pt-initfini.c $(objpfx)pt-initfini.s: pt-initfini.c
$(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \ $(compile.c) -S $(CFLAGS-pt-initfini.s) -finhibit-size-directive \

9
nptl/configure vendored
View File

@ -1,6 +1,5 @@
# This is only to keep the GNU C library configure mechanism happy.
# This is a shell script fragment sourced by the main configure script. # This is a shell script fragment sourced by the main configure script.
# We have nothing we need to add here. # We're obliged to give here the canonical name that will be used to
# # as a subdirectory to search for in other add-ons' sysdeps trees.
# Perhaps some day we will need a real configuration script for different
# kernel versions or so. libc_add_on_canonical=nptl

View File

@ -1,4 +1,4 @@
# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. # Copyright (C) 2002,2003,2004,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. # Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -18,7 +18,6 @@
# 02111-1307 USA. # 02111-1307 USA.
ifeq ($(subdir),csu) ifeq ($(subdir),csu)
CFLAGS-libc-start.c += -I../nptl
routines += unwind-resume routines += unwind-resume
shared-only-routines += unwind-resume shared-only-routines += unwind-resume
CFLAGS-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables
@ -31,7 +30,6 @@ endif
ifeq ($(subdir),rt) ifeq ($(subdir),rt)
librt-sysdep_routines += timer_routines librt-cancellation rt-unwind-resume librt-sysdep_routines += timer_routines librt-cancellation rt-unwind-resume
librt-shared-only-routines += rt-unwind-resume librt-shared-only-routines += rt-unwind-resume
CPPFLAGS-timer_routines.c = -I../nptl
CFLAGS-librt-cancellation.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-librt-cancellation.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-rt-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-rt-unwind-resume.c += -fexceptions -fasynchronous-unwind-tables

View File

@ -1 +1,2 @@
nptl
nptl_db nptl_db

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/alpha/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/i386/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. /* Copyright (C) 1999,2002,2004,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -16,10 +16,17 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */ 02111-1307 USA. */
#include <tcb-offsets.h> /* We want an #include_next, but we are the main source file.
So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <vfork.S>
#else
# include <tcb-offsets.h>
/* Save the PID value. */ /* Save the PID value. */
#define SAVE_PID \ # define SAVE_PID \
movl %gs:PID, %edx; \ movl %gs:PID, %edx; \
movl %edx, %eax; \ movl %edx, %eax; \
negl %eax; \ negl %eax; \
@ -28,11 +35,11 @@
1: movl %eax, %gs:PID 1: movl %eax, %gs:PID
/* Restore the old PID value in the parent. */ /* Restore the old PID value in the parent. */
#define RESTORE_PID \ # define RESTORE_PID \
testl %eax, %eax; \ testl %eax, %eax; \
je 1f; \ je 1f; \
movl %edx, %gs:PID; \ movl %edx, %gs:PID; \
1: 1:
# include_next <vfork.S>
#include <sysdeps/unix/sysv/linux/i386/vfork.S> #endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/ia64/clone2.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,3 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <tcb-offsets.h> So, #include ourselves and in that incarnation we can use #include_next. */
#include <sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S> #ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,3 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <tcb-offsets.h> So, #include ourselves and in that incarnation we can use #include_next. */
#include <sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S> #ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/s390/s390-32/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/s390/s390-64/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/sh/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,4 +1,4 @@
/* 4 instruction cycles not accessing cache and TLB are needed after /* 4 instruction cycles not accessing cache and TLB are needed after
trapa instruction to avoid an SH-4 silicon bug. */ trapa instruction to avoid an SH-4 silicon bug. */
#define NEED_SYSCALL_INST_PAD #define NEED_SYSCALL_INST_PAD
#include <sysdeps/unix/sysv/linux/sh/lowlevellock.h> #include_next <lowlevellock.h>

View File

@ -1,2 +1,10 @@
#include <nptl/pthreadP.h> /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/sleep.c> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <sleep.c>
#else
/* This defines the CANCELLATION_P macro, which sleep.c checks for. */
# include <pthreadP.h>
# include_next <sleep.c>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/sparc/sparc32/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/sparc/sparc64/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -1,2 +1,9 @@
#define RESET_PID /* We want an #include_next, but we are the main source file.
#include <sysdeps/unix/sysv/linux/x86_64/clone.S> So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <clone.S>
#else
# define RESET_PID
# include_next <clone.S>
#endif

View File

@ -16,9 +16,16 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */ 02111-1307 USA. */
#include <tcb-offsets.h> /* We want an #include_next, but we are the main source file.
So, #include ourselves and in that incarnation we can use #include_next. */
#ifndef INCLUDED_SELF
# define INCLUDED_SELF
# include <vfork.S>
#else
#define SAVE_PID \ # include <tcb-offsets.h>
# define SAVE_PID \
movl %fs:PID, %esi; \ movl %fs:PID, %esi; \
movl $0x80000000, %ecx; \ movl $0x80000000, %ecx; \
movl %esi, %edx; \ movl %esi, %edx; \
@ -26,10 +33,11 @@
cmove %ecx, %edx; \ cmove %ecx, %edx; \
movl %edx, %fs:PID movl %edx, %fs:PID
#define RESTORE_PID \ # define RESTORE_PID \
testq %rax, %rax; \ testq %rax, %rax; \
je 1f; \ je 1f; \
movl %esi, %fs:PID; \ movl %esi, %fs:PID; \
1: 1:
#include <sysdeps/unix/sysv/linux/x86_64/vfork.S> # include_next <vfork.S>
#endif

View File

@ -5,23 +5,101 @@
# Written by Ulrich Drepper <drepper@cygnus.com>, 1998. # Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
BEGIN { BEGIN {
cnt = 0 cnt = split(subdirs, all) + 1
dnt = 0 dnt = 0
} }
# Let input files have comments.
{ sub(/[ ]*#.*$/, "") }
NF == 0 { next }
{ {
if ($1 ~ /depend/) { subdir = type = FILENAME;
from[dnt] = $2 sub(/^.*\//, "", type);
to[dnt] = $3 sub(/\/[^/]+$/, "", subdir);
++dnt sub(/^.*\//, "", subdir);
} else { thisdir = "";
all[cnt++] = $1
}
} }
type == "Depend" && NF == 1 {
from[dnt] = subdir;
to[dnt] = $1;
++dnt;
next
}
type == "Subdirs" && NF == 1 { thisdir = $1 }
type == "Subdirs" && NF == 2 && $1 == "first" {
thisdir = $2;
# Make the first dir in the list depend on this one.
from[dnt] = all[1];
to[dnt] = thisdir;
++dnt;
}
type == "Subdirs" && NF == 2 && $1 == "inhibit" {
inhibit[$2] = subdir;
next
}
type == "Subdirs" && thisdir {
all[cnt++] = thisdir;
if (FILENAME ~ (srcpfx ? /^\.\.\/sysdeps\// : /^sysdeps\//) \
|| system("test -d " srcpfx thisdir) == 0) {
# This Subdirs file is in the main source tree,
# or this subdirectory exists in the main source tree.
this_srcdir = srcpfx thisdir
}
else {
# The Subdirs file comes from an add-on that should have the subdirectory.
dir = FILENAME;
do
sub(/\/[^/]+$/, "", dir);
while (dir !~ /\/sysdeps$/);
sub(/\/sysdeps$/, "", dir);
if (system("test -d " dir "/" thisdir) == 0)
dir = dir "/" thisdir;
else {
sub(/\/[^/]+$/, "", dir);
if (system("test -d " dir "/" thisdir) == 0)
dir = dir "/" thisdir;
else {
print FILENAME ":" FNR ":", "cannot find", thisdir > "/dev/stderr";
exit 2
}
}
file = dir "/Depend";
if (srcpfx)
sub(/^\.\.\//, "", dir);
if (dir !~ /^\/.*$/)
dir = "$(..)" dir;
print thisdir "-srcdir", ":=", dir;
}
file = this_srcdir "/Depend";
if (system("test -f " file) == 0) {
ARGV[ARGC++] = file;
# Emit a dependency on the implicitly-read file.
if (srcpfx)
sub(/^\.\.\//, "", file);
if (file !~ /^\/.*$/)
file = "$(..)" file;
print "$(common-objpfx)sysd-sorted:", "$(wildcard", file ")";
}
next
}
{
print FILENAME ":" FNR ":", "what type of file is this?" > "/dev/stderr";
exit 2
}
END { END {
do { do {
moved = 0 moved = 0
for (i = 0; i < dnt; ++i) { for (i = 0; i < dnt; ++i) {
for (j = 0; j < cnt; ++j) { for (j = 1; j < cnt; ++j) {
if (all[j] == from[i]) { if (all[j] == from[i]) {
for (k = j + 1; k < cnt; ++k) { for (k = j + 1; k < cnt; ++k) {
if (all[k] == to[i]) { if (all[k] == to[i]) {
@ -42,11 +120,20 @@ END {
break break
} }
} }
} while (moved) } while (moved);
printf "sorted-subdirs = " # Make sure we list "elf" last.
for (i = 0; i < cnt; ++i) { saw_elf = 0;
printf "%s ", all[i]; printf "sorted-subdirs :=";
for (i = 1; i < cnt; ++i) {
if (all[i] in inhibit)
continue;
if (all[i] == "elf")
saw_elf = 1;
else
printf " %s", all[i];
} }
printf "\n" printf "%s\n", saw_elf ? " elf" : "";
print "sysd-sorted-done := t"
} }

View File

@ -83,8 +83,7 @@ routines := $(strip $(routines) $(mpn-routines)) \
dbl2mpn ldbl2mpn \ dbl2mpn ldbl2mpn \
mpn2flt mpn2dbl mpn2ldbl mpn2flt mpn2dbl mpn2ldbl
aux += fpioconst mp_clz_tab aux += fpioconst mp_clz_tab
distribute := $(distribute) $(mpn-headers) gen-mpn-copy fpioconst.h \ distribute := $(distribute) $(mpn-headers) fpioconst.h tst-putenvmod.c
tst-putenvmod.c
tests-extras += tst-putenvmod tests-extras += tst-putenvmod
extra-objs += tst-putenvmod.os extra-objs += tst-putenvmod.os

View File

@ -1,35 +0,0 @@
#!/bin/sh
translations='
sparc64 sparc/sparc64
sparc32/v8 sparc/sparc8
sparc32 sparc
x86/pentium i386/i586
x86 i386
m68k/mc68000 m68k/m68000
m68k/mc68020 m68k/m68020
m88k/mc88100 m88k/m88100
m88k/mc88110 m88k/m88110
mips3 mips/mips3
mips2 mips
hppa/hppa1_1 hppa/hppa1.1
alpha/ev5 alpha/alphaev5
power rs6000
am29000 a29k
'
set $translations
while [ $# -ge 2 ]; do
gmp=$1 glibc=$2
shift; shift
echo 'mpn-found-1 := $(filter $(gmp-srcdir)/mpn/'$gmp'/%,$(mpn-found))
mpn-copy-1 := $(patsubst $(gmp-srcdir)/mpn/'$gmp'/%,$(sysdep_dir)/'$glibc\
'/%,$(mpn-found-1))
mpn-found := $(filter-out $(mpn-found-1),$(mpn-found))
mpn-copy-sysdep := $(mpn-copy-sysdep) $(mpn-copy-1)
$(mpn-copy-1): $(sysdep_dir)/'$glibc'/%: \
$(ignore gmp2glibc.sed) $(gmp-srcdir)/mpn/'$gmp'/%
$(gmp2glibc)'
done
exit 0

View File

@ -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. # Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
@ -32,8 +32,7 @@ endif
ifeq ($(subdir),stdio-common) ifeq ($(subdir),stdio-common)
errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c, \ errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c,$(sysdirs) .)))
$(full_config_sysdirs) .)))
ifeq ($(versioning),yes) ifeq ($(versioning),yes)
$(objpfx)errlist-compat.c: $(errlist-c) $(..)sysdeps/gnu/errlist-compat.awk \ $(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 - \ $(CC) -S $(CPPFLAGS) $(CFLAGS) -DNOT_IN_libc -DEMIT_ERR_MAX $< -o - \
| sed -n 's/^.*@@@[^0-9]*\([0-9]*\)[^0-9]*@@@.*$$/\1/p'` \ | sed -n 's/^.*@@@[^0-9]*\([0-9]*\)[^0-9]*@@@.*$$/\1/p'` \
-f $(..)sysdeps/gnu/errlist-compat.awk \ -f $(..)sysdeps/gnu/errlist-compat.awk \
$(wildcard $(patsubst %,$(..)%/Versions,\ $(wildcard $(sysdirs:=/Versions)) > $@T
$(config-sysdirs) $(add-ons))) > $@T
# Make it unwritable so noone will edit it by mistake. # Make it unwritable so noone will edit it by mistake.
-chmod a-w $@T -chmod a-w $@T
mv -f $@T $@ mv -f $@T $@
@ -59,7 +57,8 @@ $(objpfx)errlist-compat.h: $(objpfx)errlist-compat.c
generated += errlist-compat.c errlist-compat.h generated += errlist-compat.c errlist-compat.h
# This will force the generation above to happy if need be. # 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 endif
ifeq ($(subdir),login) ifeq ($(subdir),login)

View File

@ -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

View File

@ -305,9 +305,6 @@ generated += stub-syscalls.c
endif endif
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. # This is the end of the pipeline for compiling the syscall stubs.
# The stdin in assembler with cpp using sysdep.h macros. # The stdin in assembler with cpp using sysdep.h macros.
# Be sure to disable debugging info since it would all just say "<stdin>". # 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)) $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
for dir in $(+sysdep_dirs); do \ for dir in $(+sysdep_dirs); do \
test -f $$dir/syscalls.list && \ 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; \ test $$dir = $(..)sysdeps/unix && break; \
done > $@T done > $@T
mv -f $@T $@ mv -f $@T $@