1998-03-30 12:53  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/i486/bits/string.h (__strcat_c) [__i686__]: Correct
	scanning for \0.
	(__strncat_g): Add i686 specific code.

1998-03-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* manual/install.texi (Reporting Bugs): Ask to include section
	names in reports.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Emit
	guard against direct inclusion.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	Rework support for libc_nonshared.a:
	* Makeconfig (object-suffixes-for-libc): New variable.
	* Rules: Remove handling of static-only and shared-only routines.
	* Makerules: Handle them here instead.  Use
	object-suffixes-for-libc instead of object-suffixes when dealing
	with libc objects.
	(object-suffixes-for-rules): Remove variable.
	(elide-routines.oS): Elide all routines except static-only
	routines.
	($(objpfx)stamp.oS): Special rule for when static-only-routines is
	empty.
	(installed-libcs): Remove special case for .oS.
	(rmobjs): Likewise.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (do-collate-test, do-xfrm-test, do-tst-fmon,
	do-tst-rpmatch): New targets.
	(test): Use them.
	(install-locales): Ignore comment lines.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile ($(objpfx)ld.so): Depend on version script.
	($(objpfx)trusted-dirs.h): Depend also on $(..)Makeconfig.
	($(objpfx)rtldtbl.h): Likewise.
	(CPPFLAGS-dl-load.c): Fix reference to object directory.

1998-03-30 09:36  Ulrich Drepper  <drepper@cygnus.com>

	* manual/string.texi (Finding Tokens in a String): Extend strsep
	description and correct example.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/socket.texi: Remove misguided explicit line breaks and
	fix the formatting problem instead by reformulating the
	paragraphs.
	* manual/filesys.texi: Likewise.
	* manual/conf.texi: Likewise.  Don't typeset table with index
	fonts, that looks worse than a minimally overfull line.

1998-03-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* nscd/Makefile (nscd-modules): Move definition outside of
	conditional.

	* pwd/Makefile: Use have-thread-library to test for thread
	library.

1998-03-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nss/getXXent_r.c (INTERNAL): Remove unused variable current_nip.

	* iconvdata/uhc.c (gconv): Remove unused variable idx.

1998-03-30  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Dist: Add lddlibc4.c.
This commit is contained in:
Ulrich Drepper 1998-03-30 13:01:46 +00:00
parent 7503605ecc
commit 9afc8a5964
18 changed files with 232 additions and 124 deletions

View File

@ -1,3 +1,81 @@
1998-03-30 12:53 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/i486/bits/string.h (__strcat_c) [__i686__]: Correct
scanning for \0.
(__strncat_g): Add i686 specific code.
1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/install.texi (Reporting Bugs): Ask to include section
names in reports.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Emit
guard against direct inclusion.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Rework support for libc_nonshared.a:
* Makeconfig (object-suffixes-for-libc): New variable.
* Rules: Remove handling of static-only and shared-only routines.
* Makerules: Handle them here instead. Use
object-suffixes-for-libc instead of object-suffixes when dealing
with libc objects.
(object-suffixes-for-rules): Remove variable.
(elide-routines.oS): Elide all routines except static-only
routines.
($(objpfx)stamp.oS): Special rule for when static-only-routines is
empty.
(installed-libcs): Remove special case for .oS.
(rmobjs): Likewise.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (do-collate-test, do-xfrm-test, do-tst-fmon,
do-tst-rpmatch): New targets.
(test): Use them.
(install-locales): Ignore comment lines.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile ($(objpfx)ld.so): Depend on version script.
($(objpfx)trusted-dirs.h): Depend also on $(..)Makeconfig.
($(objpfx)rtldtbl.h): Likewise.
(CPPFLAGS-dl-load.c): Fix reference to object directory.
1998-03-30 09:36 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi (Finding Tokens in a String): Extend strsep
description and correct example.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/socket.texi: Remove misguided explicit line breaks and
fix the formatting problem instead by reformulating the
paragraphs.
* manual/filesys.texi: Likewise.
* manual/conf.texi: Likewise. Don't typeset table with index
fonts, that looks worse than a minimally overfull line.
1998-03-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nscd/Makefile (nscd-modules): Move definition outside of
conditional.
* pwd/Makefile: Use have-thread-library to test for thread
library.
1998-03-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nss/getXXent_r.c (INTERNAL): Remove unused variable current_nip.
* iconvdata/uhc.c (gconv): Remove unused variable idx.
1998-03-30 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/Dist: Add lddlibc4.c.
1998-03-29 Ulrich Drepper <drepper@cygnus.com> 1998-03-29 Ulrich Drepper <drepper@cygnus.com>
* nss/getXXent_r.c: Correctly handle failing setXXent function. * nss/getXXent_r.c: Correctly handle failing setXXent function.

