mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 00:10:10 +00:00
Update.
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:
parent
7503605ecc
commit
9afc8a5964
78
ChangeLog
78
ChangeLog
@ -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.
|
||||||
|
24
Makeconfig
24
Makeconfig
@ -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
|
||||||
|
90
Makerules
90
Makerules
@ -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
33
Rules
@ -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
|
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
|
@ -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}
|
||||||
|
@ -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 *
|
||||||
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user