glibc/sysdeps
Chris Metcalf 8622092d58 [BZ #17354] tile: Fix up corner cases with signed relocations
Some types of relocations technically need to be signed rather than
unsigned: in particular ones that are used with moveli or movei,
or for jump and branch.  This is almost never a problem.  Jump and
branch opcodes are pretty much uniformly resolved by the static linker
(unless you omit -fpic for a shared library, which is not recommended).
The moveli and movei opcodes that need to be sign-extended generally
are for positive displacements, like the construction of the address of
main() from _start().  However, tst-pie1 ends up with main below _start
(in a different module) and the test failed due to signedness issues in
relocation handling.

This commit treats the value as signed when shifting (to preserve the
high bit) and also sign-extends the value generated from the updated
bundle when comparing with the desired bundle, which we do to make sure
no overflow occurred.  As a result, the tst-pie1 test now passes.
2014-09-06 12:24:03 -04:00
..
aarch64 Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
alpha Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
arm Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
generic Add __safe_fatal and use it in __pthread_unwind forwarder fallback. 2014-07-31 14:00:33 -07:00
gnu Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac. 2014-07-17 14:35:48 +00:00
hppa Move architecture shlib-versions files to Linux-specific directories. 2014-07-17 14:31:12 +00:00
i386 i386 TLS_INIT_TP might produce bogus asm changing stack pointer [BZ #17319] 2014-08-28 09:53:08 +02:00
ia64 IA64: Move NPTL public headers to sysdeps/ia64/nptl/. 2014-08-04 09:58:14 -04:00
ieee754 Fix missing <math_private.h> in ldbl-96 fma 2014-08-04 10:20:20 +02:00
init_array Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
m68k Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
mach Fix hang on fork 2014-08-28 22:09:29 +02:00
microblaze Move architecture shlib-versions files to Linux-specific directories. 2014-07-17 14:31:12 +00:00
mips Move architecture shlib-versions files to Linux-specific directories. 2014-07-17 14:31:12 +00:00
nptl Check value of futex before updating in __lll_timedlock 2014-08-12 12:57:27 +01:00
posix Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
powerpc Define __GI_fegetenv for e500 libm 2014-09-02 21:39:04 +00:00
pthread Restore subdir conditional for tst-timer dependency. 2014-07-03 18:52:51 -07:00
s390 Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
sh Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
sparc Get rid of sparc specific NPTL internaltypes.h header. 2014-07-09 22:19:09 -07:00
tile [BZ #17354] tile: Fix up corner cases with signed relocations 2014-09-06 12:24:03 -04:00
unix Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30
wordsize-32 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wordsize-64 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
x86 Fix comment error that Jakub pointed out but I forgot to fix 2014-08-13 18:46:41 +05:30
x86_64 Remove unnecessary uses of NOT_IN_libc 2014-08-21 10:26:46 +05:30