remove processing of DT_JMPREL from dynamic linker stage 1 bootstrap
authorRich Felker <dalias@aerifal.cx>
Mon, 25 May 2015 04:25:56 +0000 (00:25 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 25 May 2015 04:25:56 +0000 (00:25 -0400)
the DT_JMPREL relocation table necessarily consists entirely of
JMP_SLOT (REL_PLT in internal nomenclature) relocations, which are
symbolic; they cannot be resolved in stage 1, so there is no point in
processing them.

src/ldso/dlstart.c

index 46f4a5c6c2bd7c4a1c5e9342ee918af09dceb02e..caa974a2817871cc9b2c6243bec0d8ec300b0eef 100644 (file)
@@ -65,7 +65,6 @@ void _dlstart_c(size_t *sp, size_t *dynv)
                size_t size;
                size_t stride;
        } reloc_info[] = {
-               { base+dyn[DT_JMPREL], dyn[DT_PLTRELSZ], 2+(dyn[DT_PLTREL]==DT_RELA) },
                { base+dyn[DT_REL], dyn[DT_RELSZ], 2 },
                { base+dyn[DT_RELA], dyn[DT_RELASZ], 3 },
                { 0, 0, 0 }