[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r18436 - in /fsf/trunk/libc: ./ include/ inet/arpa/ sysdeps/sparc/ sysdeps/sparc/fpu/ sysdeps/sparc/sparc32/sparcv9/fpu/mult...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r18436 - in /fsf/trunk/libc: ./ include/ inet/arpa/ sysdeps/sparc/ sysdeps/sparc/fpu/ sysdeps/sparc/sparc32/sparcv9/fpu/mult...
- From: eglibc@xxxxxxxxxx
- Date: Wed, 09 May 2012 00:01:44 -0000
Author: eglibc
Date: Wed May 9 00:01:43 2012
New Revision: 18436
Log:
Import glibc-mainline for 2012-05-09
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/Makeconfig
fsf/trunk/libc/NEWS
fsf/trunk/libc/config.h.in
fsf/trunk/libc/include/features.h
fsf/trunk/libc/inet/arpa/tftp.h
fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps
fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S
fsf/trunk/libc/sysdeps/sparc/sysdep.h
fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
fsf/trunk/libc/sysdeps/x86_64/dl-machine.h
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed May 9 00:01:43 2012
@@ -1,3 +1,55 @@
+2012-05-08 David S. Miller <davem@xxxxxxxxxxxxx>
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S: Use
+ movxtod instead of popping the value on the stack.
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+2012-05-08 Carlos O'Donell <carlos_odonell@xxxxxxxxxx>
+
+ * config.h.in: Add HAVE_ARM_PCS_VFP.
+
+2012-05-08 Roland Mc Grath <roland@xxxxxxxxxxxxx>
+
+ [BZ #13979]
+ * include/features.h: Warn if user requests __FORTIFY_SOURCE
+ checking but the checks are disabled for any reason.
+
+2012-05-08 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ * sysdeps/x86_64/dl-machine.h: Replace Elf64_XXX with ElfW(XXX)
+ and ELF64_R_TYPE with ELFW(R_TYPE).
+
+2012-05-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/syscalls.list (pause): Remove.
+ (ulimit): Likewise.
+
+ * sysdeps/unix/sysv/syscalls.list (setrlimit): Remove.
+ (settimeofday): Likewise.
+
+2012-05-08 Mike Frysinger <vapier@xxxxxxxxxx>
+
+ * inet/arpa/tftp.h (struct tftphdr): Rename th_u to th_u1. Add
+ a struct th_u2 inside the union, and move tu_block/tu_code into
+ a new th_u3 union of tu_block/tu_code inside of that. Move
+ th_data[1] into the th_u2 as tu_data[0]. Change tu_stuff[1] to
+ tu_stuff[0]. Add a new tu_padding[4] to keep sizeof() the same.
+ (th_block): Change to th_u1.th_u2.th_u3.tu_block.
+ (th_code): Change to th_u1.th_u2.th_u3.tu_code.
+ (th_stuff): Change to th_u1.tu_stuff.
+ (th_data): Define.
+ (th_msg): Change to th_u1.th_u2.tu_data.
+
+2012-05-07 David S. Miller <davem@xxxxxxxxxxxxx>
+
+ * sysdeps/sparc/fpu/libm-test-ulps: Update.
+
+ [BZ #14074]
+ * sysdeps/sparc/sysdep.h (SPARC_PIC_THUNK_CALL): New macro.
+ (SETUP_PIC_REG): Use it.
+ (SETUP_PIC_REG_LEAF): Use it.
+
2012-05-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
[BZ #13885]
@@ -63,6 +115,14 @@
[BZ #14064]
* math/libm-test.inc (check_float_internal): Correct ulp
calculation for subnormal expected results.
+
+2012-05-06 Andreas Jaeger <aj@xxxxxxx>
+
+ * Makeconfig (+math-flags): New, set to -frounding-math.
+ (+cflags): Add +math-flags so that all of glibc gets compiled with
+ it.
+
+ * sysdeps/x86_64/fpu/libm-test-ulps: Updated.
2012-05-05 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
Modified: fsf/trunk/libc/Makeconfig
==============================================================================
--- fsf/trunk/libc/Makeconfig (original)
+++ fsf/trunk/libc/Makeconfig Wed May 9 00:01:43 2012
@@ -574,6 +574,11 @@
# actually different, so allow the compiler to merge them all.
+merge-constants = -fmerge-all-constants
+# We have to assume that glibc functions are called in any rounding
+# mode and also change the rounding mode in a few functions. So,
+# disable any optimization that assume default rounding mode.
++math-flags = -frounding-math
+
# This is the program that generates makefile dependencies from C source files.
# The -MP flag tells GCC >= 3.2 (which we now require) to produce dummy
# targets for headers so that removed headers don't break the build.
@@ -633,7 +638,7 @@
+cflags := $(default_cflags)
endif # $(+cflags) == ""
-+cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants)
++cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants) $(+math-flags)
+gcc-nowarn := -w
# Don't duplicate options if we inherited variables from the parent.
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Wed May 9 00:01:43 2012
@@ -23,8 +23,8 @@
13854, 13871, 13872, 13873, 13879, 13883, 13884, 13885, 13886, 13892,
13895, 13908, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917,
13918, 13919, 13920, 13921, 13922, 13923, 13924, 13926, 13927, 13928,
- 13938, 13941, 13942, 13963, 13967, 13970, 13973, 14027, 14033, 14034,
- 14040, 14049, 14055, 14064
+ 13938, 13941, 13942, 13963, 13967, 13970, 13973, 13979, 14027, 14033,
+ 14034, 14040, 14049, 14055, 14064
* ISO C11 support:
Modified: fsf/trunk/libc/config.h.in
==============================================================================
--- fsf/trunk/libc/config.h.in (original)
+++ fsf/trunk/libc/config.h.in Wed May 9 00:01:43 2012
@@ -218,4 +218,7 @@
#define HAVE_REGEX 1
-#endif
+/* The ARM hard-float ABI is being used. */
+#undef HAVE_ARM_PCS_VFP
+
+#endif
Modified: fsf/trunk/libc/include/features.h
==============================================================================
--- fsf/trunk/libc/include/features.h (original)
+++ fsf/trunk/libc/include/features.h Wed May 9 00:01:43 2012
@@ -325,14 +325,18 @@
# define __USE_REENTRANT 1
#endif
-#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
-# if _FORTIFY_SOURCE > 1
+#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0
+# if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0
+# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
+# elif !__GNUC_PREREQ (4, 1)
+# warning _FORTIFY_SOURCE requires GCC 4.1 or later
+# elif _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
# else
# define __USE_FORTIFY_LEVEL 1
# endif
-#else
+#endif
+#ifndef __USE_FORTIFY_LEVEL
# define __USE_FORTIFY_LEVEL 0
#endif
Modified: fsf/trunk/libc/inet/arpa/tftp.h
==============================================================================
--- fsf/trunk/libc/inet/arpa/tftp.h (original)
+++ fsf/trunk/libc/inet/arpa/tftp.h Wed May 9 00:01:43 2012
@@ -49,17 +49,23 @@
struct tftphdr {
short th_opcode; /* packet type */
union {
- unsigned short tu_block; /* block # */
- short tu_code; /* error code */
- char tu_stuff[1]; /* request packet stuff */
- } __attribute__ ((__packed__)) th_u;
- char th_data[1]; /* data or error string */
+ char tu_padding[3]; /* sizeof() compat */
+ struct {
+ union {
+ unsigned short tu_block; /* block # */
+ short tu_code; /* error code */
+ } __attribute__ ((__packed__)) th_u3;
+ char tu_data[0]; /* data or error string */
+ } __attribute__ ((__packed__)) th_u2;
+ char tu_stuff[0]; /* request packet stuff */
+ } __attribute__ ((__packed__)) th_u1;
} __attribute__ ((__packed__));
-#define th_block th_u.tu_block
-#define th_code th_u.tu_code
-#define th_stuff th_u.tu_stuff
-#define th_msg th_data
+#define th_block th_u1.th_u2.th_u3.tu_block
+#define th_code th_u1.th_u2.th_u3.tu_code
+#define th_stuff th_u1.tu_stuff
+#define th_data th_u1.th_u2.tu_data
+#define th_msg th_u1.th_u2.tu_data
/*
* Error codes.
Modified: fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps Wed May 9 00:01:43 2012
@@ -1,9 +1,18 @@
# Begin of automatic generation
# acos_downward
+Test "acos_downward (-0) == pi/2":
+float: 1
+ifloat: 1
Test "acos_downward (-0.5) == M_PI_6l*4.0":
double: 1
idouble: 1
+Test "acos_downward (-1) == pi":
+float: 1
+ifloat: 1
+Test "acos_downward (0) == pi/2":
+float: 1
+ifloat: 1
Test "acos_downward (0.5) == M_PI_6l*2.0":
double: 1
float: 1
@@ -13,14 +22,34 @@
ldouble: 1
# acos_towardzero
+Test "acos_towardzero (-0) == pi/2":
+float: 1
+ifloat: 1
Test "acos_towardzero (-0.5) == M_PI_6l*4.0":
double: 1
idouble: 1
+Test "acos_towardzero (-1) == pi":
+float: 1
+ifloat: 1
+Test "acos_towardzero (0) == pi/2":
+float: 1
+ifloat: 1
Test "acos_towardzero (0.5) == M_PI_6l*2.0":
double: 1
float: 1
idouble: 1
ifloat: 1
+ildouble: 1
+ldouble: 1
+
+# acos_upward
+Test "acos_upward (-0) == pi/2":
+ildouble: 1
+ldouble: 1
+Test "acos_upward (-1) == pi":
+ildouble: 1
+ldouble: 1
+Test "acos_upward (0) == pi/2":
ildouble: 1
ldouble: 1
@@ -1224,6 +1253,14 @@
float: 1
idouble: 2
ifloat: 1
+Test "exp10 (-305) == 1.0e-305":
+double: 1
+idouble: 1
+Test "exp10 (-36) == 1.0e-36":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
double: 1
float: 1
@@ -1236,6 +1273,12 @@
ifloat: 2
ildouble: 1
ldouble: 1
+Test "exp10 (36) == 1.0e36":
+double: 1
+idouble: 1
+Test "exp10 (4932) == 1.0e4932":
+ildouble: 1
+ldouble: 1
# exp2
Test "exp2 (100.5) == 1.792728671193156477399422023278661496394e+30":
@@ -1284,6 +1327,9 @@
ifloat: 1
ildouble: 1
ldouble: 1
+Test "expm1 (500.0) == 1.4035922178528374107397703328409120821806e+217":
+double: 1
+idouble: 1
# gamma
Test "gamma (-0.5) == log(2*sqrt(pi))":
@@ -2093,6 +2139,10 @@
ildouble: 1
ldouble: 1
+Function: "acos_upward":
+ildouble: 1
+ldouble: 1
+
Function: "asin_downward":
double: 1
float: 1
Modified: fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S (original)
+++ fsf/trunk/libc/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_floor-vis3.S Wed May 9 00:01:43 2012
@@ -56,10 +56,9 @@
fnegd ZERO, SIGN_BIT
- stx %o2, [%sp + 72]
+ movxtod %o2, %f16
fabsd %f0, %f14
- ldd [%sp + 72], %f16
fcmpd %fcc3, %f14, %f16
fmovduge %fcc3, ZERO, %f16
Modified: fsf/trunk/libc/sysdeps/sparc/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/sysdep.h Wed May 9 00:01:43 2012
@@ -58,21 +58,34 @@
.previous; \
.endif;
-/* Even when v9 we use a call sequence instead of using "rd %pc" because
+/* The "-4" and "+4" offsets against _GLOBAL_OFFSET_TABLE_ are
+ critical since they represent the offset from the thunk call to the
+ instruction containing the _GLOBAL_OFFSET_TABLE_ reference.
+ Therefore these instructions cannot be moved around without
+ appropriate adjustments to those offsets.
+
+ Furthermore, these expressions are special in another regard. When
+ the assembler sees a reference to _GLOBAL_OFFSET_TABLE_ inside of
+ a %hi() or %lo(), it emits a PC-relative relocation. This causes
+ R_SPARC_HI22 to turn into R_SPARC_PC22, and R_SPARC_LO10 to turn into
+ R_SPARC_PC10, respectively.
+
+ Even when v9 we use a call sequence instead of using "rd %pc" because
RDPC is extremely expensive and incurs a full pipeline flush. */
-#define SETUP_PIC_REG(reg) \
- SPARC_PIC_THUNK(reg) \
+#define SPARC_PIC_THUNK_CALL(reg) \
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %##reg; \
call __sparc_get_pc_thunk.reg; \
or %##reg, %lo(_GLOBAL_OFFSET_TABLE_+4), %##reg;
+#define SETUP_PIC_REG(reg) \
+ SPARC_PIC_THUNK(reg) \
+ SPARC_PIC_THUNK_CALL(reg)
+
#define SETUP_PIC_REG_LEAF(reg, tmp) \
SPARC_PIC_THUNK(reg) \
- sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %##reg; \
mov %o7, %##tmp; \
- call __sparc_get_pc_thunk.reg; \
- or %##reg, %lo(_GLOBAL_OFFSET_TABLE_+4), %##reg; \
+ SPARC_PIC_THUNK_CALL(reg); \
mov %##tmp, %o7;
#undef ENTRY
Modified: fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list Wed May 9 00:01:43 2012
@@ -1,9 +1,5 @@
# File name Caller Syscall name # args Strong name Weak names
alarm - alarm i:i alarm
-pause - pause Ci: pause
-setrlimit - setrlimit i:ip __setrlimit setrlimit
-settimeofday - settimeofday i:PP __settimeofday settimeofday
stime - stime i:p stime
-ulimit - ulimit i:ii ulimit
utime - utime i:sP utime
Modified: fsf/trunk/libc/sysdeps/x86_64/dl-machine.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/dl-machine.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/dl-machine.h Wed May 9 00:01:43 2012
@@ -29,7 +29,7 @@
/* Return nonzero iff ELF header is compatible with the running host. */
static inline int __attribute__ ((unused))
-elf_machine_matches_host (const Elf64_Ehdr *ehdr)
+elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
{
return ehdr->e_machine == EM_X86_64;
}
@@ -38,24 +38,24 @@
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static inline Elf64_Addr __attribute__ ((unused))
+static inline ElfW(Addr) __attribute__ ((unused))
elf_machine_dynamic (void)
{
- Elf64_Addr addr;
+ ElfW(Addr) addr;
/* This works because we have our GOT address available in the small PIC
model. */
- addr = (Elf64_Addr) &_DYNAMIC;
+ addr = (ElfW(Addr)) &_DYNAMIC;
return addr;
}
/* Return the run-time load address of the shared object. */
-static inline Elf64_Addr __attribute__ ((unused))
+static inline ElfW(Addr) __attribute__ ((unused))
elf_machine_load_address (void)
{
- Elf64_Addr addr;
+ ElfW(Addr) addr;
/* The easy way is just the same as on x86:
leaq _dl_start, %0
@@ -89,8 +89,8 @@
elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
{
Elf64_Addr *got;
- extern void _dl_runtime_resolve (Elf64_Word) attribute_hidden;
- extern void _dl_runtime_profile (Elf64_Word) attribute_hidden;
+ extern void _dl_runtime_resolve (ElfW(Word)) attribute_hidden;
+ extern void _dl_runtime_profile (ElfW(Word)) attribute_hidden;
if (l->l_info[DT_JMPREL] && lazy)
{
@@ -105,9 +105,10 @@
if (got[1])
{
l->l_mach.plt = got[1] + l->l_addr;
- l->l_mach.gotplt = (Elf64_Addr) &got[3];
+ l->l_mach.gotplt = (ElfW(Addr)) &got[3];
}
- got[1] = (Elf64_Addr) l; /* Identify this shared object. */
+ /* Identify this shared object. */
+ *(ElfW(Addr) *) (got + 1) = (ElfW(Addr)) l;
/* The got[2] entry contains the address of a function which gets
called to get the address of a so far unresolved function and
@@ -117,7 +118,7 @@
end in this function. */
if (__builtin_expect (profile, 0))
{
- got[2] = (Elf64_Addr) &_dl_runtime_profile;
+ *(ElfW(Addr) *) (got + 2) = (ElfW(Addr)) &_dl_runtime_profile;
if (GLRO(dl_profile) != NULL
&& _dl_name_match_p (GLRO(dl_profile), l))
@@ -128,12 +129,12 @@
else
/* This function will get called to fix up the GOT entry indicated by
the offset on the stack, and then jump to the resolved address. */
- got[2] = (Elf64_Addr) &_dl_runtime_resolve;
+ *(ElfW(Addr) *) (got + 2) = (ElfW(Addr)) &_dl_runtime_resolve;
}
if (l->l_info[ADDRIDX (DT_TLSDESC_GOT)] && lazy)
- *(Elf64_Addr*)(D_PTR (l, l_info[ADDRIDX (DT_TLSDESC_GOT)]) + l->l_addr)
- = (Elf64_Addr) &_dl_tlsdesc_resolve_rela;
+ *(ElfW(Addr)*)(D_PTR (l, l_info[ADDRIDX (DT_TLSDESC_GOT)]) + l->l_addr)
+ = (ElfW(Addr)) &_dl_tlsdesc_resolve_rela;
return lazy;
}
@@ -210,7 +211,7 @@
// XXX This is a work-around for a broken linker. Remove!
#define ELF_MACHINE_IRELATIVE R_X86_64_IRELATIVE
-/* The x86-64 never uses Elf64_Rel relocations. */
+/* The x86-64 never uses Elf64_Rel/Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
/* We define an initialization function. This is called very early in
@@ -225,19 +226,19 @@
GLRO(dl_platform) = NULL;
}
-static inline Elf64_Addr
+static inline ElfW(Addr)
elf_machine_fixup_plt (struct link_map *map, lookup_t t,
- const Elf64_Rela *reloc,
- Elf64_Addr *reloc_addr, Elf64_Addr value)
+ const ElfW(Rela) *reloc,
+ ElfW(Addr) *reloc_addr, ElfW(Addr) value)
{
return *reloc_addr = value;
}
/* Return the final value of a PLT relocation. On x86-64 the
JUMP_SLOT relocation ignores the addend. */
-static inline Elf64_Addr
-elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
- Elf64_Addr value)
+static inline ElfW(Addr)
+elf_machine_plt_value (struct link_map *map, const ElfW(Rela) *reloc,
+ ElfW(Addr) value)
{
return value;
}
@@ -256,12 +257,12 @@
auto inline void
__attribute__ ((always_inline))
-elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
- const Elf64_Sym *sym, const struct r_found_version *version,
+elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
+ const ElfW(Sym) *sym, const struct r_found_version *version,
void *const reloc_addr_arg, int skip_ifunc)
{
- Elf64_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info);
+ ElfW(Addr) *const reloc_addr = reloc_addr_arg;
+ const unsigned long int r_type = ELFW(R_TYPE) (reloc->r_info);
# if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
if (__builtin_expect (r_type == R_X86_64_RELATIVE, 0))
@@ -287,18 +288,18 @@
else
{
# ifndef RTLD_BOOTSTRAP
- const Elf64_Sym *const refsym = sym;
+ const ElfW(Sym) *const refsym = sym;
# endif
struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
- Elf64_Addr value = (sym == NULL ? 0
- : (Elf64_Addr) sym_map->l_addr + sym->st_value);
+ ElfW(Addr) value = (sym == NULL ? 0
+ : (ElfW(Addr)) sym_map->l_addr + sym->st_value);
if (sym != NULL
&& __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC,
0)
&& __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
&& __builtin_expect (!skip_ifunc, 1))
- value = ((Elf64_Addr (*) (void)) value) ();
+ value = ((ElfW(Addr) (*) (void)) value) ();
switch (r_type)
{
@@ -411,7 +412,7 @@
# ifndef RESOLVE_CONFLICT_FIND_MAP
/* Not needed for dl-conflict.c. */
case R_X86_64_PC32:
- value += reloc->r_addend - (Elf64_Addr) reloc_addr;
+ value += reloc->r_addend - (ElfW(Addr)) reloc_addr;
*(unsigned int *) reloc_addr = value;
if (__builtin_expect (value != (int) value, 0))
{
@@ -439,7 +440,7 @@
# endif
case R_X86_64_IRELATIVE:
value = map->l_addr + reloc->r_addend;
- value = ((Elf64_Addr (*) (void)) value) ();
+ value = ((ElfW(Addr) (*) (void)) value) ();
*reloc_addr = value;
break;
default:
@@ -452,22 +453,22 @@
auto inline void
__attribute ((always_inline))
-elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
+elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
void *const reloc_addr_arg)
{
- Elf64_Addr *const reloc_addr = reloc_addr_arg;
- assert (ELF64_R_TYPE (reloc->r_info) == R_X86_64_RELATIVE);
+ ElfW(Addr) *const reloc_addr = reloc_addr_arg;
+ assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
*reloc_addr = l_addr + reloc->r_addend;
}
auto inline void
__attribute ((always_inline))
elf_machine_lazy_rel (struct link_map *map,
- Elf64_Addr l_addr, const Elf64_Rela *reloc,
+ ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
int skip_ifunc)
{
- Elf64_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
- const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info);
+ ElfW(Addr) *const reloc_addr = (void *) (l_addr + reloc->r_offset);
+ const unsigned long int r_type = ELFW(R_TYPE) (reloc->r_info);
/* Check for unexpected PLT reloc type. */
if (__builtin_expect (r_type == R_X86_64_JUMP_SLOT, 1))
@@ -477,7 +478,7 @@
else
*reloc_addr =
map->l_mach.plt
- + (((Elf64_Addr) reloc_addr) - map->l_mach.gotplt) * 2;
+ + (((ElfW(Addr)) reloc_addr) - map->l_mach.gotplt) * 2;
}
else if (__builtin_expect (r_type == R_X86_64_TLSDESC, 1))
{
@@ -490,9 +491,9 @@
}
else if (__builtin_expect (r_type == R_X86_64_IRELATIVE, 0))
{
- Elf64_Addr value = map->l_addr + reloc->r_addend;
+ ElfW(Addr) value = map->l_addr + reloc->r_addend;
if (__builtin_expect (!skip_ifunc, 1))
- value = ((Elf64_Addr (*) (void)) value) ();
+ value = ((ElfW(Addr) (*) (void)) value) ();
*reloc_addr = value;
}
else
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits