fix regression in SH/FDPIC dynamic linker
authorRich Felker <dalias@aerifal.cx>
Thu, 18 Feb 2016 04:13:05 +0000 (04:13 +0000)
committerRich Felker <dalias@aerifal.cx>
Thu, 18 Feb 2016 04:13:05 +0000 (04:13 +0000)
the dynamic linker was found to hang when used as the PT_INTERP, but
not when invoked as a command. the mechanism of this failure was not
determined, but the cause is clear:

commit 5552ce52000855906a5cb4f08f2e456573cca51f removed the SHARED
macro, but arch/sh/crt_arch.h is still using it to choose the right
form of the crt/ldso entry point code. moving the forced definition
from rcrt1.c to dlstart.c restores the old behavior. eventually the
logic should be changed to fully remove the SHARED macro or at least
rename it to something more reasonable.

crt/rcrt1.c
ldso/dlstart.c

index e763d0ab1555a189f1d36dbcd3aaafa140c99795..be0171535bf860ecab1a35d2f42a977c6b09f0f3 100644 (file)
@@ -1,4 +1,3 @@
-#define SHARED
 #define START "_start"
 #define _dlstart_c _start_c
 #include "../ldso/dlstart.c"
index 4482d5250b8255265d894ea7b12f2eb7fd12ca56..4dbe17843ca2712388653c4065977d383df0c328 100644 (file)
@@ -5,6 +5,8 @@
 #define START "_dlstart"
 #endif
 
+#define SHARED
+
 #include "crt_arch.h"
 
 #ifndef GETFUNCSYM