From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 19 Sep 2025 07:40:03 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uzTql-004k3r-2p for lore@lore.pengutronix.de; Fri, 19 Sep 2025 07:40:03 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1uzTql-00040S-M0; Fri, 19 Sep 2025 07:40:03 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1uzTqh-00040E-E1; Fri, 19 Sep 2025 07:39:59 +0200 Received: from pty.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::c5]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uzTqh-0023Xa-0o; Fri, 19 Sep 2025 07:39:59 +0200 Received: from mol by pty.whiteo.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1uzTqh-000KHZ-0T; Fri, 19 Sep 2025 07:39:59 +0200 Date: Fri, 19 Sep 2025 07:39:59 +0200 From: Michael Olbrich To: Holger Assmann Message-ID: Mail-Followup-To: Holger Assmann , ptxdist@pengutronix.de References: <20250917095155.120103-1-h.assmann@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250917095155.120103-1-h.assmann@pengutronix.de> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-IRC: #ptxdist @freenode Subject: Re: [ptxdist] [PATCH] ldd: switch to version provided by glibc X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: ptxdist@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false On Wed, Sep 17, 2025 at 11:51:55AM +0200, Holger Assmann wrote: > Until now, the ldd version installed on the target has been a script > copied from projectroot. Besides not having been updated since v2.7 > (we are at v2.40+ now), this approach does not account for the various > architectures PTXdist can build BSPs for. > > We already have access to a recent version of ldd, as it comes with > glibc from the active toolchain. We can hence drop the local ldd script > and directly install the tool from there. Please add a migration helper to migrate_ptx. Michael > Signed-off-by: Holger Assmann > --- > projectroot/usr/bin/ldd | 213 ---------------------------------------- > rules/glibc.in | 12 +++ > rules/glibc.make | 4 + > rules/ldd.in | 7 -- > rules/ldd.make | 38 ------- > 5 files changed, 16 insertions(+), 258 deletions(-) > delete mode 100644 projectroot/usr/bin/ldd > delete mode 100644 rules/ldd.in > delete mode 100644 rules/ldd.make > > diff --git a/projectroot/usr/bin/ldd b/projectroot/usr/bin/ldd > deleted file mode 100644 > index b3629a42f..000000000 > --- a/projectroot/usr/bin/ldd > +++ /dev/null > @@ -1,213 +0,0 @@ > -#! /bin/sh > -# Copyright (C) 1996-2004, 2005, 2006, 2007 Free Software Foundation, Inc. > -# This file is part of the GNU C Library. > - > -# The GNU C Library is free software; you can redistribute it and/or > -# modify it under the terms of the GNU Lesser General Public > -# License as published by the Free Software Foundation; either > -# version 2.1 of the License, or (at your option) any later version. > - > -# The GNU C Library is distributed in the hope that it will be useful, > -# but WITHOUT ANY WARRANTY; without even the implied warranty of > -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > -# Lesser General Public License for more details. > - > -# You should have received a copy of the GNU Lesser General Public > -# License along with the GNU C Library; if not, write to the Free > -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA > -# 02111-1307 USA. > - > - > -# This is the `ldd' command, which lists what shared libraries are > -# used by given dynamically-linked executables. It works by invoking the > -# run-time dynamic linker as a command and setting the environment > -# variable LD_TRACE_LOADED_OBJECTS to a non-empty value. > - > -# We should be able to find the translation right at the beginning. > -TEXTDOMAIN=libc > -TEXTDOMAINDIR=/usr/share/locale > - > -RTLDLIST="/lib/ld-linux.so.3 /lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2 /lib/ld.so.1 /lib64/ld64.so.1" > -warn= > -bind_now= > -verbose= > -filename_magic_regex="((^|/)lib|.so$)" > - > -while test $# -gt 0; do > - case "$1" in > - --vers | --versi | --versio | --version) > - echo 'ldd (GNU libc) 2.7' > - printf $"Copyright (C) %s Free Software Foundation, Inc. > -This is free software; see the source for copying conditions. There is NO > -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > -" "2007" > - printf $"Written by %s and %s. > -" "Roland McGrath" "Ulrich Drepper" > - exit 0 > - ;; > - --h | --he | --hel | --help) > - echo $"Usage: ldd [OPTION]... FILE... > - --help print this help and exit > - --version print version information and exit > - -d, --data-relocs process data relocations > - -r, --function-relocs process data and function relocations > - -u, --unused print unused direct dependencies > - -v, --verbose print all information > -For bug reporting instructions, please see: > -." > - exit 0 > - ;; > - -d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \ > - --data-rel | --data-relo | --data-reloc | --data-relocs) > - warn=yes > - shift > - ;; > - -r | --f | --fu | --fun | --func | --funct | --functi | --functio | \ > - --function | --function- | --function-r | --function-re | --function-rel | \ > - --function-relo | --function-reloc | --function-relocs) > - warn=yes > - bind_now=yes > - shift > - ;; > - -v | --verb | --verbo | --verbos | --verbose) > - verbose=yes > - shift > - ;; > - -u | --u | --un | --unu | --unus | --unuse | --unused) > - unused=yes > - shift > - ;; > - --v | --ve | --ver) > - echo >&2 $"ldd: option \`$1' is ambiguous" > - exit 1 > - ;; > - --) # Stop option processing. > - shift; break > - ;; > - -*) > - echo >&2 'ldd:' $"unrecognized option" "\`$1'" > - echo >&2 $"Try \`ldd --help' for more information." > - exit 1 > - ;; > - *) > - break > - ;; > - esac > -done > - > -nonelf () > -{ > - # Maybe extra code for non-ELF binaries. > - return 1; > -} > - > -add_env="LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now" > -add_env="$add_env LD_LIBRARY_VERSION=\$verify_out" > -add_env="$add_env LD_VERBOSE=$verbose" > -if test "$unused" = yes; then > - add_env="$add_env LD_DEBUG=\"$LD_DEBUG${LD_DEBUG:+,}unused\"" > -fi > - > -# The following use of cat is needed to make ldd work in SELinux > -# environments where the executed program might not have permissions > -# to write to the console/tty. But only bash 3.x supports the pipefail > -# option, and we don't bother to handle the case for older bash versions. > -if set -o pipefail 2> /dev/null; then > - try_trace() { > - eval $add_env '"$@"' | cat > - } > -else > - try_trace() { > - eval $add_env '"$@"' > - } > -fi > - > -case $# in > -0) > - echo >&2 'ldd:' $"missing file arguments" > - echo >&2 $"Try \`ldd --help' for more information." > - exit 1 > - ;; > -1) > - single_file=t > - ;; > -*) > - single_file=f > - ;; > -esac > - > -result=0 > -for file do > - # We don't list the file name when there is only one. > - test $single_file = t || echo "${file}:" > - case $file in > - */*) : > - ;; > - *) file=./$file > - ;; > - esac > - if test ! -e "$file"; then > - echo "ldd: ${file}:" $"No such file or directory" >&2 > - result=1 > - elif test ! -f "$file"; then > - echo "ldd: ${file}:" $"not regular file" >&2 > - result=1 > - elif test -r "$file"; then > - if test ! -x "$file" && eval echo "$file" \ > - | egrep -v "$filename_magic_regex" > /dev/null; then > - echo 'ldd:' $"warning: you do not have execution permission for"\ > - "\`$file'" >&2 > - fi > - RTLD= > - ret=1 > - for rtld in ${RTLDLIST}; do > - if test -x $rtld; then > - verify_out=`${rtld} --verify "$file" 2>/dev/null` > - ret=$? > - case $ret in > - [02]) RTLD=${rtld}; break;; > - esac > - fi > - done > - case $ret in > - 0) > - # If the program exits with exit code 5, it means the process has been > - # invoked with __libc_enable_secure. Fall back to running it through > - # the dynamic linker. > - if test -x "$file"; then > - try_trace "$file" > - else > - try_trace "${RTLD}" "$file" > - fi > - rc=$? > - if [ $rc = 5 ]; then > - try_trace "$RTLD" "$file" > - rc=$? > - fi > - [ $rc = 0 ] || result=1 > - ;; > - 1) > - # This can be a non-ELF binary or no binary at all. > - nonelf "$file" || { > - echo $" not a dynamic executable" > - result=1 > - } > - ;; > - 2) > - try_trace "$RTLD" "$file" || result=1 > - ;; > - *) > - echo 'ldd:' ${RTLD} $"exited with unknown exit code" "($ret)" >&2 > - exit 1 > - ;; > - esac > - else > - echo 'ldd:' $"error: you do not have read permission for" "\`$file'" >&2 > - result=1 > - fi > -done > - > -exit $result > -# Local Variables: > -# mode:ksh > -# End: > diff --git a/rules/glibc.in b/rules/glibc.in > index 3d57cd2c6..b63621395 100644 > --- a/rules/glibc.in > +++ b/rules/glibc.in > @@ -45,6 +45,18 @@ config GLIBC_LD > You don't want to deselect this, unless you have a pure > static system. This is why this options hasn't a prompt. > > +config GLIBC_LDD > + bool > + prompt "Install ldd from glibc" > + select GLIBC_LD > + help > + ldd prints the shared objects (shared libraries) required > + by each program or shared object specified on the command > + line. > + > + Selecting this installs the ldd version deployed with the > + toolchain for the active platform. > + > config GLIBC_C > bool > default y > diff --git a/rules/glibc.make b/rules/glibc.make > index f90f2d8f0..58fafa070 100644 > --- a/rules/glibc.make > +++ b/rules/glibc.make > @@ -176,6 +176,10 @@ ifdef PTXCONF_GLIBC_LDCONFIG_RC_ONCE > /etc/rc.once.d/ldconfig) > endif > > +ifdef PTXCONF_GLIBC_LDD > + @$(call install_copy_toolchain_usr, glibc, bin/ldd) > +endif > + > ifdef PTXCONF_GLIBC_I18N_BIN_LOCALE > @$(call install_copy_toolchain_usr, glibc, bin/locale) > endif > diff --git a/rules/ldd.in b/rules/ldd.in > deleted file mode 100644 > index 66422c2ab..000000000 > --- a/rules/ldd.in > +++ /dev/null > @@ -1,7 +0,0 @@ > -## SECTION=debug_tools > - > -config LDD > - tristate > - prompt "ldd" > - help > - ldd prints shared library dependencies of object files > diff --git a/rules/ldd.make b/rules/ldd.make > deleted file mode 100644 > index ac9bbc3fa..000000000 > --- a/rules/ldd.make > +++ /dev/null > @@ -1,38 +0,0 @@ > -# -*-makefile-*- > -# > -# Copyright (C) 2006 by Sascha Hauer > -# (C) 2010 by Michael Olbrich > -# > -# For further information about the PTXdist project and license conditions > -# see the README file. > -# > - > -# > -# We provide this package > -# > -PACKAGES-$(PTXCONF_LDD) += ldd > - > -# This is the version from the glibc we have stolen from > -LDD_VERSION := 2.7 > -LDD_LICENSE := LGPL-2.1-or-later > - > -# ---------------------------------------------------------------------------- > -# Target-Install > -# ---------------------------------------------------------------------------- > - > -$(STATEDIR)/ldd.targetinstall: > - @$(call targetinfo) > - > - @$(call install_init, ldd) > - @$(call install_fixup, ldd,PRIORITY,optional) > - @$(call install_fixup, ldd,SECTION,base) > - @$(call install_fixup, ldd,AUTHOR,"Robert Schwebel ") > - @$(call install_fixup, ldd,DESCRIPTION,missing) > - > - @$(call install_alternative, ldd, 0, 0, 0755, /usr/bin/ldd) > - > - @$(call install_finish, ldd) > - > - @$(call touch) > - > -# vim: syntax=make > -- > 2.47.3 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |