mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-04 16:10:04 +00:00
libnss-nis: Upgrade to 3.4
Bring following changes on top of 3.2 * 3c206b7 (origin/master, origin/HEAD) Release version 3.4 * 09f6be4 fix: Leak in nis-initgroups.c:_nss_nis_initgroups_dyn() * d141952 Release version 3.3 * 9a5fb67 Update autoconf files * f062d8e Remove nis-publickey.c Drop the lld patch, its fixed upstream by dropping the concerned code (From OE-Core rev: 1abf3ee8953cb50321c2817464117c3c7373f28d) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
b72dc78af6
commit
38fabe185d
|
|
@ -1,78 +0,0 @@
|
|||
From ecc9767fd8c3a1ecbfca5df18714df34995a38a3 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 26 Aug 2025 22:45:54 -0700
|
||||
Subject: [PATCH] make: Make _nss_nis_getsecretkey export conditional on xdecrypt()
|
||||
|
||||
The function _nss_nis_getsecretkey in nis-publickey.c is only
|
||||
compiled when xdecrypt() is available. This is controlled by the
|
||||
configure check AC_CHECK_FUNCS([xdecrypt]) which defines
|
||||
HAVE_XDECRYPT in config.h.
|
||||
|
||||
However, the symbol was always listed in src/libnss_nis.map,
|
||||
regardless of whether the function was actually built. On systems
|
||||
without xdecrypt() (for example musl or certain embedded toolchains),
|
||||
this leads to a link failure:
|
||||
|
||||
ld: error: version script assignment of 'NSS_NIS_1.0' to symbol
|
||||
'_nss_nis_getsecretkey' failed: symbol not defined
|
||||
|
||||
To fix this mismatch, rename libnss_nis.map to
|
||||
libnss_nis.map.in and generate libnss_nis.map at build time:
|
||||
|
||||
- If HAVE_XDECRYPT is defined, the symbol map is copied unchanged.
|
||||
- Otherwise, the _nss_nis_getsecretkey line is stripped out
|
||||
with sed.
|
||||
|
||||
Automake rules are added to src/Makefile.am so the correct
|
||||
libnss_nis.map is produced, and the linker always sees a version
|
||||
script consistent with the compiled objects.
|
||||
|
||||
This ensures _nss_nis_getsecretkey is exported only when it exists
|
||||
in the object code, preventing build failures on platforms where
|
||||
xdecrypt() is missing.
|
||||
|
||||
This fixes build with LLD linker which defaults to not accepting
|
||||
undefined symbols
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nis/pull/12]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/Makefile.am | 18 +++++++++++++++++-
|
||||
src/{libnss_nis.map => libnss_nis.map.in} | 0
|
||||
2 files changed, 17 insertions(+), 1 deletion(-)
|
||||
rename src/{libnss_nis.map => libnss_nis.map.in} (100%)
|
||||
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index e1a9bb2..cc32ea9 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -22,8 +22,24 @@ nss_loader_test_LDADD = -ldl
|
||||
|
||||
TESTS = $(check_PROGRAMS)
|
||||
|
||||
+# Build the version script from a template, pruning _nss_nis_getsecretkey
|
||||
+# when xdecrypt() was not detected by configure (i.e., HAVE_XDECRYPT is unset).
|
||||
+BUILT_SOURCES = libnss_nis.map
|
||||
+EXTRA_DIST += libnss_nis.map.in
|
||||
+CLEANFILES += libnss_nis.map
|
||||
+
|
||||
+libnss_nis.map: $(srcdir)/libnss_nis.map.in $(top_builddir)/config.h
|
||||
+ $(AM_V_GEN) { \
|
||||
+ if grep -q '^[[:space:]]*#define[[:space:]]\+HAVE_XDECRYPT[[:space:]]\+1' $(top_builddir)/config.h ; then \
|
||||
+ cp $(srcdir)/libnss_nis.map.in $@ ; \
|
||||
+ else \
|
||||
+ sed 's/ _nss_nis_getsecretkey;//g' \
|
||||
+ $(srcdir)/libnss_nis.map.in > $@ ; \
|
||||
+ fi ; \
|
||||
+ }
|
||||
+
|
||||
libnss_nis_la_LDFLAGS = -version-info 2:0:0 \
|
||||
- -Wl,--version-script=$(srcdir)/libnss_nis.map
|
||||
+ -Wl,--version-script=$(builddir)/libnss_nis.map
|
||||
libnss_nis_la_LIBADD = @LIBNSL_LIBS@
|
||||
libnss_nis_la_SOURCES = nis-alias.c nis-ethers.c nis-grp.c nis-hosts.c \
|
||||
nis-initgroups.c nis-netgrp.c nis-network.c \
|
||||
diff --git a/src/libnss_nis.map b/src/libnss_nis.map.in
|
||||
similarity index 100%
|
||||
rename from src/libnss_nis.map
|
||||
rename to src/libnss_nis.map.in
|
||||
|
|
@ -13,13 +13,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
|
|||
SECTION = "libs"
|
||||
DEPENDS += "libtirpc libnsl2"
|
||||
|
||||
PV = "3.2"
|
||||
|
||||
SRCREV = "cd0d391af9535b56e612ed227c1b89be269f3d59"
|
||||
|
||||
SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https \
|
||||
file://0001-make-ake-_nss_nis_getsecretkey-export-conditional-on.patch \
|
||||
"
|
||||
SRCREV = "3c206b762ac8557dab3c40ff3a297c9d1bff0d83"
|
||||
SRC_URI = "git://github.com/thkukuk/libnss_nis;branch=master;protocol=https;tag=v${PV}"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
Loading…
Reference in New Issue
Block a user