powerpc: Remove unused dl-procinfo.h

The _dl_string_platform is moved to hwcapinfo.h, since it is only used
by hwcapinfo.c and test-get_hwcap internal test.

Checked on powerpc64le-linux-gnu.

Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
This commit is contained in:
Adhemerval Zanella 2025-02-26 17:09:50 +00:00
parent a768993c10
commit 2fd580ea46
6 changed files with 109 additions and 131 deletions

View file

@ -1,129 +0,0 @@
/* Processor capability information handling macros. PowerPC version.
Copyright (C) 2005-2025 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_FIRST_PLATFORM 32
/* Platform bits (relative to _DL_FIRST_PLATFORM). */
#define PPC_PLATFORM_POWER4 0
#define PPC_PLATFORM_PPC970 1
#define PPC_PLATFORM_POWER5 2
#define PPC_PLATFORM_POWER5_PLUS 3
#define PPC_PLATFORM_POWER6 4
#define PPC_PLATFORM_CELL_BE 5
#define PPC_PLATFORM_POWER6X 6
#define PPC_PLATFORM_POWER7 7
#define PPC_PLATFORM_PPCA2 8
#define PPC_PLATFORM_PPC405 9
#define PPC_PLATFORM_PPC440 10
#define PPC_PLATFORM_PPC464 11
#define PPC_PLATFORM_PPC476 12
#define PPC_PLATFORM_POWER8 13
#define PPC_PLATFORM_POWER9 14
#define PPC_PLATFORM_POWER10 15
#define PPC_PLATFORM_POWER11 16
static inline int
__attribute__ ((unused, always_inline))
_dl_string_platform (const char *str)
{
if (str == NULL)
return -1;
if (strncmp (str, "power", 5) == 0)
{
int ret;
str += 5;
switch (*str)
{
case '1':
if (str[1] == '0')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
str++;
}
else if (str[1] == '1')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11;
str++;
}
else
return -1;
break;
case '4':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
break;
case '5':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
if (str[1] == '+')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
++str;
}
break;
case '6':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
if (str[1] == 'x')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
++str;
}
break;
case '7':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
break;
case '8':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8;
break;
case '9':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9;
break;
default:
return -1;
}
if (str[1] == '\0')
return ret;
}
else if (strncmp (str, "ppc", 3) == 0)
{
if (strcmp (str + 3, "970") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
else if (strcmp (str + 3, "-cell-be") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
else if (strcmp (str + 3, "a2") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
else if (strcmp (str + 3, "405") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
else if (strcmp (str + 3, "440") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
else if (strcmp (str + 3, "464") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
else if (strcmp (str + 3, "476") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
}
return -1;
}
#define _dl_procinfo(type, word) -1
#endif /* dl-procinfo.h */

View file

@ -16,12 +16,114 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#include <string.h>
#include <stdint.h>
#ifndef HWCAPINFO_H
# define HWCAPINFO_H
extern tcbhead_t __tcb attribute_hidden;
#define _DL_FIRST_PLATFORM 32
/* Platform bits (relative to _DL_FIRST_PLATFORM). */
#define PPC_PLATFORM_POWER4 0
#define PPC_PLATFORM_PPC970 1
#define PPC_PLATFORM_POWER5 2
#define PPC_PLATFORM_POWER5_PLUS 3
#define PPC_PLATFORM_POWER6 4
#define PPC_PLATFORM_CELL_BE 5
#define PPC_PLATFORM_POWER6X 6
#define PPC_PLATFORM_POWER7 7
#define PPC_PLATFORM_PPCA2 8
#define PPC_PLATFORM_PPC405 9
#define PPC_PLATFORM_PPC440 10
#define PPC_PLATFORM_PPC464 11
#define PPC_PLATFORM_PPC476 12
#define PPC_PLATFORM_POWER8 13
#define PPC_PLATFORM_POWER9 14
#define PPC_PLATFORM_POWER10 15
#define PPC_PLATFORM_POWER11 16
static inline int
__attribute__ ((unused, always_inline))
_dl_string_platform (const char *str)
{
if (str == NULL)
return -1;
if (strncmp (str, "power", 5) == 0)
{
int ret;
str += 5;
switch (*str)
{
case '1':
if (str[1] == '0')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
str++;
}
else if (str[1] == '1')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11;
str++;
}
else
return -1;
break;
case '4':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
break;
case '5':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
if (str[1] == '+')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
++str;
}
break;
case '6':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
if (str[1] == 'x')
{
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
++str;
}
break;
case '7':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
break;
case '8':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8;
break;
case '9':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9;
break;
default:
return -1;
}
if (str[1] == '\0')
return ret;
}
else if (strncmp (str, "ppc", 3) == 0)
{
if (strcmp (str + 3, "970") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
else if (strcmp (str + 3, "-cell-be") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
else if (strcmp (str + 3, "a2") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
else if (strcmp (str + 3, "405") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
else if (strcmp (str + 3, "440") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
else if (strcmp (str + 3, "464") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
else if (strcmp (str + 3, "476") == 0)
return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
}
return -1;
}
extern void __tcb_parse_hwcap_and_convert_at_platform (void);

View file

@ -101,6 +101,8 @@ typedef struct
dtv_t *dtv;
} tcbhead_t;
extern tcbhead_t __tcb attribute_hidden;
# include <hwcapinfo.h>
/* This is the size of the initial TCB. */

View file

@ -28,9 +28,10 @@
#include <sys/auxv.h>
#include <dl-procinfo.h>
#include <hwcapinfo.h>
#ifndef STATIC_TST_HWCAP
#include <cpu-features.h>
#undef PROCINFO_DECL
#include <dl-procinfo.c>
#endif

View file

@ -24,6 +24,7 @@
#include <dl-hwcap-info.h>
#include <unistd.h>
#include <string.h>
#include <ldsodefs.h>
static void set_hwcap_bit (unsigned long int *hwcap, bool disable,
unsigned long int tcb_value, unsigned int value)

View file

@ -21,6 +21,7 @@
#include <elision-conf.h>
#include <unistd.h>
#include <dl-procinfo.h>
#include <ldsodefs.h>
#define TUNABLE_NAMESPACE elision
#include <elf/dl-tunables.h>