View File

@ -571,7 +571,7 @@ endif
# Various things use $(object-suffixes) to know what all to make. # Various things use $(object-suffixes) to know what all to make.
# The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX}) # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
# to pass different flags for each flavor. # to pass different flags for each flavor.
libtypes = $(foreach o,$(object-suffixes-for-rules),$(libtype$o)) libtypes = $(foreach o,$(object-suffixes),$(libtype$o))
all-object-suffixes := .o .os .op .og .ob .oS all-object-suffixes := .o .os .op .og .ob .oS
object-suffixes := object-suffixes :=
ifeq (yes,$(build-static)) ifeq (yes,$(build-static))
@ -589,13 +589,6 @@ CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag)
libtype.os := lib%_pic.a libtype.os := lib%_pic.a
# This can be changed by a sysdep makefile # This can be changed by a sysdep makefile
pic-ccflag = -fPIC pic-ccflag = -fPIC
# Special library that contains the static-only routines for libc.
libtype.oS = lib%_nonshared.a
# Must build the routines as PIC, though, because they can end up in (users')
# shared objects. We don't want to use CFLAGS-os because users may, for
# example, make that processor-specific.
CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
endif endif
ifeq (yes,$(build-profile)) ifeq (yes,$(build-profile))
# Under --enable-profile, we will build a static library of profiled objects. # Under --enable-profile, we will build a static library of profiled objects.
@ -625,6 +618,21 @@ CFLAGS-.ob = -g -fbounded-pointers
libtype.ob = lib%_b.a libtype.ob = lib%_b.a
endif endif
object-suffixes-for-libc := $(object-suffixes)
ifeq (yes,$(build-shared))
# Build special library that contains the static-only routines for libc.
object-suffixes-for-libc += .oS
# Must build the routines as PIC, though, because they can end up in (users')
# shared objects. We don't want to use CFLAGS-os because users may, for
# example, make that processor-specific.
CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
CPPFLAGS-.oS = $(CPPFLAGS-.o)
libtype.oS = lib%_nonshared.a
endif
+gnu-stabs = $(shell echo>&2 '*** BARF ON ME') +gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
ifndef BUILD_CC ifndef BUILD_CC

View File

