public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Zac Medico" <zmedico@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: bin/install-qa-check.d/
Date: Mon, 20 May 2019 05:01:50 +0000 (UTC)	[thread overview]
Message-ID: <1558328028.e54bc64a3779d4546b70a7a82d677a18d3c37b67.zmedico@gentoo> (raw)

commit:     e54bc64a3779d4546b70a7a82d677a18d3c37b67
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Fri May 10 01:20:14 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon May 20 04:53:48 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=e54bc64a

install-qa-check.d/80libraries: fix false positive

Do not report libraries missing DT_NEEDED and not containing undefined
non-weak symbols.

Bug: https://bugs.gentoo.org/516016
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 bin/install-qa-check.d/80libraries | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/bin/install-qa-check.d/80libraries b/bin/install-qa-check.d/80libraries
index bbabc0eb9..d1d2c4fdd 100644
--- a/bin/install-qa-check.d/80libraries
+++ b/bin/install-qa-check.d/80libraries
@@ -1,7 +1,15 @@
 # Check for issues with installed libraries
 
 scanelf_lib_check() {
-	local f x i j
+	local t v
+	for t in NM:nm ; do
+		v=${t%:*} # NM
+		t=${t#*:} # nm
+		eval ${v}=\"${!v:-${CHOST}-${t}}\"
+		type -P -- ${!v} >/dev/null || eval ${v}=${t}
+	done
+
+	local f x i j library libraries
 
 	# Check for shared libraries lacking SONAMEs
 	local qa_var="QA_SONAME_${ARCH/-/_}"
@@ -40,7 +48,16 @@ scanelf_lib_check() {
 	# Check for shared libraries lacking NEEDED entries
 	qa_var="QA_DT_NEEDED_${ARCH/-/_}"
 	eval "[[ -n \${!qa_var} ]] && QA_DT_NEEDED=(\"\${${qa_var}[@]}\")"
-	f=$(scanelf -ByF '%n %p' "${ED%/}"/{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]${ED%/}/:/:")
+	f=
+	libraries=$(scanelf -ByF '%n %p' "${ED%/}"/{,usr/}lib*/lib*.so* | awk '$2 == "" { print }' | sed -e "s:^[[:space:]]::")
+	if [[ -n ${libraries} ]] ; then
+		while IFS= read -r library ; do
+			# Only shared libraries containing undefined non-weak symbols actually need NEEDED entries.
+			if [[ -n $(${NM} -D "${library}" | grep -E "^ +U ") ]] ; then
+				f+="/${library#${ED%/}/}"$'\n'
+			fi
+		done <<< "${libraries}"
+	fi
 	if [[ -n ${f} ]] ; then
 		echo "${f}" > "${T}"/scanelf-missing-NEEDED.log
 		if [[ "${QA_STRICT_DT_NEEDED-unset}" == unset ]] ; then


             reply	other threads:[~2019-05-20  5:01 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-20  5:01 Zac Medico [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-01-06 10:19 [gentoo-commits] proj/portage:master commit in: bin/install-qa-check.d/ Ulrich Müller
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-17 14:32 Matt Turner
2024-09-09 23:49 Sam James
2024-05-22 16:56 Sam James
2024-05-17  6:28 Sam James
2024-04-25  2:59 Mike Gilbert
2023-07-29  3:57 Sam James
2023-06-29  8:22 Sam James
2023-05-11  1:24 Sam James
2023-05-11  1:24 Sam James
2023-05-11  1:24 Sam James
2023-05-11  1:24 Sam James
2023-05-11  1:24 Sam James
2023-05-11  1:24 Sam James
2023-04-07 10:41 Sam James
2023-02-28  3:10 Sam James
2023-02-27  4:43 Sam James
2023-02-26 20:22 Sam James
2023-02-19 12:23 Sam James
2023-02-17  9:12 Sam James
2023-02-17  9:12 Sam James
2022-11-09  2:29 Sam James
2022-11-09  2:25 Sam James
2022-11-09  2:25 Sam James
2022-11-09  2:25 Sam James
2022-11-09  2:25 Sam James
2022-11-09  2:25 Sam James
2022-11-08 23:51 Sam James
2022-10-27 23:37 Sam James
2022-10-27 23:37 Sam James
2022-10-27 23:37 Sam James
2022-10-11 19:18 Sam James
2022-10-11 19:18 Sam James
2022-10-11 19:18 Sam James
2022-08-19  0:09 Sam James
2022-08-14 20:43 Sam James
2022-08-13 17:30 Sam James
2022-08-10  4:36 Sam James
2022-08-10  4:36 Sam James
2022-08-01 22:39 Sam James
2022-08-01 22:39 Sam James
2022-08-01 22:39 Sam James
2022-07-28  6:32 Fabian Groffen
2022-07-27  8:18 Fabian Groffen
2022-07-27  8:18 Fabian Groffen
2022-05-15  1:02 Sam James
2022-05-15  1:02 Sam James
2022-05-07 17:15 Mike Gilbert
2022-04-28 15:50 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-12  2:00 Sam James
2022-04-10 17:20 Sam James
2022-04-05  4:33 Sam James
2019-11-03 20:15 Zac Medico
2019-11-03 20:15 Zac Medico
2019-11-03 20:02 Zac Medico
2019-11-03 19:45 Zac Medico
2019-05-20  4:41 Zac Medico
2018-10-06  1:15 Zac Medico
2018-09-04 21:16 Michał Górny
2018-08-07 18:49 Zac Medico
2018-08-07 18:49 Zac Medico
2018-08-04 19:36 Zac Medico
2018-07-28  6:41 Zac Medico
2018-01-26  6:40 Michał Górny
2017-10-16 17:21 Zac Medico
2017-08-02  7:24 Zac Medico
2016-06-02  6:12 Zac Medico
2016-06-02  1:40 Zac Medico
2016-05-12 22:09 Mike Frysinger
2016-05-12 21:36 Mike Frysinger
2016-05-11 17:55 Mike Frysinger
2015-11-11  0:56 Mike Frysinger
2015-05-26  3:46 Mike Frysinger
2015-05-04  5:09 Zac Medico
2015-04-20  5:36 Michał Górny
2014-12-02 18:44 Brian Dolbec
2014-11-19 23:26 Michał Górny
2014-10-27 19:28 Zac Medico
2014-10-27 19:28 Zac Medico
2014-10-19 21:11 Brian Dolbec
2014-09-26  2:17 Brian Dolbec
2014-09-26  2:17 Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1558328028.e54bc64a3779d4546b70a7a82d677a18d3c37b67.zmedico@gentoo \
    --to=zmedico@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox