summaryrefslogtreecommitdiff
path: root/Assume-only-FLAG_ELF_LIBC6-suport.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Assume-only-FLAG_ELF_LIBC6-suport.patch')
-rw-r--r--Assume-only-FLAG_ELF_LIBC6-suport.patch658
1 files changed, 658 insertions, 0 deletions
diff --git a/Assume-only-FLAG_ELF_LIBC6-suport.patch b/Assume-only-FLAG_ELF_LIBC6-suport.patch
new file mode 100644
index 0000000..dbc9199
--- /dev/null
+++ b/Assume-only-FLAG_ELF_LIBC6-suport.patch
@@ -0,0 +1,658 @@
+From 8ee878592c4a642937152c8308b8faef86bcfc40 Mon Sep 17 00:00:00 2001
+From: "Lucas A. M. Magalhaes" <lamm@linux.ibm.com>
+Date: Thu, 14 Jul 2022 14:37:22 -0300
+Subject: [PATCH] Assume only FLAG_ELF_LIBC6 suport
+
+The older libc versions are obsolete for over twenty years now.
+This patch removes the special flags for libc5 and libc4 and assumes
+that all libraries cached are libc6 compatible and use FLAG_ELF_LIBC6.
+
+Checked with a build for all affected architectures.
+
+Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+---
+ elf/cache.c | 6 +-
+ elf/ldconfig.c | 63 ++-----------------
+ elf/readelflib.c | 46 ++------------
+ elf/readlib.c | 25 +-------
+ sysdeps/unix/sysv/linux/aarch64/ldconfig.h | 30 ---------
+ sysdeps/unix/sysv/linux/arc/ldconfig.h | 27 --------
+ sysdeps/unix/sysv/linux/arm/ldconfig.h | 25 --------
+ sysdeps/unix/sysv/linux/csky/ldconfig.h | 34 ----------
+ sysdeps/unix/sysv/linux/i386/ldconfig.h | 6 --
+ sysdeps/unix/sysv/linux/ia64/ldconfig.h | 24 -------
+ sysdeps/unix/sysv/linux/m68k/ldconfig.h | 1 -
+ .../unix/sysv/linux/mips/mips64/ldconfig.h | 25 --------
+ sysdeps/unix/sysv/linux/powerpc/ldconfig.h | 27 --------
+ sysdeps/unix/sysv/linux/riscv/ldconfig.h | 36 -----------
+ sysdeps/unix/sysv/linux/s390/ldconfig.h | 7 ---
+ sysdeps/unix/sysv/linux/x86_64/ldconfig.h | 26 --------
+ 16 files changed, 14 insertions(+), 394 deletions(-)
+ delete mode 100644 sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/arc/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/arm/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/csky/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/ia64/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/m68k/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/powerpc/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/riscv/ldconfig.h
+ delete mode 100644 sysdeps/unix/sysv/linux/x86_64/ldconfig.h
+
+diff --git a/elf/cache.c b/elf/cache.c
+index 3d7d3a67bf..f5f3ef8c4d 100644
+--- a/elf/cache.c
++++ b/elf/cache.c
+@@ -157,6 +157,7 @@ struct cache_entry
+ /* List of all cache entries. */
+ static struct cache_entry *entries;
+
++/* libc4, ELF and libc5 are unsupported. */
+ static const char *flag_descr[] =
+ { "libc4", "ELF", "libc5", "libc6"};
+
+@@ -168,14 +169,11 @@ print_entry (const char *lib, int flag, uint64_t hwcap,
+ printf ("\t%s (", lib);
+ switch (flag & FLAG_TYPE_MASK)
+ {
+- case FLAG_LIBC4:
+- case FLAG_ELF:
+- case FLAG_ELF_LIBC5:
+ case FLAG_ELF_LIBC6:
+ fputs (flag_descr[flag & FLAG_TYPE_MASK], stdout);
+ break;
+ default:
+- fputs (_("unknown"), stdout);
++ fputs (_("unknown or unsupported flag"), stdout);
+ break;
+ }
+ switch (flag & FLAG_REQUIRED_MASK)
+diff --git a/elf/ldconfig.c b/elf/ldconfig.c
+index 9394ac6438..6f37f38f35 100644
+--- a/elf/ldconfig.c
++++ b/elf/ldconfig.c
+@@ -65,19 +65,6 @@
+
+ #define PACKAGE _libc_intl_domainname
+
+-static const struct
+-{
+- const char *name;
+- int flag;
+-} lib_types[] =
+-{
+- {"libc4", FLAG_LIBC4},
+- {"libc5", FLAG_ELF_LIBC5},
+- {"libc6", FLAG_ELF_LIBC6},
+- {"glibc2", FLAG_ELF_LIBC6}
+-};
+-
+-
+ /* List of directories to handle. */
+ struct dir_entry
+ {
+@@ -469,27 +456,8 @@ add_dir_1 (const char *line, const char *from_file, int from_line)
+ entry->from_file = strdup (from_file);
+ entry->from_line = from_line;
+
+- /* Search for an '=' sign. */
+ entry->path = xstrdup (line);
+- char *equal_sign = strchr (entry->path, '=');
+- if (equal_sign)
+- {
+- *equal_sign = '\0';
+- ++equal_sign;
+- entry->flag = FLAG_ANY;
+- for (i = 0; i < sizeof (lib_types) / sizeof (lib_types[0]); ++i)
+- if (strcmp (equal_sign, lib_types[i].name) == 0)
+- {
+- entry->flag = lib_types[i].flag;
+- break;
+- }
+- if (entry->flag == FLAG_ANY)
+- error (0, 0, _("%s is not a known library type"), equal_sign);
+- }
+- else
+- {
+- entry->flag = FLAG_ANY;
+- }
++ entry->flag = FLAG_ELF_LIBC6;
+
+ /* Canonify path: for now only remove leading and trailing
+ whitespace and the trailing slashes. */
+@@ -1054,23 +1022,11 @@ search_dir (const struct dir_entry *entry)
+ soname = xstrdup (direntry->d_name);
+ }
+
+- if (flag == FLAG_ELF
+- && (entry->flag == FLAG_ELF_LIBC5
+- || entry->flag == FLAG_ELF_LIBC6))
+- flag = entry->flag;
+-
+ /* Some sanity checks to print warnings. */
+ if (opt_verbose)
+ {
+- if (flag == FLAG_ELF_LIBC5 && entry->flag != FLAG_ELF_LIBC5
+- && entry->flag != FLAG_ANY)
+- error (0, 0, _("libc5 library %s in wrong directory"), file_name);
+- if (flag == FLAG_ELF_LIBC6 && entry->flag != FLAG_ELF_LIBC6
+- && entry->flag != FLAG_ANY)
++ if (flag == FLAG_ELF_LIBC6 && entry->flag != FLAG_ELF_LIBC6)
+ error (0, 0, _("libc6 library %s in wrong directory"), file_name);
+- if (flag == FLAG_LIBC4 && entry->flag != FLAG_LIBC4
+- && entry->flag != FLAG_ANY)
+- error (0, 0, _("libc4 library %s in wrong directory"), file_name);
+ }
+
+ /* Add library to list. */
+@@ -1089,19 +1045,8 @@ search_dir (const struct dir_entry *entry)
+ /* It's newer - add it. */
+ /* Flag should be the same - sanity check. */
+ if (dlib_ptr->flag != flag)
+- {
+- if (dlib_ptr->flag == FLAG_ELF
+- && (flag == FLAG_ELF_LIBC5 || flag == FLAG_ELF_LIBC6))
+- dlib_ptr->flag = flag;
+- else if ((dlib_ptr->flag == FLAG_ELF_LIBC5
+- || dlib_ptr->flag == FLAG_ELF_LIBC6)
+- && flag == FLAG_ELF)
+- dlib_ptr->flag = flag;
+- else
+- error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."),
+- dlib_ptr->name, direntry->d_name,
+- entry->path);
+- }
++ error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."),
++ dlib_ptr->name, direntry->d_name, entry->path);
+ free (dlib_ptr->name);
+ dlib_ptr->name = xstrdup (direntry->d_name);
+ dlib_ptr->is_link = is_link;
+diff --git a/elf/readelflib.c b/elf/readelflib.c
+index 771182b5d0..5f43e0230d 100644
+--- a/elf/readelflib.c
++++ b/elf/readelflib.c
+@@ -44,7 +44,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
+ char **soname, void *file_contents, size_t file_length)
+ {
+ int i;
+- unsigned int j;
+ unsigned int dynamic_addr;
+ size_t dynamic_size;
+ char *program_interpreter;
+@@ -81,9 +80,8 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
+ elf_pheader = (ElfW(Phdr) *) (elf_header->e_phoff + file_contents);
+ check_ptr (elf_pheader);
+
+- /* The library is an elf library, now search for soname and
+- libc5/libc6. */
+- *flag = FLAG_ELF;
++ /* The library is an elf library. */
++ *flag = FLAG_ELF_LIBC6;
+
+ /* The default ISA level is 0. */
+ *isa_level = 0;
+@@ -110,16 +108,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
+ program_interpreter = (char *) (file_contents + segment->p_offset);
+ check_ptr (program_interpreter);
+
+- /* Check if this is enough to classify the binary. */
+- for (j = 0; j < sizeof (interpreters) / sizeof (interpreters [0]);
+- ++j)
+- if (strcmp (program_interpreter, interpreters[j].soname) == 0)
+- {
+- *flag = interpreters[j].flag;
+- break;
+- }
+- break;
+-
+ case PT_NOTE:
+ if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4)
+ {
+@@ -244,38 +232,16 @@ done:
+ if (dynamic_strings == NULL)
+ return 1;
+
+- /* Now read the DT_NEEDED and DT_SONAME entries. */
++ /* Now read the DT_SONAME entries. */
+ for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
+ ++dyn_entry)
+ {
+- if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME)
++ if (dyn_entry->d_tag == DT_SONAME)
+ {
+ char *name = dynamic_strings + dyn_entry->d_un.d_val;
+ check_ptr (name);
+-
+- if (dyn_entry->d_tag == DT_NEEDED)
+- {
+-
+- if (*flag == FLAG_ELF)
+- {
+- /* Check if this is enough to classify the binary. */
+- for (j = 0;
+- j < sizeof (known_libs) / sizeof (known_libs [0]);
+- ++j)
+- if (strcmp (name, known_libs [j].soname) == 0)
+- {
+- *flag = known_libs [j].flag;
+- break;
+- }
+- }
+- }
+-
+- else if (dyn_entry->d_tag == DT_SONAME)
+- *soname = xstrdup (name);
+-
+- /* Do we have everything we need? */
+- if (*soname && *flag != FLAG_ELF)
+- return 0;
++ *soname = xstrdup (name);
++ return 0;
+ }
+ }
+
+diff --git a/elf/readlib.c b/elf/readlib.c
+index ed42fbd48e..be65e3d0e9 100644
+--- a/elf/readlib.c
++++ b/elf/readlib.c
+@@ -43,24 +43,6 @@ struct known_names
+ int flag;
+ };
+
+-static struct known_names interpreters[] =
+-{
+- { "/lib/" LD_SO, FLAG_ELF_LIBC6 },
+-#ifdef SYSDEP_KNOWN_INTERPRETER_NAMES
+- SYSDEP_KNOWN_INTERPRETER_NAMES
+-#endif
+-};
+-
+-static struct known_names known_libs[] =
+-{
+- { LIBC_SO, FLAG_ELF_LIBC6 },
+- { LIBM_SO, FLAG_ELF_LIBC6 },
+-#ifdef SYSDEP_KNOWN_LIBRARY_NAMES
+- SYSDEP_KNOWN_LIBRARY_NAMES
+-#endif
+-};
+-
+-
+ /* Check if string corresponds to a GDB Python file. */
+ static bool
+ is_gdb_python_file (const char *name)
+@@ -83,7 +65,8 @@ process_file (const char *real_file_name, const char *file_name,
+ struct exec *aout_header;
+
+ ret = 0;
+- *flag = FLAG_ANY;
++ /* Just set FLAG_ELF_LIBC6 as old formats are not supported anymore. */
++ *flag = FLAG_ELF_LIBC6;
+ *soname = NULL;
+
+ file = fopen (real_file_name, "rb");
+@@ -150,7 +133,6 @@ process_file (const char *real_file_name, const char *file_name,
+ *dot = '\0';
+ }
+ *soname = copy;
+- *flag = FLAG_LIBC4;
+ goto done;
+ }
+
+@@ -191,9 +173,6 @@ implicit_soname (const char *lib, int flag)
+ {
+ char *soname = xstrdup (lib);
+
+- if ((flag & FLAG_TYPE_MASK) != FLAG_LIBC4)
+- return soname;
+-
+ /* Aout files don't have a soname, just return the name
+ including the major number. */
+ char *major = strstr (soname, ".so.");
+diff --git a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+deleted file mode 100644
+index 5cbfb32714..0000000000
+--- a/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
++++ /dev/null
+@@ -1,30 +0,0 @@
+-/* Copyright (C) 2009-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-aarch64_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-aarch64_be_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/arc/ldconfig.h b/sysdeps/unix/sysv/linux/arc/ldconfig.h
+deleted file mode 100644
+index f673170e59..0000000000
+--- a/sysdeps/unix/sysv/linux/arc/ldconfig.h
++++ /dev/null
+@@ -1,27 +0,0 @@
+-/* ldconfig default paths and libraries. Linux/RISC-V version.
+- Copyright (C) 2020-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux-arc.so.2", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-arceb.so.2", FLAG_ELF_LIBC6 },
+-
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/arm/ldconfig.h b/sysdeps/unix/sysv/linux/arm/ldconfig.h
+deleted file mode 100644
+index d1253993ea..0000000000
+--- a/sysdeps/unix/sysv/linux/arm/ldconfig.h
++++ /dev/null
+@@ -1,25 +0,0 @@
+-/* Copyright (C) 2001-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/csky/ldconfig.h b/sysdeps/unix/sysv/linux/csky/ldconfig.h
+deleted file mode 100644
+index fbe17e3dc8..0000000000
+--- a/sysdeps/unix/sysv/linux/csky/ldconfig.h
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* ldconfig default paths and libraries. Linux/C-SKY version.
+- Copyright (C) 2018-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define LD_SO_PREFIX "/lib/ld-linux-"
+-#define LD_SO_SUFFIX ".so.1"
+-
+-#ifdef __CSKY_HARD_FLOAT__
+-# define LD_SO_ABI "cskyv2-hf"
+-#else
+-# define LD_SO_ABI "cskyv2"
+-#endif
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { LD_SO_PREFIX LD_SO_ABI LD_SO_SUFFIX, FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/i386/ldconfig.h b/sysdeps/unix/sysv/linux/i386/ldconfig.h
+index bafbec1231..9afda09cca 100644
+--- a/sysdeps/unix/sysv/linux/i386/ldconfig.h
++++ b/sysdeps/unix/sysv/linux/i386/ldconfig.h
+@@ -16,9 +16,3 @@
+ <https://www.gnu.org/licenses/>. */
+
+ #include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux.so.1", FLAG_ELF_LIBC5 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.5", FLAG_ELF_LIBC5 }, \
+- { "libm.so.5", FLAG_ELF_LIBC5 },
+diff --git a/sysdeps/unix/sysv/linux/ia64/ldconfig.h b/sysdeps/unix/sysv/linux/ia64/ldconfig.h
+deleted file mode 100644
+index 4731419bf8..0000000000
+--- a/sysdeps/unix/sysv/linux/ia64/ldconfig.h
++++ /dev/null
+@@ -1,24 +0,0 @@
+-/* Copyright (C) 2001-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/m68k/ldconfig.h b/sysdeps/unix/sysv/linux/m68k/ldconfig.h
+deleted file mode 100644
+index 953f192bcd..0000000000
+--- a/sysdeps/unix/sysv/linux/m68k/ldconfig.h
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/ldconfig.h>
+diff --git a/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h b/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+deleted file mode 100644
+index ac82941aff..0000000000
+--- a/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
++++ /dev/null
+@@ -1,25 +0,0 @@
+-/* Copyright (C) 2001-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib32/ld.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib64/ld.so.1", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h b/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
+deleted file mode 100644
+index 1d70657838..0000000000
+--- a/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
++++ /dev/null
+@@ -1,27 +0,0 @@
+-/* ldconfig default paths and libraries. Linux/PowerPC version.
+- Copyright (C) 2002-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib64/ld64.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib64/ld64.so.2", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/riscv/ldconfig.h b/sysdeps/unix/sysv/linux/riscv/ldconfig.h
+deleted file mode 100644
+index e3847f116e..0000000000
+--- a/sysdeps/unix/sysv/linux/riscv/ldconfig.h
++++ /dev/null
+@@ -1,36 +0,0 @@
+-/* ldconfig default paths and libraries. Linux/RISC-V version.
+- Copyright (C) 2001-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define LD_SO_PREFIX "/lib/ld-linux-"
+-#define LD_SO_SUFFIX ".so.1"
+-
+-#if __riscv_xlen == 64
+-# define LD_SO_ABI "riscv64-lp64"
+-#else
+-# define LD_SO_ABI "riscv32-ilp32"
+-#endif
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { LD_SO_PREFIX LD_SO_ABI "d" LD_SO_SUFFIX, FLAG_ELF_LIBC6 }, \
+- { LD_SO_PREFIX LD_SO_ABI LD_SO_SUFFIX, FLAG_ELF_LIBC6 },
+-
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/s390/ldconfig.h b/sysdeps/unix/sysv/linux/s390/ldconfig.h
+index f564a6eaf6..9afda09cca 100644
+--- a/sysdeps/unix/sysv/linux/s390/ldconfig.h
++++ b/sysdeps/unix/sysv/linux/s390/ldconfig.h
+@@ -16,10 +16,3 @@
+ <https://www.gnu.org/licenses/>. */
+
+ #include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
+- { "/lib/ld64.so.1", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+diff --git a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h b/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
+deleted file mode 100644
+index b67203e017..0000000000
+--- a/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
++++ /dev/null
+@@ -1,26 +0,0 @@
+-/* Copyright (C) 2001-2021 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/>. */
+-
+-#include <sysdeps/generic/ldconfig.h>
+-
+-#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+- { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
+- { "/libx32/ld-linux-x32.so.2", FLAG_ELF_LIBC6 }, \
+- { "/lib64/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 },
+-#define SYSDEP_KNOWN_LIBRARY_NAMES \
+- { "libc.so.6", FLAG_ELF_LIBC6 }, \
+- { "libm.so.6", FLAG_ELF_LIBC6 },
+--
+2.39.2
+