public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Cc: GNU C Library <libc-alpha@sourceware.org>
Subject: Re: [PATCH 3/5] Remove ldd libc4 support
Date: Tue, 2 Aug 2022 16:35:34 -0700	[thread overview]
Message-ID: <CAMe9rOqLsiA6-_PeChwYxawZ2Ga_6Q9Me4w9EJjm2gEGAsyxMQ@mail.gmail.com> (raw)
In-Reply-To: <20220802145905.2789733-4-adhemerval.zanella@linaro.org>

On Tue, Aug 2, 2022 at 8:00 AM Adhemerval Zanella via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> The older libc versions are obsolete for over twenty years now.
> ---
>  Makeconfig                                    |   4 +-
>  sysdeps/unix/sysv/linux/Makefile              |   2 -
>  sysdeps/unix/sysv/linux/csky/configure        |   1 -
>  sysdeps/unix/sysv/linux/csky/configure.ac     |   1 -
>  sysdeps/unix/sysv/linux/i386/Makefile         |   5 -
>  sysdeps/unix/sysv/linux/i386/configure        |   1 -
>  sysdeps/unix/sysv/linux/i386/configure.ac     |   1 -
>  sysdeps/unix/sysv/linux/ldd-rewrite.sed       |  10 --
>  sysdeps/unix/sysv/linux/lddlibc4.c            | 104 ------------------
>  sysdeps/unix/sysv/linux/m68k/Makefile         |   4 -
>  sysdeps/unix/sysv/linux/m68k/configure        |   1 -
>  sysdeps/unix/sysv/linux/m68k/configure.ac     |   1 -
>  .../unix/sysv/linux/sparc/sparc32/Makefile    |   2 -
>  13 files changed, 2 insertions(+), 135 deletions(-)
>  delete mode 100644 sysdeps/unix/sysv/linux/ldd-rewrite.sed
>  delete mode 100644 sysdeps/unix/sysv/linux/lddlibc4.c
>
> diff --git a/Makeconfig b/Makeconfig
> index ba70321af1..e78cf220af 100644
> --- a/Makeconfig
> +++ b/Makeconfig
> @@ -866,7 +866,7 @@ endif
>  +extra-math-flags = $(if $(filter libm,$(in-module)),-fno-math-errno,-fmath-errno)
>
>  # Use 64 bit time_t support for installed programs
> -installed-modules = nonlib nscd lddlibc4 ldconfig locale_programs \
> +installed-modules = nonlib nscd ldconfig locale_programs \
>                     iconvprogs libnss_files libnss_compat libnss_db libnss_hesiod \
>                     libutil libpcprofile libSegFault
>  +extra-time-flags = $(if $(filter $(installed-modules),\
> @@ -966,7 +966,7 @@ endif       # $(+cflags) == ""
>  libio-include = -I$(..)libio
>
>  # List of non-library modules that we build.
> -built-modules = iconvprogs iconvdata ldconfig lddlibc4 libmemusage \
> +built-modules = iconvprogs iconvdata ldconfig libmemusage \
>                 libSegFault libpcprofile librpcsvc locale-programs \
>                 memusagestat nonlib nscd extramodules libnldbl libsupport \
>                 testsuite testsuite-internal
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index a139a16532..3f31c19e4a 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -393,8 +393,6 @@ endif
>  ifeq ($(subdir),elf)
>  sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir
>
> -libof-lddlibc4 = lddlibc4
> -
>  others += pldd
>  install-bin += pldd
>  $(objpfx)pldd: $(objpfx)xmalloc.o
> diff --git a/sysdeps/unix/sysv/linux/csky/configure b/sysdeps/unix/sysv/linux/csky/configure
> index 20dc0df8e6..b36cee5b7b 100644
> --- a/sysdeps/unix/sysv/linux/csky/configure
> +++ b/sysdeps/unix/sysv/linux/csky/configure
> @@ -2,4 +2,3 @@
>   # Local configure fragment for sysdeps/unix/sysv/linux/csky
>
>  arch_minimum_kernel=4.20.0
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/csky/configure.ac b/sysdeps/unix/sysv/linux/csky/configure.ac
> index 89448969d4..efcd375cd2 100644
> --- a/sysdeps/unix/sysv/linux/csky/configure.ac
> +++ b/sysdeps/unix/sysv/linux/csky/configure.ac
> @@ -2,4 +2,3 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
>  # Local configure fragment for sysdeps/unix/sysv/linux/csky
>
>  arch_minimum_kernel=4.20.0
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
> index 598e27dcda..f1f8c3f44c 100644
> --- a/sysdeps/unix/sysv/linux/i386/Makefile
> +++ b/sysdeps/unix/sysv/linux/i386/Makefile
> @@ -7,11 +7,6 @@ sysdep_routines += ioperm iopl vm86
>  tests += tst-bz21269
>  endif
>
> -ifeq ($(subdir),elf)
> -sysdep-others += lddlibc4
> -install-bin += lddlibc4
> -endif
> -
>  ifeq ($(subdir),io)
>  sysdep_routines += libc-do-syscall libc-do-syscall-int80
>  endif
> diff --git a/sysdeps/unix/sysv/linux/i386/configure b/sysdeps/unix/sysv/linux/i386/configure
> index f119e62fc3..351d82355a 100644
> --- a/sysdeps/unix/sysv/linux/i386/configure
> +++ b/sysdeps/unix/sysv/linux/i386/configure
> @@ -2,4 +2,3 @@
>   # Local configure fragment for sysdeps/unix/sysv/linux/i386.
>
>  libc_cv_gcc_unwind_find_fde=yes
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/i386/configure.ac b/sysdeps/unix/sysv/linux/i386/configure.ac
> index 64ab2cc2c8..61c04f2f49 100644
> --- a/sysdeps/unix/sysv/linux/i386/configure.ac
> +++ b/sysdeps/unix/sysv/linux/i386/configure.ac
> @@ -2,4 +2,3 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
>  # Local configure fragment for sysdeps/unix/sysv/linux/i386.
>
>  libc_cv_gcc_unwind_find_fde=yes
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ldd-rewrite.sed
> deleted file mode 100644
> index 1faa90fbc8..0000000000
> --- a/sysdeps/unix/sysv/linux/ldd-rewrite.sed
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -/Maybe extra code for non-ELF binaries/a\
> -  file=$1\
> -  # Run the ldd stub.\
> -  lddlibc4 "$file"\
> -  # Test the result.\
> -  if test $? -lt 3; then\
> -    return 0;\
> -  fi\
> -  # In case of an error punt.
> -/LD_TRACE_LOADED_OBJECTS=1/a\
> diff --git a/sysdeps/unix/sysv/linux/lddlibc4.c b/sysdeps/unix/sysv/linux/lddlibc4.c
> deleted file mode 100644
> index 153d2ad183..0000000000
> --- a/sysdeps/unix/sysv/linux/lddlibc4.c
> +++ /dev/null
> @@ -1,104 +0,0 @@
> -/* Stub for ldd script to print Linux libc4 dependencies.
> -   Copyright (C) 1998-2022 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, see
> -   <https://www.gnu.org/licenses/>.  */
> -
> -/* This code is based on the `ldd' program code from the Linux ld.so
> -   package.  */
> -
> -#include <a.out.h>
> -#include <errno.h>
> -#include <error.h>
> -#include <libintl.h>
> -#include <locale.h>
> -#include <stdio.h>
> -#include <stdlib.h>
> -#include <string.h>
> -#include <unistd.h>
> -
> -/* Get libc version number.  */
> -#include "../version.h"
> -
> -#define PACKAGE _libc_intl_domainname
> -
> -
> -int
> -main (int argc, char *argv[])
> -{
> -  const char *filename;
> -  size_t filename_len;
> -  struct exec exec;
> -  char *buf;
> -  FILE *fp;
> -
> -  /* Set locale via LC_ALL.  */
> -  setlocale (LC_ALL, "");
> -
> -  /* Set the text message domain.  */
> -  textdomain (PACKAGE);
> -
> -  /* We expect exactly one argument.  */
> -  if (argc != 2)
> -    return 1;
> -
> -  if (strcmp (argv[1], "--help") == 0)
> -    {
> -      printf (gettext ("Usage: lddlibc4 FILE\n\n"));
> -      printf (gettext ("For bug reporting instructions, please see:\n\
> -%s.\n"), REPORT_BUGS_TO);
> -      return 0;
> -    }
> -  else if (strcmp (argv[1], "--version") == 0)
> -    {
> -      printf ("lddlibc4 %s%s\n", PKGVERSION, VERSION);
> -      printf (gettext ("\
> -Copyright (C) %s Free Software Foundation, Inc.\n\
> -This is free software; see the source for copying conditions.  There is NO\n\
> -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
> -"), "2022");
> -      return 0;
> -    }
> -
> -  filename = argv[1];
> -
> -  /* First see whether this is really an a.out binary.  */
> -  fp = fopen (filename, "rb");
> -  if (fp == NULL)
> -    error (2, errno, gettext ("cannot open `%s'"), filename);
> -
> -  /* Read the program header.  */
> -  if (fread (&exec, sizeof exec, 1, fp) < 1)
> -    error (2, errno, gettext ("cannot read header from `%s'"), filename);
> -
> -  /* Test for the magic numbers.  */
> -  if (N_MAGIC (exec) != ZMAGIC && N_MAGIC (exec) != QMAGIC
> -      && N_MAGIC (exec) != OMAGIC)
> -    exit (3);
> -
> -  /* We don't need the file open anymore.  */
> -  fclose (fp);
> -
> -  /* We must put `__LDD_ARGV0=<program-name>' in the environment.  */
> -  filename_len = strlen (filename);
> -  buf = (char *) alloca (sizeof "__LDD_ARGV0=" + filename_len);
> -  mempcpy (mempcpy (buf, "__LDD_ARGV0=", sizeof "__LDD_ARGV0=" - 1),
> -          filename, filename_len + 1);
> -  /* ...and put the value in the environment.  */
> -  putenv (buf);
> -
> -  /* Now we can execute the binary.  */
> -  return execv (filename, &argv[argc]) ? 4 : 0;
> -}
> diff --git a/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile
> index 18ad2bf0ee..72d5bff992 100644
> --- a/sysdeps/unix/sysv/linux/m68k/Makefile
> +++ b/sysdeps/unix/sysv/linux/m68k/Makefile
> @@ -16,7 +16,3 @@ sysdep_routines += mremap
>  sysdep_headers += sys/reg.h
>  endif
>
> -ifeq ($(subdir),elf)
> -sysdep-others += lddlibc4
> -install-bin += lddlibc4
> -endif
> diff --git a/sysdeps/unix/sysv/linux/m68k/configure b/sysdeps/unix/sysv/linux/m68k/configure
> index 8e955387b7..aa295f80cb 100644
> --- a/sysdeps/unix/sysv/linux/m68k/configure
> +++ b/sysdeps/unix/sysv/linux/m68k/configure
> @@ -6,4 +6,3 @@ m68k/coldfire)
>    libc_cv_gcc_unwind_find_fde=yes
>    ;;
>  esac
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/m68k/configure.ac b/sysdeps/unix/sysv/linux/m68k/configure.ac
> index c21ca9dd47..0e547f2f2e 100644
> --- a/sysdeps/unix/sysv/linux/m68k/configure.ac
> +++ b/sysdeps/unix/sysv/linux/m68k/configure.ac
> @@ -7,4 +7,3 @@ m68k/coldfire)
>    libc_cv_gcc_unwind_find_fde=yes
>    ;;
>  esac
> -ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
> index 21c7dc1680..167307cc78 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
> @@ -13,8 +13,6 @@ endif
>  ifeq ($(subdir),elf)
>  CFLAGS-rtld.c += -mcpu=v8
>  #rtld-routines += dl-sysdepsparc
> -sysdep-others += lddlibc4
> -install-bin += lddlibc4
>  endif   # elf
>
>  ifeq ($(subdir),math)
> --
> 2.34.1
>

LGTM.

Thanks.

-- 
H.J.

  reply	other threads:[~2022-08-02 23:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-02 14:59 [PATCH 0/5] More features cleanups Adhemerval Zanella
2022-08-02 14:59 ` [PATCH 1/5] Remove missing LD_LIBRARY_VERSION usages Adhemerval Zanella
2022-08-02 15:11   ` Andreas Schwab
2022-08-02 14:59 ` [PATCH 2/5] Assume only FLAG_ELF_LIBC6 suport Adhemerval Zanella
2023-12-07 13:14   ` Alexander Monakov
2023-12-07 14:40     ` Adhemerval Zanella Netto
2022-08-02 14:59 ` [PATCH 3/5] Remove ldd libc4 support Adhemerval Zanella
2022-08-02 23:35   ` H.J. Lu [this message]
2022-08-02 14:59 ` [PATCH 4/5] arm: Remove RELA support Adhemerval Zanella
2022-08-03 18:31   ` Adhemerval Zanella Netto
2022-08-03 19:59     ` Phil Blundell
2022-08-02 14:59 ` [PATCH 5/5] i386: " Adhemerval Zanella
2022-08-02 15:13   ` H.J. Lu
2022-08-04  0:45     ` Fangrui Song

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=CAMe9rOqLsiA6-_PeChwYxawZ2Ga_6Q9Me4w9EJjm2gEGAsyxMQ@mail.gmail.com \
    --to=hjl.tools@gmail.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).