@ -172,12 +172,6 @@ endef
$(common-objpfx)dummy.d: $(common-objpfx)dummy.d:
echo '# .s files cannot contain includes, so they need no deps.' > $@ echo '# .s files cannot contain includes, so they need no deps.' > $@
object-suffixes-for-rules := $(object-suffixes)
ifeq (yes,$(build-shared))
object-suffixes-for-rules += .oS
endif
# It matters that this set of rules, for compiling from sources in # It matters that this set of rules, for compiling from sources in
# the current directory (the $srcdir/$subdir) come before the # the current directory (the $srcdir/$subdir) come before the
# generated sysdep rules in included from sysd-rules below. When # generated sysdep rules in included from sysd-rules below. When
@ -186,21 +180,21 @@ endif
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: %.S $(before-compile); $$(compile-command.S) $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: %.S $(before-compile); $(+make-deps) $(objpfx)%.d: %.S $(before-compile); $(+make-deps)
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: %.s $(before-compile); $$(compile-command.s) $(objpfx)%$o: %.s $(before-compile); $$(compile-command.s)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: %.s $(common-objpfx)dummy.d; $(make-dummy-dep) $(objpfx)%.d: %.s $(common-objpfx)dummy.d; $(make-dummy-dep)
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: %.c $(before-compile); $$(compile-command.c) $(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: %.c $(before-compile); $(+make-deps) $(objpfx)%.d: %.c $(before-compile); $(+make-deps)
@ -212,21 +206,21 @@ ifdef objpfx
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S) $(objpfx)%$o: $(objpfx)%.S $(before-compile); $$(compile-command.S)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: $(objpfx)%.S $(before-compile); $(+make-deps) $(objpfx)%.d: $(objpfx)%.S $(before-compile); $(+make-deps)
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: $(objpfx)%.s $(before-compile); $$(compile-command.s) $(objpfx)%$o: $(objpfx)%.s $(before-compile); $$(compile-command.s)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: $(objpfx)%.s $(common-objpfx)dummy.d; $(make-dummy-dep) $(objpfx)%.d: $(objpfx)%.s $(common-objpfx)dummy.d; $(make-dummy-dep)
define o-iterator-doit define o-iterator-doit
$(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c) $(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
endef endef
object-suffixes-left := $(object-suffixes-for-rules) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
$(objpfx)%.d: $(objpfx)%.c $(before-compile); $(+make-deps) $(objpfx)%.d: $(objpfx)%.c $(before-compile); $(+make-deps)
endif endif
@ -379,6 +373,34 @@ $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
$(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so) $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so)
endef endef
ifndef libc.so-version
# Undefine this because it can't work when we libc.so is unversioned.
static-only-routines =
endif
elide-routines.oS = $(filter-out $(static-only-routines),\
$(routines) $(aux) $(sysdep_routines))
ifdef static-only-routines
# These routines are to be omitted from the shared library object,
# so we replace the PIC objects for them with the empty object file.
$(static-only-routines:%=$(objpfx)%.os): %.os: $(common-objpfx)empty.os
rm -f $@
ln $< $@
endif
ifdef shared-only-routines
# If we have versioned code we don't need the old versions in any of the
# static libraries.
define o-iterator-doit
$(shared-only-routines:%=$(objpfx)%$o): %$o: $(common-objpfx)empty$o;
rm -f $$@
ln $$< $$@
endef
object-suffixes-left := $(filter-out .os,$(object-suffixes))
include $(o-iterator)
endif
# Don't try to use -lc when making libc.so itself. # Don't try to use -lc when making libc.so itself.
# Also omits crti.o and crtn.o, which we do not want # Also omits crti.o and crtn.o, which we do not want
# since we define our own `.init' section specially. # since we define our own `.init' section specially.
@ -475,7 +497,7 @@ MAKEFLAGS := $(MAKEFLAGS)r
# Make sure that object files are not removed # Make sure that object files are not removed
# when they are intermediates between sources and library members. # when they are intermediates between sources and library members.
.PRECIOUS: $(addprefix $(objpfx)%,$(object-suffixes)) .PRECIOUS: $(addprefix $(objpfx)%,$(all-object-suffixes))
# Make sure that the parent library archive is never removed. # Make sure that the parent library archive is never removed.
.PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c)) .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
@ -508,7 +530,7 @@ o-objects = $(patsubst %.o,%$o,$(filter-out $(patsubst %,$(objpfx)%.o,\
$(elide-routines$o)),\ $(elide-routines$o)),\
$(objects))) $(objects)))
libobjs: $(foreach o,$(object-suffixes),\ libobjs: $(foreach o,$(object-suffixes-for-libc),\
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(notdir $(o-objects)))) $(notdir $(o-objects))))
lib-noranlib: libobjs lib-noranlib: libobjs
@ -517,8 +539,8 @@ others: $(addprefix $(objpfx),$(install-lib))
ifndef objects ifndef objects
# Create the stamp$o files to keep the parent makefile happy. # Create the stamp$o files to keep the parent makefile happy.
subdir_lib: $(foreach o,$(object-suffixes),$(objpfx)stamp$o) subdir_lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o)
$(foreach o,$(object-suffixes),$(objpfx)stamp$o): $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o):
$(make-target-directory) $(make-target-directory)
rm -f $@; > $@ rm -f $@; > $@
else else
@ -532,7 +554,7 @@ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(addsuffix .%,$(filter-out $(elide-routines$o),$(notdir $(objects:.o=))))): \ $(addsuffix .%,$(filter-out $(elide-routines$o),$(notdir $(objects:.o=))))): \
$(objpfx)stamp.% ; $(objpfx)stamp.% ;
endef endef
object-suffixes-left := $(object-suffixes) object-suffixes-left := $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
# The pattern rule tells Make to remake $(objpfx)stamp.% as # The pattern rule tells Make to remake $(objpfx)stamp.% as
@ -544,7 +566,11 @@ include $(o-iterator)
define o-iterator-doit define o-iterator-doit
$(objpfx)stamp$o: $(objpfx)stamp%: $(o-objects); $$(do-ar) $(objpfx)stamp$o: $(objpfx)stamp%: $(o-objects); $$(do-ar)
endef endef
ifdef static-only-routines
object-suffixes-left := $(object-suffixes-for-libc)
else
object-suffixes-left := $(object-suffixes) object-suffixes-left := $(object-suffixes)
endif
include $(o-iterator) include $(o-iterator)
define do-ar define do-ar
topdir=`cd $(..).; pwd`; \ topdir=`cd $(..).; pwd`; \
@ -558,6 +584,13 @@ O%-lib = $(..)$(patsubst %,$(libtype$*),c)
endif endif
ifndef static-only-routines
subdir_lib: $(objpfx)stamp.oS
$(objpfx)stamp.oS:
$(make-target-directory)
rm -f $@; > $@
endif
# Rules to update the $(ar-symtab-name) member with ranlib, # Rules to update the $(ar-symtab-name) member with ranlib,
# one for each object flavor. # one for each object flavor.
define o-iterator-doit define o-iterator-doit
@ -573,22 +606,13 @@ subdirs-stamps := $(foreach d,$(subdirs),$(common-objpfx)$d/stamp%)
subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps)) subdirs-stamp-o = $(subst %,$o,$(subdirs-stamps))
$(subdirs-stamps): subdir_lib; $(subdirs-stamps): subdir_lib;
endif endif
object-suffixes-left = $(object-suffixes) object-suffixes-left = $(object-suffixes-for-libc)
include $(o-iterator) include $(o-iterator)
ifeq (yes,$(build-shared))
$(common-objpfx)$(patsubst %,$(libtype.oS),c)($(ar-symtab-name)): \
$(common-objpfx)$(patsubst %,$(libtype.oS),c)(\
$(patsubst %,%.oS,$(static-only-routines))) \
$(wildcard $(foreach d,$(subdirs),$(common-objpfx)$d/stamp.oS))
$(SHELL) $(..)./autolock.sh \
$(common-objpfx)$(patsubst %,$(libtype.oS),c).lck \
$(RANLIB) $(common-objpfx)$(patsubst %,$(libtype.oS),c)
endif
# This makes all the object files. # This makes all the object files.
.PHONY: objects objs .PHONY: objects objs
objects objs: $(foreach o,$(object-suffixes),$(o-objects)) \ objects objs: $(foreach o,$(object-suffixes-for-libc),$(o-objects)) \
$(addprefix $(objpfx),$(extra-objs)) $(addprefix $(objpfx),$(extra-objs))
# Canned sequence for building an extra library archive. # Canned sequence for building an extra library archive.
@ -632,14 +656,9 @@ endef
# should install libc.a; this way "make install" in a subdir is guaranteed # should install libc.a; this way "make install" in a subdir is guaranteed
# to install everything it changes. # to install everything it changes.
ifdef objects ifdef objects
installed-libcs := $(foreach o,$(object-suffixes),\ installed-libcs := $(foreach o,$(filter-out .so,$(object-suffixes-for-libc)),\
$(inst_libdir)/$(patsubst %,$(libtype$o),\ $(inst_libdir)/$(patsubst %,$(libtype$o),\
$(libprefix)$(libc-name))) $(libprefix)$(libc-name)))
installed-libcs := $(filter-out %_pic.a,$(installed-libcs))
ifdef libc.so-version
installed-libcs += $(inst_libdir)/$(patsubst %,$(libtype.oS),\
$(libprefix)$(libc-name))
endif
install: $(installed-libcs) install: $(installed-libcs)
$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib
$(make-target-directory) $(make-target-directory)
@ -925,9 +944,8 @@ common-mostlyclean:
-rm -f core $(common-objpfx)stub-$(subdir) -rm -f core $(common-objpfx)stub-$(subdir)
$(rmobjs) $(rmobjs)
define rmobjs define rmobjs
$(foreach o,$(object-suffixes), $(foreach o,$(object-suffixes-for-libc),
-rm -f $(objpfx)stamp$o $(o-objects)) -rm -f $(objpfx)stamp$o $(o-objects))
-rm -f $(objpfx)stamp.oS $(patsubst %,$(objpfx)%.oS,$(static-only-routines))
endef endef
# Also remove the dependencies and generated source files. # Also remove the dependencies and generated source files.

33
Rules
View File

@ -188,36 +188,3 @@ $(common-objpfx)dummy$o: $(common-objpfx)dummy.c $(before-compile);
endef endef
object-suffixes-left := $(object-suffixes) object-suffixes-left := $(object-suffixes)
include $(o-iterator) include $(o-iterator)
ifndef libc.so-version
# Undefine this because it can't work when we libc.so is unversioned.
static-only-routines =
endif
ifdef static-only-routines
# These routines are to be omitted from the shared library object,
# so we replace the PIC objects for them with the empty object file.
$(static-only-routines:%=$(objpfx)%.os): %.os: $(common-objpfx)empty.os
rm -f $@
ln $< $@
touch $@
subdir_lib: $(objpfx)stamp.oS
$(objpfx)stamp.oS: $(objpfx)stamp%: $(static-only-routines:%=$(objpfx)%.oS)
$(do-ar)
$(common-objpfx)$(patsubst %,$(libtype.oS),c)(\
$(addsuffix .%,$(static-only-routines))): $(objpfx)stamp.%;
endif
ifdef shared-only-routines
# If we have versioned code we don't need the old versions in any of the
# static libraries.
define o-iterator-doit
$(shared-only-routines:%=$(objpfx)%$o): %$o: $(common-objpfx)empty$o;
rm -f $$@
ln $$< $$@
touch $$@
endef
object-suffixes-left := $(filter-out .os,$(object-suffixes))
include $(o-iterator)
endif

