diff options
| author | Kevin Cernekee <cernekee@gmail.com> | 2011-07-24 01:19:12 -0700 | 
|---|---|---|
| committer | Carmelo Amoroso <carmelo.amoroso@st.com> | 2011-07-27 09:40:10 +0200 | 
| commit | 2d4243ce60bcd7a9f64c2ce670bc456f2c7da708 (patch) | |
| tree | 9b66c235e7936eed4b3ee6d31848cbd673b45f8f /libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c | |
| parent | 3d5cec4ff704c2dec151f3cdbcc426d746d37fcc (diff) | |
| download | uClibc-alpine-2d4243ce60bcd7a9f64c2ce670bc456f2c7da708.tar.bz2 uClibc-alpine-2d4243ce60bcd7a9f64c2ce670bc456f2c7da708.tar.xz | |
ldso/mips: Enable bootstrap relocations
_dl_reltypes_tab[] is an array of pointers to constant strings:
Contents of section .data:
 20000 01000000 02000000 00000000 00000000  ................
 20010 70e50000 7ce50000 88e50000 94e50000  p...|...........
       ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^
(pointers are LE)
Contents of section .rodata:
 e570 525f4d49 50535f4e 4f4e4500 525f4d49  R_MIPS_NONE.R_MI
 e580 50535f31 36000000 525f4d49 50535f33  PS_16...R_MIPS_3
 e590 32000000 525f4d49 50535f52 454c3332  2...R_MIPS_REL32
These pointers require relocation:
DYNAMIC RELOCATION RECORDS
OFFSET   TYPE              VALUE
00000000 R_MIPS_NONE       *ABS*
0001fffc R_MIPS_REL32      *ABS*
00020010 R_MIPS_REL32      *ABS*
00020014 R_MIPS_REL32      *ABS*
00020018 R_MIPS_REL32      *ABS*
On MIPS, only GOT relocations are currently handled by ldso during
startup.  The net effect is that when running with "LD_DEBUG=reloc",
ldso itself crashes before the program even starts.  This is caused
by _dl_dprintf() dereferencing an unadjusted string pointer such as
0xe570.
This patch enables the missing relocations and allows LD_DEBUG to work
as designed.
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c')
0 files changed, 0 insertions, 0 deletions
