1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

powerpc: Move cache line size to rtld_global_ro

GCC 10.0 enabled -fno-common by default and this started to point that
__cache_line_size had been implemented in 2 different places: loader and
libc.

In order to avoid this duplication, the libc variable has been removed
and the loader variable is moved to rtld_global_ro.

File sysdeps/unix/sysv/linux/powerpc/dl-auxv.h has been added in order
to reuse code for both static and dynamic linking scenarios.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Tulio Magno Quites Machado Filho
2020-01-10 19:14:56 -03:00
parent c908ae0492
commit 18363b4f01
20 changed files with 314 additions and 69 deletions

View File

@ -24,7 +24,6 @@
#include <hwcapinfo.h>
#endif
int __cache_line_size attribute_hidden;
/* The main work is done in the generic function. */
#define LIBC_START_MAIN generic_start_main
#define LIBC_START_DISABLE_INLINE
@ -71,15 +70,12 @@ __libc_start_main (int argc, char **argv,
rtld_fini = NULL;
}
/* Initialize the __cache_line_size variable from the aux vector. For the
static case, we also need _dl_hwcap, _dl_hwcap2 and _dl_platform, so we
can call __tcb_parse_hwcap_and_convert_at_platform (). */
for (ElfW (auxv_t) * av = auxvec; av->a_type != AT_NULL; ++av)
switch (av->a_type)
{
case AT_DCACHEBSIZE:
__cache_line_size = av->a_un.a_val;
break;
/* For the static case, we also need _dl_hwcap, _dl_hwcap2 and
_dl_platform, so we can call
__tcb_parse_hwcap_and_convert_at_platform (). */
#ifndef SHARED
case AT_HWCAP:
_dl_hwcap = (unsigned long int) av->a_un.a_val;