View File

@ -110,7 +110,8 @@ $(rtld-ldscript): $(rtld-ldscript-in) $(rtld-parms)
-e 's#@@rtld-base@@#$(rtld-base)#' $< >$@ -e 's#@@rtld-base@@#$(rtld-base)#' $< >$@
endif endif
$(objpfx)ld.so: $(objpfx)librtld.os $(addprefix $(objpfx),$(rtld-ldscript)) $(load-map-file) $(objpfx)ld.so: $(objpfx)librtld.os $(addprefix $(objpfx),$(rtld-ldscript)) \
$(ld-map)
$(rtld-link) -Wl,-soname=$(rtld-installed-name) $(rtld-link) -Wl,-soname=$(rtld-installed-name)
define rtld-link define rtld-link
@ -136,18 +137,18 @@ endif
# libraries when using LD_LIBRARY_PATH in a setuid program. The user can # libraries when using LD_LIBRARY_PATH in a setuid program. The user can
# add directories to the list by defining $(user-defined-trusted-dirs) # add directories to the list by defining $(user-defined-trusted-dirs)
# before starting make. # before starting make.
$(objpfx)trusted-dirs.h: Makefile $(objpfx)trusted-dirs.h: Makefile $(..)Makeconfig
$(make-target-directory) $(make-target-directory)
(for dir in `echo "$(default-rpath) $(user-defined-trusted-dirs)" | \ (for dir in `echo "$(default-rpath) $(user-defined-trusted-dirs)" | \
sed 's/:/ /g'`; do \ sed 's/:/ /g'`; do \
echo " \"$$dir\","; \ echo " \"$$dir\","; \
done;) > $@T done;) > $@T
mv -f $@T $@ mv -f $@T $@
$(objpfx)rtldtbl.h: Makefile genrtldtbl.awk $(objpfx)rtldtbl.h: Makefile $(..)Makeconfig genrtldtbl.awk
$(make-target-directory) $(make-target-directory)
echo "$(default-rpath)" | awk -f genrtldtbl.awk > $@T echo "$(default-rpath)" | awk -f genrtldtbl.awk > $@T
mv -f $@T $@ mv -f $@T $@
CPPFLAGS-dl-load.c = -I$(objdir)/$(subdir) CPPFLAGS-dl-load.c = -I$(objpfx).
CFLAGS-dl-load.c += -Wno-uninitialized CFLAGS-dl-load.c += -Wno-uninitialized
# Specify the dependencies of libdl.so; its commands come from the generic # Specify the dependencies of libdl.so; its commands come from the generic

View File

