aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-05 10:29:47 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-05 10:29:47 +0000
commitafdca0f2a3a18fb0dcfc334c205e0fb96e90e839 (patch)
tree59ba9a29d6174ebbbbe09258ea52e9f956e33c2e /sysdeps
parent20c37dfde1a836a139f6269e8617260f2b90bf52 (diff)
downloadglibc-afdca0f2a3a18fb0dcfc334c205e0fb96e90e839.zip
glibc-afdca0f2a3a18fb0dcfc334c205e0fb96e90e839.tar.gz
glibc-afdca0f2a3a18fb0dcfc334c205e0fb96e90e839.tar.bz2
Update.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/s390/s390-64/dl-machine.h: Likewise. * sysdeps/s390/s390-32/dl-machine.h: Likewise. * sysdeps/powerpc/powerpc64/dl-machine.h: Likewise. * sysdeps/powerpc/powerpc32/dl-machine.c: Likewise. * sysdeps/m68k/dl-machine.h: Likewise. * sysdeps/ia64/dl-machine.h: Likewise. * sysdeps/arm/dl-machine.h: Likewise. * sysdeps/alpha/dl-machine.h: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/alpha/dl-machine.h4
-rw-r--r--sysdeps/arm/dl-machine.h12
-rw-r--r--sysdeps/generic/dl-cache.c19
-rw-r--r--sysdeps/generic/dl-origin.c8
-rw-r--r--sysdeps/generic/dl-sysdep.c31
-rw-r--r--sysdeps/generic/libc-start.c4
-rw-r--r--sysdeps/i386/dl-machine.h12
-rw-r--r--sysdeps/i386/fpu/fclrexcpt.c2
-rw-r--r--sysdeps/i386/fpu/fedisblxcpt.c4
-rw-r--r--sysdeps/i386/fpu/feenablxcpt.c4
-rw-r--r--sysdeps/i386/fpu/feholdexcpt.c4
-rw-r--r--sysdeps/i386/fpu/fesetround.c4
-rw-r--r--sysdeps/i386/fpu/fsetexcptflg.c6
-rw-r--r--sysdeps/i386/fpu/ftestexcept.c4
-rw-r--r--sysdeps/i386/setfpucw.c4
-rw-r--r--sysdeps/ia64/dl-machine.h2
-rw-r--r--sysdeps/m68k/dl-machine.h6
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c10
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h7
-rw-r--r--sysdeps/s390/s390-32/dl-machine.h10
-rw-r--r--sysdeps/s390/s390-64/dl-machine.h10
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h16
-rw-r--r--sysdeps/sparc/sparc64/dl-machine.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-execstack.c17
-rw-r--r--sysdeps/unix/sysv/linux/dl-librecon.h4
-rw-r--r--sysdeps/unix/sysv/linux/dl-origin.c8
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h4
-rw-r--r--sysdeps/unix/sysv/linux/getclktck.c4
-rw-r--r--sysdeps/unix/sysv/linux/getpagesize.c7
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-librecon.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/init-first.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S50
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S96
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S127
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S334
-rw-r--r--sysdeps/unix/sysv/linux/prof-freq.c8
-rw-r--r--sysdeps/x86_64/dl-machine.h8
38 files changed, 435 insertions, 431 deletions
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 3616fae..35d7e1d 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -114,7 +114,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
*(Elf64_Addr *)(plt + 16) = (Elf64_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
{
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
@@ -648,7 +648,7 @@ static inline void
elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
void *const reloc_addr_arg)
{
- /* XXX Make some timings. Maybe it's preferable to test for
+ /* XXX Make some timings. Maybe it's preferable to test for
unaligned access and only do it the complex way if necessary. */
Elf64_Addr reloc_addr_val;
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 9b1d53a..25a8515 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM version.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -110,7 +110,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
/* Say that we really want profiling and the timers are
started. */
GL(dl_profile_map) = l;
@@ -334,9 +334,9 @@ _dl_start_user:\n\
static inline void __attribute__ ((unused))
dl_platform_init (void)
{
- if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
/* Avoid an empty string which would disturb us. */
- GL(dl_platform) = NULL;
+ GLRO(dl_platform) = NULL;
}
static inline Elf32_Addr
@@ -444,7 +444,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
found. */
break;
if (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
{
const char *strtab;
@@ -556,7 +556,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
found. */
break;
if (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
{
const char *strtab;
diff --git a/sysdeps/generic/dl-cache.c b/sysdeps/generic/dl-cache.c
index b17c18b..5a44148 100644
--- a/sysdeps/generic/dl-cache.c
+++ b/sysdeps/generic/dl-cache.c
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1996-2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2002, 2003, 2004 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
@@ -107,12 +107,12 @@ do \
if (_dl_cache_check_flags (flags) \
&& _dl_cache_verify_ptr (lib->value)) \
{ \
- if (best == NULL || flags == GL(dl_correct_cache_id)) \
+ if (best == NULL || flags == GLRO(dl_correct_cache_id)) \
{ \
HWCAP_CHECK; \
best = cache_data + lib->value; \
\
- if (flags == GL(dl_correct_cache_id)) \
+ if (flags == GLRO(dl_correct_cache_id)) \
/* We've found an exact match for the shared \
object and no general `ELF' release. Stop \
searching. */ \
@@ -187,7 +187,7 @@ _dl_load_cache_lookup (const char *name)
const char *best;
/* Print a message if the loading of libs is traced. */
- if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_LIBS, 0))
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0))
INTUSE(_dl_debug_printf) (" search cache=%s\n", LD_SO_CACHE);
if (cache == NULL)
@@ -256,15 +256,15 @@ _dl_load_cache_lookup (const char *name)
/* Now we can compute how large the string table is. */
cache_data_size = (const char *) cache + cachesize - cache_data;
- hwcap = &GL(dl_hwcap);
- platform = _dl_string_platform (GL(dl_platform));
+ hwcap = &GLRO(dl_hwcap);
+ platform = _dl_string_platform (GLRO(dl_platform));
if (platform != (uint64_t) -1)
platform = 1ULL << platform;
/* Only accept hwcap if it's for the right platform. */
#define HWCAP_CHECK \
- if (GL(dl_osversion) \
- && cache_new->libs[middle].osversion > GL(dl_osversion)) \
+ if (GLRO(dl_osversion) \
+ && cache_new->libs[middle].osversion > GLRO(dl_osversion)) \
continue; \
if (_DL_PLATFORMS_COUNT && platform != -1 \
&& (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \
@@ -289,7 +289,8 @@ _dl_load_cache_lookup (const char *name)
}
/* Print our result if wanted. */
- if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_LIBS, 0) && best != NULL)
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_LIBS, 0)
+ && best != NULL)
INTUSE(_dl_debug_printf) (" trying file=%s\n", best);
return best;
diff --git a/sysdeps/generic/dl-origin.c b/sysdeps/generic/dl-origin.c
index b198f70..4837c2e 100644
--- a/sysdeps/generic/dl-origin.c
+++ b/sysdeps/generic/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -33,15 +33,15 @@ _dl_get_origin (void)
char *result = (char *) -1;
/* We use the environment variable LD_ORIGIN_PATH. If it is set make
a copy and strip out trailing slashes. */
- if (GL(dl_origin_path) != NULL)
+ if (GLRO(dl_origin_path) != NULL)
{
- size_t len = strlen (GL(dl_origin_path));
+ size_t len = strlen (GLRO(dl_origin_path));
result = (char *) malloc (len + 1);
if (result == NULL)
result = (char *) -1;
else
{
- char *cp = __mempcpy (result, GL(dl_origin_path), len);
+ char *cp = __mempcpy (result, GLRO(dl_origin_path), len);
while (cp > result + 1 && cp[-1] == '/')
--cp;
*cp = '\0';
diff --git a/sysdeps/generic/dl-sysdep.c b/sysdeps/generic/dl-sysdep.c
index bdd7326..e9eccd5 100644
--- a/sysdeps/generic/dl-sysdep.c
+++ b/sysdeps/generic/dl-sysdep.c
@@ -107,7 +107,7 @@ _dl_sysdep_start (void **start_argptr,
_dl_auxv);
user_entry = (ElfW(Addr)) ENTRY_POINT;
- GL(dl_platform) = NULL; /* Default to nothing known about the platform. */
+ GLRO(dl_platform) = NULL; /* Default to nothing known about the platform. */
for (av = _dl_auxv; av->a_type != AT_NULL; set_seen (av++))
switch (av->a_type)
@@ -119,7 +119,7 @@ _dl_sysdep_start (void **start_argptr,
phnum = av->a_un.a_val;
break;
case AT_PAGESZ:
- GL(dl_pagesize) = av->a_un.a_val;
+ GLRO(dl_pagesize) = av->a_un.a_val;
break;
case AT_ENTRY:
user_entry = av->a_un.a_val;
@@ -146,23 +146,23 @@ _dl_sysdep_start (void **start_argptr,
INTUSE(__libc_enable_secure) = av->a_un.a_val;
break;
case AT_PLATFORM:
- GL(dl_platform) = av->a_un.a_ptr;
+ GLRO(dl_platform) = av->a_un.a_ptr;
break;
case AT_HWCAP:
- GL(dl_hwcap) = av->a_un.a_val;
+ GLRO(dl_hwcap) = av->a_un.a_val;
break;
case AT_CLKTCK:
- GL(dl_clktck) = av->a_un.a_val;
+ GLRO(dl_clktck) = av->a_un.a_val;
break;
case AT_FPUCW:
- GL(dl_fpu_control) = av->a_un.a_val;
+ GLRO(dl_fpu_control) = av->a_un.a_val;
break;
#ifdef NEED_DL_SYSINFO
case AT_SYSINFO:
new_sysinfo = av->a_un.a_val;
break;
case AT_SYSINFO_EHDR:
- GL(dl_sysinfo_dso) = av->a_un.a_ptr;
+ GLRO(dl_sysinfo_dso) = av->a_un.a_ptr;
break;
#endif
#ifdef DL_PLATFORM_AUXV
@@ -195,14 +195,14 @@ _dl_sysdep_start (void **start_argptr,
#endif
#ifndef HAVE_AUX_PAGESIZE
- if (GL(dl_pagesize) == 0)
- GL(dl_pagesize) = __getpagesize ();
+ if (GLRO(dl_pagesize) == 0)
+ GLRO(dl_pagesize) = __getpagesize ();
#endif
#if defined NEED_DL_SYSINFO
/* Only set the sysinfo value if we also have the vsyscall DSO. */
- if (GL(dl_sysinfo_dso) != 0 && new_sysinfo)
- GL(dl_sysinfo) = new_sysinfo;
+ if (GLRO(dl_sysinfo_dso) != 0 && new_sysinfo)
+ GLRO(dl_sysinfo) = new_sysinfo;
#endif
#ifdef DL_SYSDEP_INIT
@@ -214,8 +214,8 @@ _dl_sysdep_start (void **start_argptr,
#endif
/* Determine the length of the platform name. */
- if (GL(dl_platform) != NULL)
- GL(dl_platformlen) = strlen (GL(dl_platform));
+ if (GLRO(dl_platform) != NULL)
+ GLRO(dl_platformlen) = strlen (GLRO(dl_platform));
if (__sbrk (0) == &_end)
/* The dynamic linker was run as a program, and so the initial break
@@ -223,7 +223,8 @@ _dl_sysdep_start (void **start_argptr,
will consume the rest of this page, so tell the kernel to move the
break up that far. When the user program examines its break, it
will see this new value and not clobber our data. */
- __sbrk (GL(dl_pagesize) - ((&_end - (void *) 0) & (GL(dl_pagesize) - 1)));
+ __sbrk (GLRO(dl_pagesize)
+ - ((&_end - (void *) 0) & (GLRO(dl_pagesize) - 1)));
/* If this is a SUID program we make sure that FDs 0, 1, and 2 are
allocated. If necessary we are doing it ourself. If it is not
@@ -338,7 +339,7 @@ _dl_important_hwcaps (const char *platform, size_t platform_len, size_t *sz,
size_t *max_capstrlen)
{
/* Determine how many important bits are set. */
- unsigned long int masked = GL(dl_hwcap) & GL(dl_hwcap_mask);
+ unsigned long int masked = GLRO(dl_hwcap) & GLRO(dl_hwcap_mask);
size_t cnt = platform != NULL;
size_t n, m;
size_t total;
diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c
index 0708c91..9edbf8e 100644
--- a/sysdeps/generic/libc-start.c
+++ b/sysdeps/generic/libc-start.c
@@ -173,7 +173,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
/* Call the initializer of the program, if any. */
#ifdef SHARED
- if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
_dl_debug_printf ("\ninitialize program: %s\n\n", argv[0]);
#endif
if (init)
@@ -184,7 +184,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
);
#ifdef SHARED
- if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0))
_dl_debug_printf ("\ntransferring control: %s\n\n", argv[0]);
#endif
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index d384e6d..6ba13c4 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. i386 version.
- Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1995-2002, 2003, 2004 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
@@ -129,7 +129,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = l;
@@ -351,9 +351,9 @@ _dl_start_user:\n\
static inline void __attribute__ ((unused))
dl_platform_init (void)
{
- if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
/* Avoid an empty string which would disturb us. */
- GL(dl_platform) = NULL;
+ GLRO(dl_platform) = NULL;
}
static inline Elf32_Addr
@@ -507,7 +507,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
break;
if (__builtin_expect (sym->st_size > refsym->st_size, 0)
|| (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && GL(dl_verbose)))
+ && GLRO(dl_verbose)))
{
const char *strtab;
@@ -607,7 +607,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
break;
if (__builtin_expect (sym->st_size > refsym->st_size, 0)
|| (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && GL(dl_verbose)))
+ && GLRO(dl_verbose)))
{
const char *strtab;
diff --git a/sysdeps/i386/fpu/fclrexcpt.c b/sysdeps/i386/fpu/fclrexcpt.c
index 0e66d87..34ef070 100644
--- a/sysdeps/i386/fpu/fclrexcpt.c
+++ b/sysdeps/i386/fpu/fclrexcpt.c
@@ -42,7 +42,7 @@ __feclearexcept (int excepts)
__asm__ ("fldenv %0" : : "m" (*&temp));
/* If the CPU supports SSE, we clear the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xnew_exc;
diff --git a/sysdeps/i386/fpu/fedisblxcpt.c b/sysdeps/i386/fpu/fedisblxcpt.c
index ef3dd9a..6b0977f 100644
--- a/sysdeps/i386/fpu/fedisblxcpt.c
+++ b/sysdeps/i386/fpu/fedisblxcpt.c
@@ -1,5 +1,5 @@
/* Disable floating-point exceptions.
- Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999.
@@ -39,7 +39,7 @@ fedisableexcept (int excepts)
__asm__ ("fldcw %0" : : "m" (*&new_exc));
/* If the CPU supports SSE we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xnew_exc;
diff --git a/sysdeps/i386/fpu/feenablxcpt.c b/sysdeps/i386/fpu/feenablxcpt.c
index 8bf8bd9..afd8dc7 100644
--- a/sysdeps/i386/fpu/feenablxcpt.c
+++ b/sysdeps/i386/fpu/feenablxcpt.c
@@ -1,5 +1,5 @@
/* Enable floating-point exceptions.
- Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Jaeger <aj@suse.de>, 1999.
@@ -39,7 +39,7 @@ feenableexcept (int excepts)
__asm__ ("fldcw %0" : : "m" (*&new_exc));
/* If the CPU supports SSE we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xnew_exc;
diff --git a/sysdeps/i386/fpu/feholdexcpt.c b/sysdeps/i386/fpu/feholdexcpt.c
index 2d6cc0d..5509686 100644
--- a/sysdeps/i386/fpu/feholdexcpt.c
+++ b/sysdeps/i386/fpu/feholdexcpt.c
@@ -1,5 +1,5 @@
/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1999, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -36,7 +36,7 @@ feholdexcept (fenv_t *envp)
__asm__ ("fldcw %0" : : "m" (*&work));
/* If the CPU supports SSE we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xwork;
diff --git a/sysdeps/i386/fpu/fesetround.c b/sysdeps/i386/fpu/fesetround.c
index fe9889f..2746f3e 100644
--- a/sysdeps/i386/fpu/fesetround.c
+++ b/sysdeps/i386/fpu/fesetround.c
@@ -1,5 +1,5 @@
/* Set current rounding direction.
- Copyright (C) 1997, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -38,7 +38,7 @@ fesetround (int round)
__asm__ ("fldcw %0" : : "m" (*&cw));
/* If the CPU supports SSE we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xcw;
diff --git a/sysdeps/i386/fpu/fsetexcptflg.c b/sysdeps/i386/fpu/fsetexcptflg.c
index d262738..03eeef3 100644
--- a/sysdeps/i386/fpu/fsetexcptflg.c
+++ b/sysdeps/i386/fpu/fsetexcptflg.c
@@ -1,5 +1,5 @@
/* Set floating-point environment exception handling.
- Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+ Copyright (C) 1997,99,2000,01, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -43,7 +43,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts)
__asm__ ("fldenv %0" : : "m" (*&temp));
/* If the CPU supports SSE, we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xnew_exc;
@@ -57,7 +57,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts)
/* Put the new data in effect. */
__asm__ ("ldmxcsr %0" : : "m" (*&xnew_exc));
}
-
+
/* Success. */
return 0;
}
diff --git a/sysdeps/i386/fpu/ftestexcept.c b/sysdeps/i386/fpu/ftestexcept.c
index f82b355..9038e04 100644
--- a/sysdeps/i386/fpu/ftestexcept.c
+++ b/sysdeps/i386/fpu/ftestexcept.c
@@ -1,5 +1,5 @@
/* Test exception in current environment.
- Copyright (C) 1997, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -33,7 +33,7 @@ fetestexcept (int excepts)
__asm__ ("fnstsw %0" : "=a" (temp));
/* If the CPU supports SSE we test the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
__asm__ ("stmxcsr %0" : "=m" (*&xtemp));
return (temp | xtemp) & excepts & FE_ALL_EXCEPT;
diff --git a/sysdeps/i386/setfpucw.c b/sysdeps/i386/setfpucw.c
index 0a6af25..1ca2d3c 100644
--- a/sysdeps/i386/setfpucw.c
+++ b/sysdeps/i386/setfpucw.c
@@ -1,5 +1,5 @@
/* Set the FPU control word for x86.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 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
@@ -40,7 +40,7 @@ __setfpucw (fpu_control_t set)
__asm__ ("fldcw %0" : : "m" (*&cw));
/* If the CPU supports SSE, we set the MXCSR as well. */
- if ((GL(dl_hwcap) & HWCAP_I386_XMM) != 0)
+ if ((GLRO(dl_hwcap) & HWCAP_I386_XMM) != 0)
{
unsigned int xnew_exc;
diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
index ca47752..fbf3f20 100644
--- a/sysdeps/ia64/dl-machine.h
+++ b/sysdeps/ia64/dl-machine.h
@@ -123,7 +123,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
doit = (Elf64_Addr) ((struct fdesc *) &_dl_runtime_resolve)->ip;
else
{
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
{
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index d3bc83a..e528938 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
- Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1996-2001, 2002, 2003, 2004 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
@@ -85,7 +85,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
{
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
@@ -248,7 +248,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
found. */
break;
if (sym->st_size > refsym->st_size
- || (sym->st_size < refsym->st_size && GL(dl_verbose)))
+ || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
{
const char *strtab;
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index 642cad4..0dce040 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -120,8 +120,8 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
for (l = GL(dl_loaded); l; l = l->l_next)
{
ElfW(Addr) mapstart, mapend;
- mapstart = l->l_map_start & ~(GL(dl_pagesize) - 1);
- mapend = l->l_map_end | (GL(dl_pagesize) - 1);
+ mapstart = l->l_map_start & ~(GLRO(dl_pagesize) - 1);
+ mapend = l->l_map_end | (GLRO(dl_pagesize) - 1);
assert (mapend > mapstart);
/* Prefer gaps below the main executable, note that l ==
@@ -142,7 +142,7 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
}
high -= 0x10000; /* Allow some room between objects. */
- maplength = (maplength | (GL(dl_pagesize) - 1)) + 1;
+ maplength = (maplength | (GLRO(dl_pagesize) - 1)) + 1;
if (high <= low || high - low < maplength )
return 0;
return high - maplength; /* Both high and maplength are page-aligned. */
@@ -240,7 +240,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
: _dl_runtime_resolve);
Elf32_Word offset;
- if (profile && _dl_name_match_p (GL(dl_profile), map))
+ if (profile && _dl_name_match_p (GLRO(dl_profile), map))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = map;
@@ -499,7 +499,7 @@ __process_machine_rela (struct link_map *map,
found. */
return;
if (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
{
const char *strtab;
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 843737e..3edbadf 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
PowerPC64 version.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -416,7 +416,7 @@ elf_machine_runtime_setup (struct link_map *map, int lazy, int profile)
resolve_fd = (Elf64_FuncDesc *) (profile ? _dl_profile_resolve
: _dl_runtime_resolve);
- if (profile && _dl_name_match_p (GL(dl_profile), map))
+ if (profile && _dl_name_match_p (GLRO(dl_profile), map))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = map;
@@ -757,7 +757,8 @@ elf_machine_rela (struct link_map *map,
/* This can happen in trace mode when an object could not be found. */
return;
if (dont_expect (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size)))
+ || (GLRO(dl_verbose)
+ && sym->st_size < refsym->st_size)))
{
const char *strtab;
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
index 7a7dfbe..52922a8 100644
--- a/sysdeps/s390/s390-32/dl-machine.h
+++ b/sysdeps/s390/s390-32/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. S390 Version.
- Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Carl Pederson & Martin Schwidefsky.
This file is part of the GNU C Library.
@@ -112,7 +112,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = l;
@@ -354,9 +354,9 @@ _dl_start_user:\n\
static inline void __attribute__ ((unused))
dl_platform_init (void)
{
- if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
/* Avoid an empty string which would disturb us. */
- GL(dl_platform) = NULL;
+ GLRO(dl_platform) = NULL;
}
static inline Elf32_Addr
@@ -488,7 +488,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
break;
if (__builtin_expect (sym->st_size > refsym->st_size, 0)
|| (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && __builtin_expect (GL(dl_verbose), 0)))
+ && __builtin_expect (GLRO(dl_verbose), 0)))
{
const char *strtab;
diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
index c898c7f..82ece0b 100644
--- a/sysdeps/s390/s390-64/dl-machine.h
+++ b/sysdeps/s390/s390-64/dl-machine.h
@@ -1,6 +1,6 @@
/* Machine-dependent ELF dynamic relocation inline functions.
64 bit S/390 Version.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@@ -105,7 +105,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf64_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = l;
@@ -322,9 +322,9 @@ _dl_start_user:\n\
static inline void __attribute__ ((unused))
dl_platform_init (void)
{
- if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
/* Avoid an empty string which would disturb us. */
- GL(dl_platform) = NULL;
+ GLRO(dl_platform) = NULL;
}
static inline Elf64_Addr
@@ -455,7 +455,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
break;
if (__builtin_expect (sym->st_size > refsym->st_size, 0)
|| (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && __builtin_expect (GL(dl_verbose), 0)))
+ && __builtin_expect (GLRO(dl_verbose), 0)))
{
const char *strtab;
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index c2a5026..da631d2 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -42,7 +42,7 @@
/* Use a different preload file when running in 32-bit emulation mode
on a 64-bit host. */
-#define LD_SO_PRELOAD ((GL(dl_hwcap) & HWCAP_SPARC_V9) \
+#define LD_SO_PRELOAD ((GLRO(dl_hwcap) & HWCAP_SPARC_V9) \
? "/etc/ld.so.preload32" \
: "/etc/ld.so.preload")
@@ -58,9 +58,9 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
/* XXX The following is wrong! Dave Miller rejected to implement it
correctly. If this causes problems shoot *him*! */
#ifdef SHARED
- return GL(dl_hwcap) & GL(dl_hwcap_mask) & HWCAP_SPARC_V9;
+ return GLRO(dl_hwcap) & GLRO(dl_hwcap_mask) & HWCAP_SPARC_V9;
#else
- return GL(dl_hwcap) & HWCAP_SPARC_V9;
+ return GLRO(dl_hwcap) & HWCAP_SPARC_V9;
#endif
}
else
@@ -137,7 +137,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
rfunc = (Elf32_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
GL(dl_profile_map) = l;
}
@@ -166,7 +166,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
Elf32_Rela *relaend
= (Elf32_Rela *) ((char *) rela
+ l->l_info[DT_PLTRELSZ]->d_un.d_val);
- do_flush = GL(dl_hwcap) & HWCAP_SPARC_FLUSH;
+ do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
/* prelink must ensure there are no R_SPARC_NONE relocs left
in .rela.plt. */
@@ -352,7 +352,7 @@ sparc_fixup_plt (const Elf32_Rela *reloc, Elf32_Addr *reloc_addr,
#ifndef RTLD_BOOTSTRAP
/* Note that we don't mask the hwcap here, as the flush is essential to
functionality on those cpu's that implement it. */
- int do_flush = GL(dl_hwcap) & HWCAP_SPARC_FLUSH;
+ int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
#else
/* Unfortunately, this is necessary, so that we can ensure
ld.so will not execute corrupt PLT entry instructions. */
@@ -460,7 +460,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
# if defined USE_TLS && !defined RTLD_BOOTSTRAP
sym_map = RESOLVE_MAP (&sym, version, r_type);
value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value;
-# else
+# else
value = RESOLVE (&sym, version, r_type);
if (sym)
value += sym->st_value;
@@ -480,7 +480,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
found. */
break;
if (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
{
const char *strtab;
diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
index ff7ea8a..474aa0e 100644
--- a/sysdeps/sparc/sparc64/dl-machine.h
+++ b/sysdeps/sparc/sparc64/dl-machine.h
@@ -284,7 +284,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
found. */
break;
if (sym->st_size > refsym->st_size
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
+ || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
{
const char *strtab;
@@ -498,7 +498,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
res0_addr = (Elf64_Addr) &_dl_runtime_profile_0;
res1_addr = (Elf64_Addr) &_dl_runtime_profile_1;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
GL(dl_profile_map) = l;
}
diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
index 48512ed..d3b0481 100644
--- a/sysdeps/unix/sysv/linux/dl-execstack.c
+++ b/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -31,7 +31,8 @@ internal_function
_dl_make_stack_executable (void **stack_endp)
{
/* This gives us the highest/lowest page that needs to be changed. */
- uintptr_t page = (uintptr_t) __libc_stack_end & -(intptr_t) GL(dl_pagesize);
+ uintptr_t page = ((uintptr_t) __libc_stack_end
+ & -(intptr_t) GLRO(dl_pagesize));
/* Challenge the caller. */
if (__builtin_expect (*stack_endp != __libc_stack_end, 0))
@@ -46,7 +47,7 @@ _dl_make_stack_executable (void **stack_endp)
if (! no_growsdown)
# endif
{
- if (__builtin_expect (__mprotect ((void *) page, GL(dl_pagesize),
+ if (__builtin_expect (__mprotect ((void *) page, GLRO(dl_pagesize),
PROT_READ|PROT_WRITE|PROT_EXEC
|PROT_GROWSDOWN) == 0, 1))
goto return_success;
@@ -67,8 +68,8 @@ _dl_make_stack_executable (void **stack_endp)
so as to have extended the GROWSDOWN mapping to lower pages. */
# if __ASSUME_PROT_GROWSUPDOWN == 0
- size_t size = GL(dl_pagesize) * 8;
- page = page + GL(dl_pagesize) - size;
+ size_t size = GLRO(dl_pagesize) * 8;
+ page = page + GLRO(dl_pagesize) - size;
while (1)
{
if (__mprotect ((void *) page, size,
@@ -80,7 +81,7 @@ _dl_make_stack_executable (void **stack_endp)
if (errno != ENOMEM) /* Unexpected failure mode. */
return errno;
- if (size == GL(dl_pagesize))
+ if (size == GLRO(dl_pagesize))
/* We just tried to mprotect the top hole page and failed.
We are done. */
break;
@@ -101,7 +102,7 @@ _dl_make_stack_executable (void **stack_endp)
if (! no_growsup)
# endif
{
- if (__mprotect ((void *) page, GL(dl_pagesize),
+ if (__mprotect ((void *) page, GLRO(dl_pagesize),
PROT_READ|PROT_WRITE|PROT_EXEC|PROT_GROWSUP) == 0)
goto return_success;
# if __ASSUME_PROT_GROWSUPDOWN == 0
@@ -121,7 +122,7 @@ _dl_make_stack_executable (void **stack_endp)
so as to have extended the GROWSUP mapping to higher pages. */
# if __ASSUME_PROT_GROWSUPDOWN == 0
- size_t size = GL(dl_pagesize) * 8;
+ size_t size = GLRO(dl_pagesize) * 8;
while (1)
{
if (__mprotect ((void *) page, size,
@@ -133,7 +134,7 @@ _dl_make_stack_executable (void **stack_endp)
if (errno != ENOMEM) /* Unexpected failure mode. */
return errno;
- if (size == GL(dl_pagesize))
+ if (size == GLRO(dl_pagesize))
/* We just tried to mprotect the lowest hole page and failed.
We are done. */
break;
diff --git a/sysdeps/unix/sysv/linux/dl-librecon.h b/sysdeps/unix/sysv/linux/dl-librecon.h
index 97de796..db46b98 100644
--- a/sysdeps/unix/sysv/linux/dl-librecon.h
+++ b/sysdeps/unix/sysv/linux/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
@@ -40,7 +40,7 @@ _dl_osversion_init (char *assume_kernel)
break;
}
if (osversion)
- GL(dl_osversion) = osversion;
+ GLRO(dl_osversion) = osversion;
}
/* Recognizing extra environment variables. */
diff --git a/sysdeps/unix/sysv/linux/dl-origin.c b/sysdeps/unix/sysv/linux/dl-origin.c
index 3824681..6904920 100644
--- a/sysdeps/unix/sysv/linux/dl-origin.c
+++ b/sysdeps/unix/sysv/linux/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -59,15 +59,15 @@ _dl_get_origin (void)
result = (char *) -1;
/* We use the environment variable LD_ORIGIN_PATH. If it is set make
a copy and strip out trailing slashes. */
- if (GL(dl_origin_path) != NULL)
+ if (GLRO(dl_origin_path) != NULL)
{
- size_t len = strlen (GL(dl_origin_path));
+ size_t len = strlen (GLRO(dl_origin_path));
result = (char *) malloc (len + 1);
if (result == NULL)
result = (char *) -1;
else
{
- char *cp = __mempcpy (result, GL(dl_origin_path), len);
+ char *cp = __mempcpy (result, GLRO(dl_origin_path), len);
while (cp > result + 1 && cp[-1] == '/')
--cp;
*cp = '\0';
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index b60a202..5abc3c4 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions.
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2004 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
@@ -104,6 +104,6 @@ dl_fatal (const char *str)
/* Not sufficent. */ \
FATAL ("FATAL: kernel too old\n"); \
\
- GL(dl_osversion) = version; \
+ GLRO(dl_osversion) = version; \
} \
} while (0)
diff --git a/sysdeps/unix/sysv/linux/getclktck.c b/sysdeps/unix/sysv/linux/getclktck.c
index dc8ec9b..f9fece3 100644
--- a/sysdeps/unix/sysv/linux/getclktck.c
+++ b/sysdeps/unix/sysv/linux/getclktck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002, 2004 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
@@ -28,5 +28,5 @@
int
__getclktck ()
{
- return GL(dl_clktck) ?: SYSTEM_CLK_TCK;
+ return GLRO(dl_clktck) ?: SYSTEM_CLK_TCK;
}
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
index 4f73e03..6d03b3b 100644
--- a/sysdeps/unix/sysv/linux/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/getpagesize.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,1992,1995-1997,2000,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1995-1997,2000,2002,2004
+ 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
@@ -25,8 +26,8 @@
int
__getpagesize ()
{
- if (GL(dl_pagesize) != 0)
- return GL(dl_pagesize);
+ if (GLRO(dl_pagesize) != 0)
+ return GLRO(dl_pagesize);
#ifdef EXEC_PAGESIZE
return EXEC_PAGESIZE;
diff --git a/sysdeps/unix/sysv/linux/i386/dl-librecon.h b/sysdeps/unix/sysv/linux/i386/dl-librecon.h
index f5a9f65..5e41977 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-librecon.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-librecon.h
@@ -1,5 +1,5 @@
/* Optional code to distinguish library flavours.
- Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -51,7 +51,7 @@
#define EXTRA_LD_ENVVARS \
case 15: \
if (memcmp (envline, "LIBRARY_VERSION", 15) == 0) \
- GL(dl_correct_cache_id) = envline[16] == '5' ? 2 : 3; \
+ GLRO(dl_correct_cache_id) = envline[16] == '5' ? 2 : 3; \
break; \
/* Extra unsecure variables. The names are all stuffed in a single
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
index 8971a86..9cb5b6e 100644
--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/i386.
- Copyright (C) 1991,95,96,97,98,99,2000,02,03 Free Software Foundation, Inc.
+ Copyright (C) 1991,1995-2000,02,03, 2004 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
@@ -88,7 +88,7 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
kact.sa_flags = act->sa_flags;
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
- if (GL(dl_sysinfo_dso) == NULL)
+ if (GLRO(dl_sysinfo_dso) == NULL)
{
kact.sa_flags |= SA_RESTORER;
diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
index 7417fd6..f002712 100644
--- a/sysdeps/unix/sysv/linux/init-first.c
+++ b/sysdeps/unix/sysv/linux/init-first.c
@@ -1,5 +1,5 @@
/* Initialization code run first thing by the ELF startup code. Linux version.
- Copyright (C) 1995-1999,2000,01,02,03 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999,2000,01,02,03,2004 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
@@ -58,7 +58,7 @@ init (int argc, char **argv, char **envp)
kernel would use a different value. (In a static program we
don't have this information.) */
#ifdef SHARED
- if (__fpu_control != GL(dl_fpu_control))
+ if (__fpu_control != GLRO(dl_fpu_control))
#endif
__setfpucw (__fpu_control);
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
index 760e9b5..d3e9b49 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -72,7 +72,7 @@ ENTRY(__getcontext)
mfcr r0
stw r0,_UC_GREGS+(PT_CCR*4)(r3)
- /* Set the return value of getcontext to "success". R3 is the only
+ /* Set the return value of getcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
stw r0,_UC_GREGS+(PT_R3*4)(r3)
@@ -121,11 +121,11 @@ ENTRY(__getcontext)
mflr r8
bl _GLOBAL_OFFSET_TABLE_@local-4
mflr r7
-#ifdef SHARED
- lwz r7,_rtld_global@got(r7)
+#ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
mtlr r8
lwz r7,RTLD_GLOBAL_DL_HWCAP_OFFSET(r7)
-#else
+#else
lwz r7,_dl_hwcap@got(r7)
mtlr r8
lwz r7,0(r7)
@@ -136,95 +136,95 @@ ENTRY(__getcontext)
#endif
andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
beq L(no_vec)
-
+
la r10,(_UC_VREGS)(r3)
la r9,(_UC_VREGS+16)(r3)
- stvx v0,0,r10
+ stvx v0,0,r10
stvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v2,0,r10
+ stvx v2,0,r10
stvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v4,0,r10
+ stvx v4,0,r10
stvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v6,0,r10
+ stvx v6,0,r10
stvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v8,0,r10
+ stvx v8,0,r10
stvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v10,0,r10
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v12,0,r10
+ stvx v12,0,r10
stvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v14,0,r10
+ stvx v14,0,r10
stvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v16,0,r10
+ stvx v16,0,r10
stvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v18,0,r10
+ stvx v18,0,r10
stvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
- stvx v20,0,r10
+ stvx v20,0,r10
stvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v22,0,r10
+ stvx v22,0,r10
stvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v24,0,r10
+ stvx v24,0,r10
stvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v26,0,r10
+ stvx v26,0,r10
stvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v28,0,r10
+ stvx v28,0,r10
stvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v30,0,r10
+ stvx v30,0,r10
stvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v10,0,r10
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
mfvscr v0
mfspr r0,VRSAVE
stvx v0,0,r10
@@ -301,7 +301,7 @@ ENTRY(__novec_getcontext)
mfcr r0
stw r0,_UC_GREGS+(PT_CCR*4)(r3)
- /* Set the return value of getcontext to "success". R3 is the only
+ /* Set the return value of getcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
stw r0,_UC_GREGS+(PT_R3*4)(r3)
@@ -345,7 +345,7 @@ ENTRY(__novec_getcontext)
stfd fp30,_UC_FREGS+(30*8)(r3)
stfd fp31,_UC_FREGS+(31*8)(r3)
stfd fp0,_UC_FREGS+(32*8)(r3)
-
+
addi r5,r3,_UC_SIGMASK - _UC_REG_SPACE
li r4,0
li r3,SIG_BLOCK
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
index 11f488a..4c92dd7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -75,7 +75,7 @@ ENTRY(__swapcontext)
mfcr r0
stw r0,_UC_GREGS+(PT_CCR*4)(r3)
- /* Set the return value of swapcontext to "success". R3 is the only
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
stw r0,_UC_GREGS+(PT_R3*4)(r3)
@@ -123,11 +123,11 @@ ENTRY(__swapcontext)
mflr r8
bl _GLOBAL_OFFSET_TABLE_@local-4
mflr r7
-#ifdef SHARED
- lwz r7,_rtld_global@got(r7)
+#ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
mtlr r8
lwz r7,RTLD_GLOBAL_DL_HWCAP_OFFSET(r7)
-#else
+#else
lwz r7,_dl_hwcap@got(r7)
mtlr r8
lwz r7,0(r7)
@@ -138,95 +138,95 @@ ENTRY(__swapcontext)
#endif
andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
beq L(no_vec)
-
+
la r10,(_UC_VREGS)(r3)
la r9,(_UC_VREGS+16)(r3)
- stvx v0,0,r10
+ stvx v0,0,r10
stvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v2,0,r10
+ stvx v2,0,r10
stvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v4,0,r10
+ stvx v4,0,r10
stvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v6,0,r10
+ stvx v6,0,r10
stvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v8,0,r10
+ stvx v8,0,r10
stvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v10,0,r10
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v12,0,r10
+ stvx v12,0,r10
stvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v14,0,r10
+ stvx v14,0,r10
stvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v16,0,r10
+ stvx v16,0,r10
stvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v18,0,r10
+ stvx v18,0,r10
stvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
- stvx v20,0,r10
+ stvx v20,0,r10
stvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v22,0,r10
+ stvx v22,0,r10
stvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v24,0,r10
+ stvx v24,0,r10
stvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v26,0,r10
+ stvx v26,0,r10
stvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v28,0,r10
+ stvx v28,0,r10
stvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v30,0,r10
+ stvx v30,0,r10
stvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
- stvx v10,0,r10
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
mfvscr v0
mfspr r0,VRSAVE
stvx v0,0,r10
@@ -260,16 +260,16 @@ L(no_vec):
lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
cmpwi r0,0
bne L(do_sigret)
-
+
#ifdef PIC
mflr r8
bl _GLOBAL_OFFSET_TABLE_@local-4
mflr r7
-#ifdef SHARED
- lwz r7,_rtld_global@got(r7)
+#ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
mtlr r8
lwz r7,RTLD_GLOBAL_DL_HWCAP_OFFSET(r7)
-#else
+#else
lwz r7,_dl_hwcap@got(r7)
mtlr r8
lwz r7,0(r7)
@@ -281,100 +281,100 @@ L(no_vec):
andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
la r10,(_UC_VREGS)(r31)
beq L(has_no_vec)
-
+
lwz r0,(32*16)(r10)
li r9,(32*16)
cmpwi r0,0
mtspr VRSAVE,r0
- beq L(has_no_vec)
+ beq L(has_no_vec)
lvx v19,r9,r10
la r9,(16)(r10)
- lvx v0,0,r10
+ lvx v0,0,r10
lvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
mtvscr v19
- lvx v2,0,r10
+ lvx v2,0,r10
lvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v4,0,r10
+ lvx v4,0,r10
lvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v6,0,r10
+ lvx v6,0,r10
lvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v8,0,r10
+ lvx v8,0,r10
lvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v10,0,r10
+ lvx v10,0,r10
lvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v12,0,r10
+ lvx v12,0,r10
lvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v14,0,r10
+ lvx v14,0,r10
lvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v16,0,r10
+ lvx v16,0,r10
lvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v18,0,r10
+ lvx v18,0,r10
lvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
- lvx v20,0,r10
+ lvx v20,0,r10
lvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v22,0,r10
+ lvx v22,0,r10
lvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v24,0,r10
+ lvx v24,0,r10
lvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v26,0,r10
+ lvx v26,0,r10
lvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v28,0,r10
+ lvx v28,0,r10
lvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v30,0,r10
+ lvx v30,0,r10
lvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
- lvx v10,0,r10
+ lvx v10,0,r10
lvx v11,0,r9
-
+
L(has_no_vec):
/* Restore the floating-point registers */
lfd fp31,_UC_FREGS+(32*8)(r31)
@@ -522,7 +522,7 @@ ENTRY(__novec_swapcontext)
mfcr r0
stw r0,_UC_GREGS+(PT_CCR*4)(r3)
- /* Set the return value of swapcontext to "success". R3 is the only
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
stw r0,_UC_GREGS+(PT_R3*4)(r3)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
index 279a36d..c950316 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
@@ -73,12 +73,12 @@ ENTRY(__novec_getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
mfcr r0
std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
-
- /* Set the return value of swapcontext to "success". R3 is the only
+
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
-
+
/* Zero fill fields that can't be set in user state or are unused. */
std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
@@ -87,14 +87,14 @@ ENTRY(__novec_getcontext)
std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
-
- /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
- field. Struct pt_regs and elf_gregset_t are the same thing.
+
+ /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
We kept the regs field for backwards compatibility with
libraries built before we extended sigcontext. */
addi r0,r3,SIGCONTEXT_GP_REGS
std r0,SIGCONTEXT_PT_REGS(r3)
-
+
stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
@@ -145,8 +145,8 @@ ENTRY(__novec_getcontext)
nop
li r3,-1
#endif
-
- ld r0,128+FRAME_LR_SAVE(r1)
+
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
blr
@@ -159,10 +159,10 @@ compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3)
.section ".toc","aw"
.LC__dl_hwcap:
#ifdef SHARED
- .tc _rtld_global[TC],_rtld_global
+ .tc _rtld_global_ro[TC],_rtld_global_ro
#else
.tc _dl_hwcap[TC],_dl_hwcap
-#endif
+#endif
.section ".text"
ENTRY(__getcontext)
@@ -209,12 +209,12 @@ ENTRY(__getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
mfcr r0
std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
-
- /* Set the return value of swapcontext to "success". R3 is the only
+
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
-
+
/* Zero fill fields that can't be set in user state or are unused. */
std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
@@ -223,14 +223,14 @@ ENTRY(__getcontext)
std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
-
- /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
- field. Struct pt_regs and elf_gregset_t are the same thing.
+
+ /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
We kept the regs field for backwards compatibility with
libraries built before we extended sigcontext. */
addi r0,r3,SIGCONTEXT_GP_REGS
std r0,SIGCONTEXT_PT_REGS(r3)
-
+
stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
@@ -265,120 +265,120 @@ ENTRY(__getcontext)
stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
-
+
ld r5,.LC__dl_hwcap@toc(r2)
li r10,0
-#ifdef SHARED
+#ifdef SHARED
/* Load _rtld-global._dl_hwcap. */
- ld r5,RTLD_GLOBAL_DL_HWCAP_OFFSET(r5)
-#else
+ ld r5,RTLD_GLOBAL_DL_HWCAP_OFFSET(r5)
+#else
ld r5,0(r5) /* Load extern _dl_hwcap. */
#endif
andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16)
beq L(has_no_vec)
-
+
la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
clrrdi r10,r10,4
clrrdi r9,r9,4
-
- stvx v0,0,r10
+
+ stvx v0,0,r10
stvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v2,0,r10
+
+ stvx v2,0,r10
stvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v4,0,r10
+
+ stvx v4,0,r10
stvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v6,0,r10
+
+ stvx v6,0,r10
stvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v8,0,r10
+
+ stvx v8,0,r10
stvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v10,0,r10
+
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v12,0,r10
+
+ stvx v12,0,r10
stvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v14,0,r10
+
+ stvx v14,0,r10
stvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v16,0,r10
+
+ stvx v16,0,r10
stvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v18,0,r10
+
+ stvx v18,0,r10
stvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
-
- stvx v20,0,r10
+
+ stvx v20,0,r10
stvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v22,0,r10
+
+ stvx v22,0,r10
stvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v24,0,r10
+
+ stvx v24,0,r10
stvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v26,0,r10
+
+ stvx v26,0,r10
stvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v28,0,r10
+
+ stvx v28,0,r10
stvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v30,0,r10
+
+ stvx v30,0,r10
stvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v10,0,r10
+
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
mfvscr v0
mfspr r0,VRSAVE
stvx v0,0,r10
stw r0,0(9)
-
+
L(has_no_vec):
-/*
+/*
Store either a NULL or a quadword aligned pointer to the Vector register
array into *v_regs.
*/
std r10,(SIGCONTEXT_V_REGS_PTR)(r3)
-
+
addi r5,r3,UCONTEXT_SIGMASK
li r4,0
li r3,SIG_BLOCK
@@ -394,12 +394,11 @@ L(has_no_vec):
nop
li r3,-1
#endif
-
- ld r0,128+FRAME_LR_SAVE(r1)
+
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
blr
PSEUDO_END(__getcontext)
versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
-
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index ab6a625..8e2cc71 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -73,12 +73,12 @@ ENTRY(__novec_swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
mfcr r0
std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
-
- /* Set the return value of swapcontext to "success". R3 is the only
+
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
-
+
/* Zero fill fields that can't be set in user state or are unused. */
std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
@@ -87,14 +87,14 @@ ENTRY(__novec_swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
-
- /* Set the PT_REGS pointer to the address of sigcontext gp_regs
- field. Struct pt_regs and elf_gregset_t are the same thing.
+
+ /* Set the PT_REGS pointer to the address of sigcontext gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
We kept the regs field for backwards compatibility with
libraries built before we extended sigcontext. */
addi r0,r3,SIGCONTEXT_GP_REGS
std r0,SIGCONTEXT_PT_REGS(r3)
-
+
stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
@@ -154,41 +154,41 @@ ENTRY(__novec_swapcontext)
bne L(nv_do_sigret)
lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
- lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
mtfsf 0xff,fp0
- lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
- lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
- lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
- lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
- lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
- lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
- lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
- lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
- lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
- lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
- lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
- lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
- lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
- lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
- lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
-
- ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
mtlr r0
ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
@@ -224,33 +224,33 @@ ENTRY(__novec_swapcontext)
ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
-
+
/* Now we branch to the "Next Instruction Pointer" from the saved
- context. With the powerpc64 instruction set there is no good way to
+ context. With the powerpc64 instruction set there is no good way to
do this (from user state) without clobbering either the LR or CTR.
- The makecontext and swapcontext functions depend on the callers
+ The makecontext and swapcontext functions depend on the callers
LR being preserved so we use the CTR. */
ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
mtctr r0
ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
bctr
-
+
L(nv_error_exit):
- ld r0,128+FRAME_LR_SAVE(r1)
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
ld r31,-8(r1)
blr
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
address in R3, so simply copy R3 to R1 before the syscall. */
L(nv_do_sigret):
mr r1,r3,
@@ -266,11 +266,11 @@ L(nv_do_sigret):
bl JUMPTARGET(__syscall_error)
nop
li r3,-1
- ld r0,128+FRAME_LR_SAVE(r1)
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
blr
-#endif
+#endif
PSEUDO_END(__novec_swapcontext)
@@ -281,12 +281,12 @@ compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3)
.section ".toc","aw"
.LC__dl_hwcap:
#ifdef SHARED
- .tc _rtld_global[TC],_rtld_global
+ .tc _rtld_global_ro[TC],_rtld_global_ro
#else
.tc _dl_hwcap[TC],_dl_hwcap
#endif
.section ".text"
-
+
ENTRY(__swapcontext)
#ifdef __ASSUME_NEW_RT_SIGRETURN_SYSCALL
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
@@ -332,12 +332,12 @@ ENTRY(__swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
mfcr r0
std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
-
- /* Set the return value of swapcontext to "success". R3 is the only
+
+ /* Set the return value of swapcontext to "success". R3 is the only
register whose value is not preserved in the saved context. */
li r0,0
std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
-
+
/* Zero fill fields that can't be set in user state or are unused. */
std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
@@ -346,14 +346,14 @@ ENTRY(__swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
-
- /* Set the PT_REGS pointer to the address of sigcontext gp_regs
- field. Struct pt_regs and elf_gregset_t are the same thing.
+
+ /* Set the PT_REGS pointer to the address of sigcontext gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
We kept the regs field for backwards compatibility with
libraries built before we extended sigcontext. */
addi r0,r3,SIGCONTEXT_GP_REGS
std r0,SIGCONTEXT_PT_REGS(r3)
-
+
stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
@@ -388,115 +388,115 @@ ENTRY(__swapcontext)
stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
-
+
ld r8,.LC__dl_hwcap@toc(r2)
li r10,0
-#ifdef SHARED
+#ifdef SHARED
/* Load _rtld-global._dl_hwcap. */
- ld r8,RTLD_GLOBAL_DL_HWCAP_OFFSET(r8)
-#else
+ ld r8,RTLD_GLOBAL_DL_HWCAP_OFFSET(r8)
+#else
ld r8,0(r8) /* Load extern _dl_hwcap. */
#endif
andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
beq L(has_no_vec)
-
+
la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
clrrdi r10,r10,4
clrrdi r9,r9,4
-
- stvx v0,0,r10
+
+ stvx v0,0,r10
stvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v2,0,r10
+
+ stvx v2,0,r10
stvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v4,0,r10
+
+ stvx v4,0,r10
stvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v6,0,r10
+
+ stvx v6,0,r10
stvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v8,0,r10
+
+ stvx v8,0,r10
stvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v10,0,r10
+
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v12,0,r10
+
+ stvx v12,0,r10
stvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v14,0,r10
+
+ stvx v14,0,r10
stvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v16,0,r10
+
+ stvx v16,0,r10
stvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v18,0,r10
+
+ stvx v18,0,r10
stvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
-
- stvx v20,0,r10
+
+ stvx v20,0,r10
stvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v22,0,r10
+
+ stvx v22,0,r10
stvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v24,0,r10
+
+ stvx v24,0,r10
stvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v26,0,r10
+
+ stvx v26,0,r10
stvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v28,0,r10
+
+ stvx v28,0,r10
stvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v30,0,r10
+
+ stvx v30,0,r10
stvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
-
- stvx v10,0,r10
+
+ stvx v10,0,r10
stvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
mfvscr v0
mfspr r0,VRSAVE
stvx v0,0,r10
stw r0,0(9)
-
+
L(has_no_vec):
-/*
+/*
Store either a NULL or a quadword aligned pointer to the Vector register
array into *v_regs.
*/
@@ -524,154 +524,154 @@ L(has_no_vec):
lwz r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
cmpdi r0,0
bne L(do_sigret)
-
+
ld r8,.LC__dl_hwcap@toc(r2)
ld r10,(SIGCONTEXT_V_REGS_PTR)(r31)
-#ifdef SHARED
+#ifdef SHARED
/* Load _rtld-global._dl_hwcap. */
- ld r8,RTLD_GLOBAL_DL_HWCAP_OFFSET(r8)
-#else
+ ld r8,RTLD_GLOBAL_DL_HWCAP_OFFSET(r8)
+#else
ld r8,0(r8) /* Load extern _dl_hwcap. */
#endif
andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
beq L(has_no_vec2)
-
+
cmpdi r10,0
beq L(has_no_vec2)
lwz r0,(33*16)(r10)
-
+
li r9,(16*32)
mtspr VRSAVE,r0
cmpwi r0,0
- beq L(has_no_vec2)
-
+ beq L(has_no_vec2)
+
lvx v19,r9,r10
la r9,(16)(r10)
-
- lvx v0,0,r10
+
+ lvx v0,0,r10
lvx v1,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
mtvscr v19
- lvx v2,0,r10
+ lvx v2,0,r10
lvx v3,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v4,0,r10
+
+ lvx v4,0,r10
lvx v5,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v6,0,r10
+
+ lvx v6,0,r10
lvx v7,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v8,0,r10
+
+ lvx v8,0,r10
lvx v9,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v10,0,r10
+
+ lvx v10,0,r10
lvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v12,0,r10
+
+ lvx v12,0,r10
lvx v13,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v14,0,r10
+
+ lvx v14,0,r10
lvx v15,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v16,0,r10
+
+ lvx v16,0,r10
lvx v17,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v18,0,r10
+
+ lvx v18,0,r10
lvx v11,0,r9
addi r19,r10,32
addi r9,r9,32
-
- lvx v20,0,r10
+
+ lvx v20,0,r10
lvx v21,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v22,0,r10
+
+ lvx v22,0,r10
lvx v23,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v24,0,r10
+
+ lvx v24,0,r10
lvx v25,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v26,0,r10
+
+ lvx v26,0,r10
lvx v27,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v28,0,r10
+
+ lvx v28,0,r10
lvx v29,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v30,0,r10
+
+ lvx v30,0,r10
lvx v31,0,r9
addi r10,r10,32
addi r9,r9,32
-
- lvx v10,0,r10
+
+ lvx v10,0,r10
lvx v11,0,r9
addi r10,r10,32
addi r9,r9,32
-
+
L(has_no_vec2):
lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
- lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
mtfsf 0xff,fp0
- lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
- lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
- lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
- lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
- lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
- lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
- lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
- lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
- lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
- lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
- lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
- lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
- lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
- lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
- lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
-
- ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
mtlr r0
ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
@@ -707,33 +707,33 @@ L(has_no_vec2):
ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
-
+
/* Now we branch to the "Next Instruction Pointer" from the saved
- context. With the powerpc64 instruction set there is no good way to
+ context. With the powerpc64 instruction set there is no good way to
do this (from user state) without clobbering either the LR or CTR.
- The makecontext and swapcontext functions depend on the callers
+ The makecontext and swapcontext functions depend on the callers
LR being preserved so we use the CTR. */
ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
mtctr r0
ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
bctr
-
+
L(error_exit):
- ld r0,128+FRAME_LR_SAVE(r1)
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
ld r31,-8(r1)
blr
- /* At this point we assume that the ucontext was created by a
- rt_signal and we should use rt_sigreturn to restore the original
- state. As of the 2.4.21 kernel the ucontext is the first thing
- (offset 0) in the rt_signal frame and rt_sigreturn expects the
- ucontext address in R1. Normally the rt-signal trampoline handles
- this by popping dummy frame before the rt_signal syscall. In our
- case the stack may not be in its original (signal handler return with
- R1 pointing at the dummy frame) state. We do have the ucontext
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
address in R3, so simply copy R3 to R1 before the syscall. */
L(do_sigret):
mr r1,r3,
@@ -749,11 +749,11 @@ L(do_sigret):
bl JUMPTARGET(__syscall_error)
nop
li r3,-1
- ld r0,128+FRAME_LR_SAVE(r1)
+ ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
blr
-#endif
+#endif
PSEUDO_END(__swapcontext)
diff --git a/sysdeps/unix/sysv/linux/prof-freq.c b/sysdeps/unix/sysv/linux/prof-freq.c
index a67c179..621a4c4 100644
--- a/sysdeps/unix/sysv/linux/prof-freq.c
+++ b/sysdeps/unix/sysv/linux/prof-freq.c
@@ -1,5 +1,5 @@
/* Determine realtime clock frequency.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004 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
@@ -27,10 +27,10 @@ int
__profile_frequency (void)
{
#ifdef __ASSUME_AT_CLKTCK
- return GL(dl_clktck);
+ return GLRO(dl_clktck);
#else
- if (GL(dl_clktck) != 0)
- return GL(dl_clktck);
+ if (GLRO(dl_clktck) != 0)
+ return GLRO(dl_clktck);
struct itimerval tim;
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index 1637862..302545f 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -116,7 +116,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
got[2] = (Elf64_Addr) &_dl_runtime_profile;
- if (_dl_name_match_p (GL(dl_profile), l))
+ if (_dl_name_match_p (GLRO(dl_profile), l))
/* This is the object we are looking for. Say that we really
want profiling and the timers are started. */
GL(dl_profile_map) = l;
@@ -326,9 +326,9 @@ _dl_start_user:\n\
static inline void __attribute__ ((unused))
dl_platform_init (void)
{
- if (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
+ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
/* Avoid an empty string which would disturb us. */
- GL(dl_platform) = NULL;
+ GLRO(dl_platform) = NULL;
}
static inline Elf64_Addr
@@ -497,7 +497,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
break;
if (__builtin_expect (sym->st_size > refsym->st_size, 0)
|| (__builtin_expect (sym->st_size < refsym->st_size, 0)
- && GL(dl_verbose)))
+ && GLRO(dl_verbose)))
{
const char *strtab;