mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
Don't build libnsl for new ABIs
For architectures and ABIs that are added in version 2.29 or later the option --enable-obsolete-nsl is no longer available, and no libnsl compatibility library is built.
This commit is contained in:
parent
f0458cf4f9
commit
462d348caa
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
||||
2018-09-24 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* scripts/haveversions.awk: New file.
|
||||
* Makerules ($(common-objpfx)Versions.def)
|
||||
($(common-objpfx)Versions.all, $(common-objpfx)Versions.v.i)
|
||||
($(common-objpfx)sysd-versions, $(common-objpfx)versions.stmp):
|
||||
Move rules ...
|
||||
* Makeconfig ($(common-objpfx)Versions.def)
|
||||
($(common-objpfx)Versions.all, $(common-objpfx)Versions.v.i)
|
||||
($(common-objpfx)sysd-versions, $(common-objpfx)versions.stmp):
|
||||
... here.
|
||||
($(common-objpfx)Versions.mk): New rule. Include it.
|
||||
* nis/Makefile [!have-GLIBC_2.28]: Don't build any targets.
|
||||
Emit error if build-obsolete-nsl = yes.
|
||||
* manual/install.texi (Configuring and compiling): Describe
|
||||
--enable-obsolete-nsl as unavaiable after version 2.28.
|
||||
* INSTALL: Regenerate.
|
||||
|
||||
2018-09-21 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
* NEWS: Add note about new TLE support on powerpc64le.
|
||||
|
5
INSTALL
5
INSTALL
@ -227,7 +227,10 @@ if 'CFLAGS' is specified it must enable optimization. For example:
|
||||
By default, libnsl is only built as shared library for backward
|
||||
compatibility and the NSS modules libnss_compat, libnss_nis and
|
||||
libnss_nisplus are not built at all. Use this option to enable
|
||||
libnsl with all depending NSS modules and header files.
|
||||
libnsl with all depending NSS modules and header files. For
|
||||
architectures and ABIs that have been added after version 2.28 of
|
||||
the GNU C Library this option is not available, and the libnsl
|
||||
compatibility library is not built.
|
||||
|
||||
'--disable-crypt'
|
||||
Do not install the passphrase-hashing library 'libcrypt' or the
|
||||
|
55
Makeconfig
55
Makeconfig
@ -1157,6 +1157,61 @@ $(common-objpfx)dl-tunable-list.stmp: \
|
||||
touch $@
|
||||
endif
|
||||
|
||||
# Generate version maps, but wait until sysdep-subdirs is known
|
||||
ifeq ($(sysd-sorted-done),t)
|
||||
ifeq ($(build-shared),yes)
|
||||
-include $(common-objpfx)sysd-versions
|
||||
-include $(common-objpfx)Versions.mk
|
||||
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
|
||||
common-generated += $(version-maps)
|
||||
postclean-generated += sysd-versions Versions.all abi-versions.h \
|
||||
Versions.def Versions.v.i Versions.v Versions.mk
|
||||
|
||||
ifndef avoid-generated
|
||||
ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
|
||||
sysd-versions-force = FORCE
|
||||
FORCE:
|
||||
endif
|
||||
|
||||
$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
|
||||
$(common-objpfx)Versions.v
|
||||
LC_ALL=C $(AWK) -f $^ > $@T
|
||||
mv -f $@T $@
|
||||
|
||||
$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
|
||||
$(common-objpfx)soversions.i \
|
||||
$(common-objpfx)Versions.def
|
||||
{ while read which lib version setname; do \
|
||||
test x"$$which" = xDEFAULT || continue; \
|
||||
test -z "$$setname" || echo "$$lib : $$setname"; \
|
||||
done < $(word 2,$^); \
|
||||
cat $(word 3,$^); \
|
||||
} | LC_ALL=C $(AWK) -f $< > $@T
|
||||
mv -f $@T $@
|
||||
$(common-objpfx)Versions.mk: $(..)scripts/haveversions.awk \
|
||||
$(common-objpfx)Versions.all
|
||||
$(AWK) -f $^ > $@T
|
||||
mv -f $@T $@
|
||||
# See %.v/%.v.i implicit rules in Makeconfig.
|
||||
$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
|
||||
$(wildcard $(sysdirs:%=%/Versions)) \
|
||||
$(sysd-versions-force)
|
||||
$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
|
||||
$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
|
||||
$(common-objpfx)Versions.v \
|
||||
$(..)scripts/versions.awk
|
||||
( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
|
||||
cat $(word 2,$^) \
|
||||
| LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
|
||||
-v move_if_change='$(move-if-change)' \
|
||||
-f $(word 3,$^); \
|
||||
) > $(common-objpfx)sysd-versionsT
|
||||
mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
|
||||
touch $@
|
||||
endif # avoid-generated
|
||||
endif # $(build-shared) = yes
|
||||
endif # sysd-sorted-done
|
||||
|
||||
# The name under which the run-time dynamic linker is installed.
|
||||
# We are currently going for the convention that `/lib/ld.so.1'
|
||||
# names the SVR4/ELF ABI-compliant dynamic linker.
|
||||
|
50
Makerules
50
Makerules
@ -446,56 +446,6 @@ object-suffixes-left := $(all-object-suffixes)
|
||||
include $(o-iterator)
|
||||
endif
|
||||
|
||||
# Generate version maps, but wait until sysdep-subdirs is known
|
||||
ifeq ($(sysd-sorted-done),t)
|
||||
ifeq ($(build-shared),yes)
|
||||
-include $(common-objpfx)sysd-versions
|
||||
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
|
||||
common-generated += $(version-maps)
|
||||
postclean-generated += sysd-versions Versions.all abi-versions.h \
|
||||
Versions.def Versions.v.i Versions.v
|
||||
|
||||
ifndef avoid-generated
|
||||
ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs))
|
||||
sysd-versions-force = FORCE
|
||||
FORCE:
|
||||
endif
|
||||
|
||||
$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \
|
||||
$(common-objpfx)Versions.v
|
||||
LC_ALL=C $(AWK) -f $^ > $@T
|
||||
mv -f $@T $@
|
||||
|
||||
$(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \
|
||||
$(common-objpfx)soversions.i \
|
||||
$(common-objpfx)Versions.def
|
||||
{ while read which lib version setname; do \
|
||||
test x"$$which" = xDEFAULT || continue; \
|
||||
test -z "$$setname" || echo "$$lib : $$setname"; \
|
||||
done < $(word 2,$^); \
|
||||
cat $(word 3,$^); \
|
||||
} | LC_ALL=C $(AWK) -f $< > $@T
|
||||
mv -f $@T $@
|
||||
# See %.v/%.v.i implicit rules in Makeconfig.
|
||||
$(common-objpfx)Versions.v.i: $(wildcard $(subdirs:%=$(..)%/Versions)) \
|
||||
$(wildcard $(sysdirs:%=%/Versions)) \
|
||||
$(sysd-versions-force)
|
||||
$(common-objpfx)sysd-versions: $(common-objpfx)versions.stmp
|
||||
$(common-objpfx)versions.stmp: $(common-objpfx)Versions.all \
|
||||
$(common-objpfx)Versions.v \
|
||||
$(..)scripts/versions.awk
|
||||
( echo 'sysd-versions-subdirs = $(subdirs) $(config-sysdirs)' ; \
|
||||
cat $(word 2,$^) \
|
||||
| LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
|
||||
-v move_if_change='$(move-if-change)' \
|
||||
-f $(word 3,$^); \
|
||||
) > $(common-objpfx)sysd-versionsT
|
||||
mv -f $(common-objpfx)sysd-versionsT $(common-objpfx)sysd-versions
|
||||
touch $@
|
||||
endif # avoid-generated
|
||||
endif # $(build-shared) = yes
|
||||
endif # sysd-sorted-done
|
||||
|
||||
# Generate .dT files as we compile.
|
||||
compile-mkdep-flags = -MD -MP -MF $@.dt -MT $@
|
||||
compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
|
||||
|
@ -259,6 +259,9 @@ compatibility and the NSS modules libnss_compat, libnss_nis and
|
||||
libnss_nisplus are not built at all.
|
||||
Use this option to enable libnsl with all depending NSS modules and
|
||||
header files.
|
||||
For architectures and ABIs that have been added after version 2.28 of
|
||||
@theglibc{} this option is not available, and the libnsl compatibility
|
||||
library is not built.
|
||||
|
||||
@item --disable-crypt
|
||||
Do not install the passphrase-hashing library @file{libcrypt} or the
|
||||
|
10
nis/Makefile
10
nis/Makefile
@ -22,6 +22,14 @@ subdir := nis
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
ifndef have-GLIBC_2.28
|
||||
|
||||
ifeq ($(build-obsolete-nsl),yes)
|
||||
$(error --enabe-obsolete-nsl is not available)
|
||||
endif
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(build-obsolete-nsl),yes)
|
||||
headers := $(wildcard rpcsvc/*.[hx])
|
||||
|
||||
@ -80,6 +88,8 @@ libnsl-inhibit-o = $(filter-out .os,$(object-suffixes))
|
||||
|
||||
endif # not $(build-obsolete-nsl)
|
||||
|
||||
endif # have-GLIBC_2.28
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
||||
|
23
scripts/haveversions.awk
Normal file
23
scripts/haveversions.awk
Normal file
@ -0,0 +1,23 @@
|
||||
# This script reads the contents of Versions.all and outputs a definition
|
||||
# of variable have-VERSION for each symbol version VERSION which is
|
||||
# defined.
|
||||
#
|
||||
# The have-VERSION variables can be used to check that a port supports a
|
||||
# particular symbol version in makefiles due to its base version. A test
|
||||
# for a compatibility symbol which was superseded with a GLIBC_2.15
|
||||
# version could be tested like this:
|
||||
#
|
||||
# ifdef HAVE-GLIBC_2.14
|
||||
# tests += tst-spawn4-compat
|
||||
# endif # HAVE-GLIBC_2.14
|
||||
#
|
||||
# (NB: GLIBC_2.14 is the symbol version that immediately precedes
|
||||
# GLIBC_2.15.)
|
||||
|
||||
NF == 1 && $1 != "}" {
|
||||
haveversion[$1] = 1
|
||||
}
|
||||
END {
|
||||
for (i in haveversion)
|
||||
printf "have-%s = yes\n", i
|
||||
}
|
Loading…
Reference in New Issue
Block a user