@ -2730,7 +2730,6 @@ gconv (struct gconv_step *step, struct gconv_step_data *data,
/* Two-byte character. First test whether the next /* Two-byte character. First test whether the next
character is also available. */ character is also available. */
int inchar2; int inchar2;
int idx;
if (cnt + 1 >= inchars) if (cnt + 1 >= inchars)
{ {

View File

@ -60,12 +60,16 @@ $(inst_i18ndir)/locales/%: locales/%; $(do-install)
ifeq (no,$(cross-compiling)) ifeq (no,$(cross-compiling))
tests: $(objpfx)collate-test $(objpfx)xfrm-test $(objpfx)tst-fmon \ .PHONY: do-collate-test do-xfrm-test do-tst-fmon do-tst-rpmatch
$(objpfx)tst-rpmatch tests: do-collate-test do-xfrm-test do-tst-fmon do-tst-rpmatch
$(SHELL) -e sort-test.sh $(common-objpfx) $(test-input) do-collate-test: sort-test.sh $(objpfx)collate-test $(test-input)
$(SHELL) -e tst-fmon.sh $(common-objpfx) tst-fmon.data $(SHELL) -e $< $(common-objpfx) $(test-input)
$(SHELL) -e tst-locale.sh $(common-objpfx) do-xfrm-test: tst-fmon.sh $(objpfx)xfrm-test tst-fmon.data
$(SHELL) -e tst-rpmatch.sh $(common-objpfx) $(SHELL) -e $< $(common-objpfx) tst-fmon.data
do-tst-fmon: tst-locale.sh $(objpfx)tst-fmon $(ld-test-srcs)
$(SHELL) -e $< $(common-objpfx)
do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch
$(SHELL) -e $< $(common-objpfx)
endif endif
# Sometimes the whole collection of locale files should be installed. # Sometimes the whole collection of locale files should be installed.
@ -75,6 +79,7 @@ else
LOCALEDEF=$(common-objpfx)locale/localedef LOCALEDEF=$(common-objpfx)locale/localedef
endif endif
install-locales: install-locales:
(while read locale charset; do \ while read locale charset; do \
case $$locale in \#*) continue;; esac; \
$(LOCALEDEF) -c -i $$locale -f $$charset $$locale; \ $(LOCALEDEF) -c -i $$locale -f $$charset $$locale; \
done) < SUPPORTED done < SUPPORTED

View File

@ -315,10 +315,6 @@ Here are the symbolic constants for use as the @var{parameter} argument
to @code{sysconf}. The values are all integer constants (more to @code{sysconf}. The values are all integer constants (more
specifically, enumeration type values). specifically, enumeration type values).
@c This table runs a bit wide.
@iftex
@indexfonts
@end iftex
@table @code @table @code
@comment unistd.h @comment unistd.h
@comment POSIX.1 @comment POSIX.1
@ -608,7 +604,7 @@ Inquire about the parameter corresponding to @code{_POSIX_TTY_NAME_MAX}.
@comment POSIX.1 @comment POSIX.1
@item _SC_THREAD_DESTRUCTOR_ITERATIONS @item _SC_THREAD_DESTRUCTOR_ITERATIONS
Inquire about the parameter corresponding to Inquire about the parameter corresponding to
@code{_POSIX_THREAD_DESTRUCTOR_@*ITERATIONS}. @code{_POSIX_THREAD_DESTRUCTOR_ITERATIONS}.
@comment unistd.h @comment unistd.h
@comment POSIX.1 @comment POSIX.1
@ -964,9 +960,6 @@ Inquire about the parameter corresponding to @code{NL_SETMAX}.
@item _SC_NL_TEXTMAX @item _SC_NL_TEXTMAX
Inquire about the parameter corresponding to @code{NL_TEXTMAX}. Inquire about the parameter corresponding to @code{NL_TEXTMAX}.
@end table @end table
@iftex
@textfonts
@end iftex
@node Examples of Sysconf @node Examples of Sysconf
@subsection Examples of @code{sysconf} @subsection Examples of @code{sysconf}

View File

@ -86,9 +86,8 @@ Permission to read or search a component of the file name was denied.
@end table @end table
@end deftypefun @end deftypefun
Here is an example showing how you could implement the behavior of GNU's@* You could implement the behavior of GNU's @w{@code{getcwd (NULL, 0)}}
@w{@code{getcwd (NULL, 0)}} using only the standard behavior of using only the standard behavior of @code{getcwd}:
@code{getcwd}:
@smallexample @smallexample
char * char *

View File

@ -406,4 +406,6 @@ doesn't tell you, that's a bug in the manual. Report that too! If the
function's behavior disagrees with the manual, then either the library function's behavior disagrees with the manual, then either the library
or the manual has a bug, so report the disagreement. If you find any or the manual has a bug, so report the disagreement. If you find any
errors or omissions in this manual, please report them to the Internet errors or omissions in this manual, please report them to the Internet
address @email{bug-glibc-manual@@gnu.org}. address @email{bug-glibc-manual@@gnu.org}. If you refer to specific
sections when reporting on the manual, please include the section names
for easier identification.

View File

@ -791,8 +791,8 @@ packaged inside a structure of type @code{struct in_addr}. It would
be better if the usage were made consistent, but it is not hard to extract be better if the usage were made consistent, but it is not hard to extract
the integer from the structure or put the integer into a structure. the integer from the structure or put the integer into a structure.
The following basic definitions for Internet addresses appear in the The following basic definitions for Internet addresses are declared in
header file@*@file{netinet/in.h}: the header file @file{netinet/in.h}:
@pindex netinet/in.h @pindex netinet/in.h
@comment netinet/in.h @comment netinet/in.h
@ -868,10 +868,10 @@ own variables to this value.
@pindex arpa/inet.h @pindex arpa/inet.h
@noindent @noindent
These additional functions for manipulating Internet addresses are These additional functions for manipulating Internet addresses are
declared in@*@file{arpa/inet.h}. They represent Internet addresses in declared in the header file @file{arpa/inet.h}. They represent Internet
network byte order; they represent network numbers and addresses in network byte order; they represent network numbers and
local-address-within-network numbers in host byte order. local-address-within-network numbers in host byte order. @xref{Byte
@xref{Byte Order}, for an explanation of network and host byte order. Order}, for an explanation of network and host byte order.
@comment arpa/inet.h @comment arpa/inet.h
@comment BSD @comment BSD
@ -2718,7 +2718,7 @@ this section.
@pindex sys/socket.h @pindex sys/socket.h
@noindent @noindent
Here is a table of socket-level option names; all are defined in the Here is a table of socket-level option names; all are defined in the
header file@*@file{sys/socket.h}. header file @file{sys/socket.h}.
@table @code @table @code
@comment sys/socket.h @comment sys/socket.h

View File

@ -1182,6 +1182,12 @@ moving pointer has to be done by the user. Successive calls to
@var{delimiter}, returning the address of the next token and updating @var{delimiter}, returning the address of the next token and updating
@var{string_ptr} to point to the beginning of the next token. @var{string_ptr} to point to the beginning of the next token.
If the input string contains more than one character from
@var{delimiter} in a row @code{strsep} returns an empty string for each
pair of characters from @var{delimiter}. This means that a program
normally should test for @code{strsep} returning an empty string before
processing it.
This function was introduced in 4.3BSD and therefore is widely available. This function was introduced in 4.3BSD and therefore is widely available.
@end deftypefun @end deftypefun
@ -1206,8 +1212,13 @@ token = strsep (&running, delimiters); /* token => "words" */
token = strsep (&running, delimiters); /* token => "separated" */ token = strsep (&running, delimiters); /* token => "separated" */
token = strsep (&running, delimiters); /* token => "by" */ token = strsep (&running, delimiters); /* token => "by" */
token = strsep (&running, delimiters); /* token => "spaces" */ token = strsep (&running, delimiters); /* token => "spaces" */
token = strsep (&running, delimiters); /* token => "" */
token = strsep (&running, delimiters); /* token => "" */
token = strsep (&running, delimiters); /* token => "" */
token = strsep (&running, delimiters); /* token => "and" */ token = strsep (&running, delimiters); /* token => "and" */
token = strsep (&running, delimiters); /* token => "" */
token = strsep (&running, delimiters); /* token => "punctuation" */ token = strsep (&running, delimiters); /* token => "punctuation" */
token = strsep (&running, delimiters); /* token => "" */
token = strsep (&running, delimiters); /* token => NULL */ token = strsep (&running, delimiters); /* token => NULL */
@end smallexample @end smallexample

View File

@ -25,13 +25,14 @@ routines := nscd_getpw_r nscd_getgr_r
include ../Makeconfig include ../Makeconfig
nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
getgrnam_r getgrgid_r dbg_log nscd_conf nscd_stat
ifeq ($(have-thread-library),yes) ifeq ($(have-thread-library),yes)
others := nscd others := nscd
install-sbin := nscd install-sbin := nscd
nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \
getgrnam_r getgrgid_r dbg_log nscd_conf nscd_stat
extra-objs := $(nscd-modules:=.o) extra-objs := $(nscd-modules:=.o)
endif endif

View File

@ -244,7 +244,6 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
while (! no_more) while (! no_more)
{ {
int is_last_nip = nip == last_nip; int is_last_nip = nip == last_nip;
service_user *current_nip = nip;
status = (*fct) (resbuf, buffer, buflen, __errno_location () status = (*fct) (resbuf, buffer, buflen, __errno_location ()
H_ERRNO_VAR); H_ERRNO_VAR);

View File

@ -29,7 +29,7 @@ routines := fgetpwent getpw putpwent \
include ../Rules include ../Rules
# We can later add the names of other thread packages here. # We can later add the names of other thread packages here.
ifneq (,$(findstring linuxthreads,$(add-ons))) ifeq ($(have-thread-library),yes)
CFLAGS-getpwuid_r.c = -DUSE_NSCD=1 CFLAGS-getpwuid_r.c = -DUSE_NSCD=1
CFLAGS-getpwnam_r.c = -DUSE_NSCD=1 CFLAGS-getpwnam_r.c = -DUSE_NSCD=1

View File

@ -742,10 +742,11 @@ __strcat_c (char *__dest, __const char __src[], size_t __srclen)
register unsigned long int __d0; register unsigned long int __d0;
register char *__tmp; register char *__tmp;
__asm__ __volatile__ __asm__ __volatile__
("repne; cmpsb" ("repne; scasb"
: "=S" (__tmp), "=&c" (__d0) : "=D" (__tmp), "=&c" (__d0)
: "0" (__dest), "1" (0xffffffff), "a" (0) : "0" (__dest), "1" (0xffffffff), "a" (0)
: "cc"); : "cc");
--__tmp;
#else #else
register char *__tmp = __dest - 1; register char *__tmp = __dest - 1;
__asm__ __volatile__ __asm__ __volatile__
@ -798,8 +799,27 @@ __strcat_g (char *__dest, __const char *__src)
__STRING_INLINE char * __STRING_INLINE char *
__strncat_g (char *__dest, __const char __src[], size_t __n) __strncat_g (char *__dest, __const char __src[], size_t __n)
{ {
register char *__tmp = __dest - 1; register char *__tmp = __dest;
register char __dummy; register char __dummy;
#ifdef __i686__
__asm__ __volatile__
("repne; scasb\n"
"decl %1\n\t"
"1:\n\t"
"decl %3\n\t"
"js 2f\n\t"
"movb (%2),%b0\n\t"
"movsb\n\t"
"testb %b0,%b0\n\t"
"jne 1b\n\t"
"decl %1\n"
"2:\n\t"
"movb $0,(%1)"
: "=&a" (__dummy), "=&D" (__tmp), "=&S" (__src), "=&r" (__n)
: "0" (0), "1" (__tmp), "2" (__src), "3" (__n)
: "memory", "cc");
#else
--__tmp;
__asm__ __volatile__ __asm__ __volatile__
("1:\n\t" ("1:\n\t"
"cmpb $0,1(%1)\n\t" "cmpb $0,1(%1)\n\t"
@ -816,10 +836,11 @@ __strncat_g (char *__dest, __const char __src[], size_t __n)
"jne 2b\n\t" "jne 2b\n\t"
"decl %1\n" "decl %1\n"
"3:\n\t" "3:\n\t"
"movb $0,(%1)\n\t" "movb $0,(%1)"
: "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n) : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n)
: "1" (__tmp), "2" (__src), "3" (__n) : "1" (__tmp), "2" (__src), "3" (__n)
: "memory", "cc"); : "memory", "cc");
#endif
return __dest; return __dest;
} }

View File

@ -5,6 +5,7 @@ init-first.h
kernel_sigaction.h kernel_sigaction.h
kernel_stat.h kernel_stat.h
kernel_termios.h kernel_termios.h
lddlibc4.c
llseek.c llseek.c
s_pread64.c s_pread64.c
s_pwrite64.c s_pwrite64.c

View File

@ -23,13 +23,18 @@ install-others += $(inst_includedir)/bits/syscall.h
# Generate the list of SYS_* macros for the system calls (__NR_* macros). # Generate the list of SYS_* macros for the system calls (__NR_* macros).
$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h
rm -f $(@:.h=.d) rm -f $(@:.h=.d)
echo > $(@:.d=.h).new \ { \
'/* Generated at libc build time from kernel syscall list. */' echo '/* Generated at libc build time from kernel syscall list. */';\
echo ''; \
echo '#ifndef _SYSCALL_H'; \
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
echo '#endif'; \
echo ''; \
SUNPRO_DEPENDENCIES='$(@:.h=.d) $(patsubst $(objpfx)%,$$(objpfx)%,\ SUNPRO_DEPENDENCIES='$(@:.h=.d) $(patsubst $(objpfx)%,$$(objpfx)%,\
$(@:.d=.h) $(@:.h=.d))' \ $(@:.d=.h) $(@:.h=.d))' \
$(CC) -E -x c $< -D_LIBC -dM | \ $(CC) -E -x c $< -D_LIBC -dM | \
sed -n >> $(@:.d=.h).new \ sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p'; \
's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' } > $(@:.d=.h).new
mv -f $(@:.d=.h).new $(@:.d=.h) mv -f $(@:.d=.h).new $(@:.d=.h)
$(inst_includedir)/bits/syscall.h: $(objpfx)syscall-list.h $(inst_includedir)/bits/syscall.h: $(objpfx)syscall-list.h