[PATCH v2] Remove unused dl-procinfo.h
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Wed Feb 26 19:04:50 GMT 2025
On 29/11/24 14:22, Wilco Dijkstra wrote:
> Hi Stefan,
>
>> For s390, we've discussed it internally and we are fine with removing
>> the names. Thus if you do so, as already mentioned please also remove
>> dl_s390_cap_flags in sysdeps/s390/dl-procinfo-s390.c and the
>> _DL_HWCAP_COUNT definition.
>
> I've done that and also removed the duplicated HWCAP definitions in
> sysdeps/s390/dl-procinfo.h (which allows its removal after adding a few
> includes of sys/auxv.h - overall this seems better, but please check that's
> fine). It passes buildmanyglibc.
>
> Cheers,
> Wilco
>
>
> v2: Remove s390 dl-procinfo.h.
>
> Remove unused _dl_hwcap_string defines. As a result many dl-procinfo.h headers
> can be removed. This also removes target specific _dl_procinfo implementations
> which only printed HWCAP strings using dl_hwcap_string.
>
> Passes buildmanyglibc, OK for commit?
LGTM, thanks. The powerpc still has the _dl_procinfo, so it will continue
to print the hwcap on LD_SHOW_AUXV. I rework how powerpc provide such
information, so we can eventually remove dl-procinfo.h [1]
This patch removes _dl_procinfo for both sparc and arm, but I think we can
eventually add them to ld.so diagnostics if they are really useful.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
[1] https://sourceware.org/pipermail/libc-alpha/2025-February/164955.html
>
> ---
>
> diff --git a/sysdeps/alpha/dl-procinfo.h b/sysdeps/alpha/dl-procinfo.h
> deleted file mode 100644
> index 8d17d42ce2da36be67e78a57c97b32ed02a57575..0000000000000000000000000000000000000000
> --- a/sysdeps/alpha/dl-procinfo.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Alpha version of processor capability information handling macros.
> - Copyright (C) 2008-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <ldsodefs.h>
> -
> -/* We cannot provide a general printing function. */
> -#define _dl_procinfo(type, word) -1
> -
> -/* There are no hardware capabilities defined. */
> -#define _dl_hwcap_string(idx) ""
> -
> -/* We don't have any hardware capabilities. */
> -#define _DL_HWCAP_COUNT 0
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/csky/dl-procinfo.h b/sysdeps/csky/dl-procinfo.h
> deleted file mode 100644
> index f5f6343cf64b3448b28496934c6f7d07428c7280..0000000000000000000000000000000000000000
> --- a/sysdeps/csky/dl-procinfo.h
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -/* C-SKY version of processor capability information handling macros.
> - Copyright (C) 2018-2024 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/>. */
> -
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <ldsodefs.h>
> -
> -/* We cannot provide a general printing function. */
> -#define _dl_procinfo(word, val) -1
> -
> -/* There are no hardware capabilities defined. */
> -#define _dl_hwcap_string(idx) ""
> -
> -/* We don't have any hardware capabilities. */
> -#define _DL_HWCAP_COUNT 0
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/generic/dl-procinfo.h b/sysdeps/generic/dl-procinfo.h
> index 93edfc00cb3830608d8715765cfa120cfe163d84..04d6fb00a202675aa6b895dd3b9c5a19ff68ca20 100644
> --- a/sysdeps/generic/dl-procinfo.h
> +++ b/sysdeps/generic/dl-procinfo.h
> @@ -22,10 +22,4 @@
> /* We cannot provide a general printing function. */
> #define _dl_procinfo(type, word) -1
>
> -/* There are no hardware capabilities defined. */
> -#define _dl_hwcap_string(idx) ""
> -
> -/* We don't have any hardware capabilities. */
> -#define _DL_HWCAP_COUNT 0
> -
> #endif /* dl-procinfo.h */
> diff --git a/sysdeps/i386/dl-procinfo.c b/sysdeps/i386/dl-procinfo.c
> index e7c82414c01003e6d69769debac385f6ff77cbbb..fb82fbd7f11416173109938211bb807764d42453 100644
> --- a/sysdeps/i386/dl-procinfo.c
> +++ b/sysdeps/i386/dl-procinfo.c
> @@ -41,24 +41,5 @@
>
> #include <sysdeps/x86/dl-procinfo.c>
>
> -#if !defined PROCINFO_DECL && defined SHARED
> - ._dl_x86_cap_flags
> -#else
> -PROCINFO_CLASS const char _dl_x86_cap_flags[32][8]
> -#endif
> -#ifndef PROCINFO_DECL
> -= {
> - "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
> - "cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov",
> - "pat", "pse36", "pn", "clflush", "20", "dts", "acpi", "mmx",
> - "fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", "pbe"
> - }
> -#endif
> -#if !defined SHARED || defined PROCINFO_DECL
> -;
> -#else
> -,
> -#endif
> -
> #undef PROCINFO_DECL
> #undef PROCINFO_CLASS
> diff --git a/sysdeps/mips/dl-procinfo.h b/sysdeps/mips/dl-procinfo.h
> deleted file mode 100644
> index af2616e1db61a1485cc32323c3e0b3a4cd898587..0000000000000000000000000000000000000000
> --- a/sysdeps/mips/dl-procinfo.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/* Mips version of processor capability information handling macros.
> - Copyright (C) 2007-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <ldsodefs.h>
> -
> -/* We cannot provide a general printing function. */
> -#define _dl_procinfo(type, word) -1
> -
> -/* There are no hardware capabilities defined. */
> -#define _dl_hwcap_string(idx) ""
> -
> -/* We don't have any hardware capabilities. */
> -#define _DL_HWCAP_COUNT 0
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/mips/dl-procinfo.c b/sysdeps/mips/dl-procinfo.c
> deleted file mode 100644
> index 6a1aaefef2ea9be87d258084d3fadcc6718e470f..0000000000000000000000000000000000000000
> --- a/sysdeps/mips/dl-procinfo.c
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -/* Data for Mips version of processor capability information.
> - Copyright (C) 2007-2024 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/>. */
> -
> -/* Note:
> - When compiling elf/ldconfig.c, PROCINFO_CLASS is defined to static.
> - This dl-procinfo.c is included in sysdeps/generic/ldsodefs.h.
> - Afterwards, if not yet defined, PROCINFO_CLASS is defined to EXTERN
> - just before dl-vdso-setup.c is included. A "static" _dl_vdso_xyz
> - function prototype would lead to gcc warnings/errors: defined but
> - not used. */
> -#undef PROCINFO_DECL
> -#undef PROCINFO_CLASS
> diff --git a/sysdeps/s390/Makefile b/sysdeps/s390/Makefile
> index b793b26112130ff8e9861c8ef1c93a991a86127b..985b4f25eef6a960a41ae404cdc18acc6b110fcb 100644
> --- a/sysdeps/s390/Makefile
> +++ b/sysdeps/s390/Makefile
> @@ -43,7 +43,6 @@ $(modpfx)gconv-modules-s390.conf: ../sysdeps/s390/gconv-modules-s390.conf \
> endif
>
> ifeq ($(subdir),elf)
> -sysdep-dl-routines += dl-procinfo-s390
>
> ifeq ($(build-shared),yes)
> tests += tst-dl-runtime-resolve-noaudit tst-dl-runtime-resolve-audit \
> diff --git a/sysdeps/s390/cpu-features.c b/sysdeps/s390/cpu-features.c
> index bc4ad601f1d1db87040798f1389a65996ca839c1..b7493d0d754889cdfa9398f92443d1a05e070ae8 100644
> --- a/sysdeps/s390/cpu-features.c
> +++ b/sysdeps/s390/cpu-features.c
> @@ -17,7 +17,8 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <cpu-features.h>
> -
> +#include <ldsodefs.h>
> +#include <sys/auxv.h>
> #include <elf/dl-tunables.h>
> #include <ifunc-memcmp.h>
> #include <string.h>
> diff --git a/sysdeps/s390/dl-procinfo-s390.c b/sysdeps/s390/dl-procinfo-s390.c
> deleted file mode 100644
> index 652f6067a352b9ab4a047549a4889288725daeb7..0000000000000000000000000000000000000000
> --- a/sysdeps/s390/dl-procinfo-s390.c
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -/* Data for s390 version of processor capability information.
> - Copyright (C) 2006-2024 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 <dl-procinfo.h>
> -
> -const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] =
> - {
> - "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh",
> - "highgprs", "te", "vx", "vxd", "vxe", "gs", "vxe2", "vxp", "sort", "dflt",
> - "vxp2", "nnpa", "pcimio", "sie"
> - };
> diff --git a/sysdeps/s390/dl-procinfo.h b/sysdeps/s390/dl-procinfo.h
> deleted file mode 100644
> index 45dd11c189b48e0fba436cc57dcee6b290d5c08f..0000000000000000000000000000000000000000
> --- a/sysdeps/s390/dl-procinfo.h
> +++ /dev/null
> @@ -1,72 +0,0 @@
> -/* s390 version of processor capability information handling macros.
> - Copyright (C) 2006-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -#include <ldsodefs.h>
> -
> -#define _DL_HWCAP_COUNT 23
> -extern const char _dl_s390_cap_flags[_DL_HWCAP_COUNT][9] attribute_hidden;
> -
> -/* Hardware capability bit numbers are derived directly from the
> - facility indications as stored by the "store facility list" (STFL)
> - instruction.
> - highgprs is an alien in that list. It describes a *kernel*
> - capability. */
> -
> -enum
> -{
> - HWCAP_S390_ESAN3 = 1 << 0,
> - HWCAP_S390_ZARCH = 1 << 1,
> - HWCAP_S390_STFLE = 1 << 2,
> - HWCAP_S390_MSA = 1 << 3,
> - HWCAP_S390_LDISP = 1 << 4,
> - HWCAP_S390_EIMM = 1 << 5,
> - HWCAP_S390_DFP = 1 << 6,
> - HWCAP_S390_HPAGE = 1 << 7,
> - HWCAP_S390_ETF3EH = 1 << 8,
> - HWCAP_S390_HIGH_GPRS = 1 << 9,
> - HWCAP_S390_TE = 1 << 10,
> - HWCAP_S390_VX = 1 << 11,
> - HWCAP_S390_VXRS = HWCAP_S390_VX,
> - HWCAP_S390_VXD = 1 << 12,
> - HWCAP_S390_VXRS_BCD = HWCAP_S390_VXD,
> - HWCAP_S390_VXE = 1 << 13,
> - HWCAP_S390_VXRS_EXT = HWCAP_S390_VXE,
> - HWCAP_S390_GS = 1 << 14,
> - HWCAP_S390_VXRS_EXT2 = 1 << 15,
> - HWCAP_S390_VXRS_PDE = 1 << 16,
> - HWCAP_S390_SORT = 1 << 17,
> - HWCAP_S390_DFLT = 1 << 18,
> - HWCAP_S390_VXRS_PDE2 = 1 << 19,
> - HWCAP_S390_NNPA = 1 << 20,
> - HWCAP_S390_PCI_MIO = 1 << 21,
> - HWCAP_S390_SIE = 1 << 22,
> -};
> -
> -/* We cannot provide a general printing function. */
> -#define _dl_procinfo(type, word) -1
> -
> -static inline const char *
> -__attribute__ ((unused))
> -_dl_hwcap_string (int idx)
> -{
> - return _dl_s390_cap_flags[idx];
> -};
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/s390/dl-procinfo.c b/sysdeps/s390/dl-procinfo.c
> index b6f446709cbeeeb1da692edd39f8c5b5896f768c..3c2d9eb066b4ae91a9d778d6be4950a30cf5aeb8 100644
> --- a/sysdeps/s390/dl-procinfo.c
> +++ b/sysdeps/s390/dl-procinfo.c
> @@ -16,9 +16,6 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -/* The hwcap and platform strings are now in
> - sysdeps/s390/dl-procinfo-s390.c. */
> -
> /* Needed by sysdeps/unix/sysv/linux/dl-vdso-setup.c (as included from
> sysdeps/generic/ldsodefs.h). */
>
> diff --git a/sysdeps/s390/multiarch/ifunc-resolve.h b/sysdeps/s390/multiarch/ifunc-resolve.h
> index 2a0c4a56a4a8b62737bed3fd01a727ffa21edfcc..f3aaec397af03005226fefadf63d74627ac6d56d 100644
> --- a/sysdeps/s390/multiarch/ifunc-resolve.h
> +++ b/sysdeps/s390/multiarch/ifunc-resolve.h
> @@ -18,8 +18,9 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <unistd.h>
> -#include <dl-procinfo.h>
> #include <cpu-features.h>
> +#include <ldsodefs.h>
> +#include <sys/auxv.h>
>
> #define s390_libc_ifunc_expr_stfle_init() \
> const unsigned long long *stfle_bits = features->stfle_bits;
> diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
> index 15ff999289efcc30fae3c5a14670e63161bba147..b6d9ce3c1fd6f79f873f78b35c16d53d8a6510b9 100644
> --- a/sysdeps/s390/s390-32/dl-machine.h
> +++ b/sysdeps/s390/s390-32/dl-machine.h
> @@ -24,7 +24,6 @@
> #include <sys/param.h>
> #include <string.h>
> #include <link.h>
> -#include <sysdeps/s390/dl-procinfo.h>
> #include <dl-irel.h>
> #include <dl-static-tls.h>
> #include <dl-machine-rel.h>
> diff --git a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
> index 0a8cce1d3c2bccd5b97c42f3669c9a8654d9cc7a..10c97d3a0dd52591759b6ff6f9904fcc98f7fdbe 100644
> --- a/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
> +++ b/sysdeps/s390/s390-64/dl-hwcaps-subdirs.c
> @@ -18,6 +18,7 @@
>
> #include <dl-hwcaps.h>
> #include <ldsodefs.h>
> +#include <sys/auxv.h>
>
> const char _dl_hwcaps_subdirs[] = "z16:z15:z14:z13";
> enum { subdirs_count = 4 }; /* Number of components in _dl_hwcaps_subdirs. */
> diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
> index 5ed0b844e0b35ec904817e6774b257db7ef45e0d..b66b7bd0ded882466716ad11371a20cc9382e8f0 100644
> --- a/sysdeps/s390/s390-64/dl-machine.h
> +++ b/sysdeps/s390/s390-64/dl-machine.h
> @@ -25,7 +25,6 @@
> #include <sys/param.h>
> #include <string.h>
> #include <link.h>
> -#include <sysdeps/s390/dl-procinfo.h>
> #include <dl-irel.h>
> #include <dl-static-tls.h>
> #include <dl-machine-rel.h>
> diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h
> deleted file mode 100644
> index 709178706c5a43a87d235ed40f1643e730135682..0000000000000000000000000000000000000000
> --- a/sysdeps/sparc/dl-procinfo.h
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -/* Linux/sparc version of processor capability information handling macros.
> - Copyright (C) 1999-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <ldsodefs.h>
> -#include <sysdep.h>
> -
> -#define _DL_HWCAP_COUNT 28
> -
> -static inline int
> -__attribute__ ((unused))
> -_dl_procinfo (unsigned int type, unsigned long int word)
> -{
> - int i;
> -
> - /* Fallback to generic output mechanism. */
> - if (type != AT_HWCAP)
> - return -1;
> -
> - _dl_printf ("AT_HWCAP: ");
> -
> - for (i = 0; i < _DL_HWCAP_COUNT; ++i)
> - if (word & (1 << i))
> - _dl_printf (" %s", GLRO(dl_sparc_cap_flags)[i]);
> -
> - _dl_printf ("\n");
> -
> - return 0;
> -}
> -
> -static inline const char *
> -__attribute__ ((unused))
> -_dl_hwcap_string (int idx)
> -{
> - return GLRO(dl_sparc_cap_flags)[idx];
> -};
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/sparc/dl-procinfo.c b/sysdeps/sparc/dl-procinfo.c
> deleted file mode 100644
> index 643fbd9ebf801cd0fff6a2b499c677153a601aa3..0000000000000000000000000000000000000000
> --- a/sysdeps/sparc/dl-procinfo.c
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -/* Data for Linux/sparc version of processor capability information.
> - Copyright (C) 2002-2024 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 information must be kept in sync with the _DL_HWCAP_COUNT
> - definition in procinfo.h.
> -
> - If anything should be added here check whether the size of each string
> - is still ok with the given array size.
> -
> - All the #ifdefs in the definitions ar equite irritating but
> - necessary if we want to avoid duplicating the information. There
> - are three different modes:
> -
> - - PROCINFO_DECL is defined. This means we are only interested in
> - declarations.
> -
> - - PROCINFO_DECL is not defined:
> -
> - + if SHARED is defined the file is included in an array
> - initializer. The .element = { ... } syntax is needed.
> -
> - + if SHARED is not defined a normal array initialization is
> - needed.
> - */
> -
> -#ifndef PROCINFO_CLASS
> -#define PROCINFO_CLASS
> -#endif
> -
> -#if !defined PROCINFO_DECL && defined SHARED
> - ._dl_sparc_cap_flags
> -#else
> -PROCINFO_CLASS const char _dl_sparc_cap_flags[28][11]
> -#endif
> -#ifndef PROCINFO_DECL
> - = { "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v", "v9v2",
> - "mul32", "div32", "fsmuld", "v8plus", "popc", "vis", "vis2",
> - "ASIBlkInit", "fmaf", "vis3", "hpc", "random", "trans", "fjfmau",
> - "ima", "cspare", "pause", "cbcond", "crypto", "adp" }
> -#endif
> -#if !defined SHARED || defined PROCINFO_DECL
> -;
> -#else
> -,
> -#endif
> -
> -#undef PROCINFO_DECL
> -#undef PROCINFO_CLASS
> diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
> deleted file mode 100644
> index b85d4ad8a32e41fb6f884517108f806ad62bf93b..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/* Processor capability information handling macros - aarch64 version.
> - Copyright (C) 2017-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <sys/auxv.h>
> -#include <unistd.h>
> -#include <ldsodefs.h>
> -#include <sysdep.h>
> -
> -/* We cannot provide a general printing function. */
> -#define _dl_procinfo(type, word) -1
> -
> -static inline const char *
> -__attribute__ ((unused))
> -_dl_hwcap_string (int idx)
> -{
> - return (unsigned)idx < _DL_HWCAP_COUNT ? GLRO(dl_aarch64_cap_flags)[idx] : "";
> -};
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
> index 7af232de523e8e2cc95554a49fcf26842ad7ecaa..f303d7ab47903af547b05436c473eea1df9be5e2 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
> +++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
> @@ -56,27 +56,5 @@ PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
> # endif
> #endif
>
> -/* Number of HWCAP bits set. */
> -#define _DL_HWCAP_COUNT 32
> -
> -#if !defined PROCINFO_DECL && defined SHARED
> - ._dl_aarch64_cap_flags
> -#else
> -PROCINFO_CLASS const char _dl_aarch64_cap_flags[_DL_HWCAP_COUNT][10]
> -#endif
> -#ifndef PROCINFO_DECL
> -/* Matches the names in arch/arm64/kernel/cpuinfo.c of Linux. */
> -= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
> - "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
> - "lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve",
> - "asimdfhm", "dit", "uscat", "ilrcpc", "flagm", "ssbs", "sb", "paca",
> - "pacg" }
> -#endif
> -#if !defined SHARED || defined PROCINFO_DECL
> -;
> -#else
> -,
> -#endif
> -
> #undef PROCINFO_DECL
> #undef PROCINFO_CLASS
> diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
> deleted file mode 100644
> index 7d26216718d3b0bee35b16c62ff08a2e3bdbe873..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -/* Linux/ARM version of processor capability information handling macros.
> - Copyright (C) 2001-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -
> -#include <ldsodefs.h>
> -#include <sysdep.h>
> -
> -#define _DL_HWCAP_COUNT 27
> -
> -/* Low 28 bits are allocated in HWCAP. */
> -#define _DL_HWCAP_LAST 27
> -
> -/* Low 7 bits are allocated in HWCAP2. */
> -#define _DL_HWCAP2_LAST 6
> -
> -
> -static inline const char *
> -__attribute__ ((unused))
> -_dl_hwcap_string (int idx)
> -{
> - return GLRO(dl_arm_cap_flags)[idx];
> -};
> -
> -static inline int
> -__attribute__ ((unused))
> -_dl_procinfo (unsigned int type, unsigned long int word)
> -{
> - switch(type)
> - {
> - case AT_HWCAP:
> - _dl_printf ("AT_HWCAP: ");
> -
> - for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
> - if (word & (1 << i))
> - _dl_printf (" %s", _dl_hwcap_string (i));
> - break;
> - case AT_HWCAP2:
> - {
> - unsigned int offset = _DL_HWCAP_LAST + 1;
> -
> - _dl_printf ("AT_HWCAP2: ");
> -
> - for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
> - if (word & (1 << i))
> - _dl_printf (" %s", _dl_hwcap_string (offset + i));
> - break;
> - }
> - default:
> - /* Fallback to generic output mechanism. */
> - return -1;
> - }
> - _dl_printf ("\n");
> - return 0;
> -}
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
> deleted file mode 100644
> index ad18a8ce8f1dd1a202e03ec3f15da23d436cac15..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/* Data for Linux/ARM version of processor capability information.
> - Copyright (C) 2001-2024 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 information must be kept in sync with the _DL_HWCAP_COUNT and
> - _DL_PLATFORM_COUNT definitions in procinfo.h.
> -
> - If anything should be added here check whether the size of each string
> - is still ok with the given array size.
> -
> - All the #ifdefs in the definitions are quite irritating but
> - necessary if we want to avoid duplicating the information. There
> - are three different modes:
> -
> - - PROCINFO_DECL is defined. This means we are only interested in
> - declarations.
> -
> - - PROCINFO_DECL is not defined:
> -
> - + if SHARED is defined the file is included in an array
> - initializer. The .element = { ... } syntax is needed.
> -
> - + if SHARED is not defined a normal array initialization is
> - needed.
> - */
> -
> -#ifndef PROCINFO_CLASS
> -#define PROCINFO_CLASS
> -#endif
> -
> -#if !defined PROCINFO_DECL && defined SHARED
> - ._dl_arm_cap_flags
> -#else
> -PROCINFO_CLASS const char _dl_arm_cap_flags[35][10]
> -#endif
> -#ifndef PROCINFO_DECL
> -= {
> - "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
> - "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
> - "tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
> - "fphp", "asimdhp", "asimddp", "asimdfhm", "asimdbf16", "i8mm",
> - "aes", "pmull", "sha1", "sha2", "crc32", "sb", "ssbs",
> - }
> -#endif
> -#if !defined SHARED || defined PROCINFO_DECL
> -;
> -#else
> -,
> -#endif
> -
> -#undef PROCINFO_DECL
> -#undef PROCINFO_CLASS
> diff --git a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
> deleted file mode 100644
> index 3de8dea0df44086424524a9e58e4a455461fb74a..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -/* Linux/i386 version of processor capability information handling macros.
> - Copyright (C) 1998-2024 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/>. */
> -
> -#ifndef _DL_I386_PROCINFO_H
> -#define _DL_I386_PROCINFO_H 1
> -#include <sysdeps/x86/dl-procinfo.h>
> -
> -#undef _dl_procinfo
> -static inline int
> -__attribute__ ((unused))
> -_dl_procinfo (unsigned int type, unsigned long int word)
> -{
> - /* This table should match the information from arch/i386/kernel/setup.c
> - in the kernel sources. */
> - int i;
> -
> - /* Fallback to generic output mechanism. */
> - if (type != AT_HWCAP)
> - return -1;
> -
> - _dl_printf ("AT_HWCAP: ");
> -
> - for (i = 0; i < 32; ++i)
> - if (word & (1 << i))
> - _dl_printf (" %s", GLRO(dl_x86_cap_flags)[i]);
> -
> - _dl_printf ("\n");
> -
> - return 0;
> -}
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
> deleted file mode 100644
> index bcae03e93416648ee7e895ae0759c91f04bd3635..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/* Linux/s390 version of processor capability information handling macros.
> - Copyright (C) 2006-2024 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/>. */
> -
> -#ifndef _DL_S390_PROCINFO_H
> -#define _DL_S390_PROCINFO_H 1
> -#include <sysdeps/s390/dl-procinfo.h>
> -#include <ldsodefs.h>
> -
> -
> -#undef _dl_procinfo
> -static inline int
> -__attribute__ ((unused))
> -_dl_procinfo (unsigned int type, unsigned long int word)
> -{
> - /* This table should match the information from arch/s390/kernel/setup.c
> - in the kernel sources. */
> - int i;
> -
> - /* Fallback to generic output mechanism. */
> - if (type != AT_HWCAP)
> - return -1;
> -
> - _dl_printf ("AT_HWCAP: ");
> -
> - for (i = 0; i < _DL_HWCAP_COUNT; ++i)
> - if (word & (1UL << i))
> - _dl_printf (" %s", _dl_s390_cap_flags[i]);
> -
> - _dl_printf ("\n");
> -
> - return 0;
> -}
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c
> index 08b902837b01746cefeb2514580f2e54b9a4e590..954bcfcae6c17aa0c02a176f45e45e7ecd887fa5 100644
> --- a/sysdeps/unix/sysv/linux/s390/elision-conf.c
> +++ b/sysdeps/unix/sysv/linux/s390/elision-conf.c
> @@ -20,7 +20,8 @@
> #include <pthreadP.h>
> #include <elision-conf.h>
> #include <unistd.h>
> -#include <dl-procinfo.h>
> +#include <ldsodefs.h>
> +#include <sys/auxv.h>
>
> #define TUNABLE_NAMESPACE elision
> #include <elf/dl-tunables.h>
> diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c
> index ca25822811ae500ec0e9bed5d21e3fe888b20904..8b8c0fc5e2ae73219c21902c4866851349c62b81 100644
> --- a/sysdeps/unix/sysv/linux/s390/sysconf.c
> +++ b/sysdeps/unix/sysv/linux/s390/sysconf.c
> @@ -17,8 +17,9 @@
> <https://www.gnu.org/licenses/>. */
>
> #include <unistd.h>
> -#include <dl-procinfo.h>
> #include <cpu-features.h>
> +#include <ldsodefs.h>
> +#include <sys/auxv.h>
>
> static long int linux_sysconf (int name);
>
> diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h b/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
> deleted file mode 100644
> index 7b45fe4bf8675a16573764b316106c63401a5a45..0000000000000000000000000000000000000000
> --- a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#if IS_IN (ldconfig)
> -# include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
> -#else
> -# include <sysdeps/x86/dl-procinfo.h>
> -#endif
> diff --git a/sysdeps/x86/dl-hwcap.h b/sysdeps/x86/dl-hwcap.h
> index 325f1c467ca77bf4f4c9d5aa4009b39bcea9592e..8c181e3cb3639932997da42252ccd690081284e7 100644
> --- a/sysdeps/x86/dl-hwcap.h
> +++ b/sysdeps/x86/dl-hwcap.h
> @@ -25,13 +25,6 @@ enum
> HWCAP_X86_AVX512_1 = 1 << 2
> };
>
> -static inline const char *
> -__attribute__ ((unused))
> -_dl_hwcap_string (int idx)
> -{
> - return GLRO(dl_x86_hwcap_flags)[idx];
> -};
> -
> /* We cannot provide a general printing function. */
> #define _dl_procinfo(type, word) -1
>
> diff --git a/sysdeps/x86/dl-procinfo.h b/sysdeps/x86/dl-procinfo.h
> deleted file mode 100644
> index ea0f33bbad7adbbc092f91a7812500c8014989ed..0000000000000000000000000000000000000000
> --- a/sysdeps/x86/dl-procinfo.h
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -/* x86 version of processor capability information handling macros.
> - Copyright (C) 2017-2024 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/>. */
> -
> -#ifndef _DL_PROCINFO_H
> -#define _DL_PROCINFO_H 1
> -#include <ldsodefs.h>
> -#include <dl-hwcap.h>
> -
> -#define _DL_HWCAP_COUNT HWCAP_COUNT
> -
> -#endif /* dl-procinfo.h */
> diff --git a/sysdeps/x86/dl-procinfo.c b/sysdeps/x86/dl-procinfo.c
> index b791fd3e92ba53f7611e82d3fbbebc61fce34d7e..b6b8f7d24e8fca59c8066e7824ac61b0ad63f26d 100644
> --- a/sysdeps/x86/dl-procinfo.c
> +++ b/sysdeps/x86/dl-procinfo.c
> @@ -54,22 +54,6 @@ PROCINFO_CLASS struct cpu_features _dl_x86_cpu_features
> # endif
> #endif
>
> -#if !defined PROCINFO_DECL && defined SHARED
> - ._dl_x86_hwcap_flags
> -#else
> -PROCINFO_CLASS const char _dl_x86_hwcap_flags[3][9]
> -#endif
> -#ifndef PROCINFO_DECL
> -= {
> - "sse2", "x86_64", "avx512_1"
> - }
> -#endif
> -#if !defined SHARED || defined PROCINFO_DECL
> -;
> -#else
> -,
> -#endif
> -
> #if defined SHARED && !IS_IN (ldconfig)
> # if !defined PROCINFO_DECL
> ._dl_x86_tlsdesc_dynamic
>
More information about the Libc-alpha
mailing list