[patch] Arm ld.so not interworking safe.

Paul Brook paul at codesourcery.com
Fri Aug 4 14:36:29 UTC 2006


The Arm _dl_linux_resolve routine is not interworking safe.
The patch below makes it use bx when appropriate.

Paul

--- ldso/ldso/arm/resolve.S	(revision 146270)
+++ ldso/ldso/arm/resolve.S	(local)
@@ -18,6 +18,8 @@
  *  -Erik Andersen
  */
 
+#include <features.h>
+
 #define sl r10
 #define fp r11
 #define ip r12
@@ -39,5 +41,9 @@ _dl_linux_resolve:
 
 	mov ip, r0
 	ldmia sp!, {r0, r1, r2, r3, sl, fp, lr}
+#if defined(__USE_BX__)
+	bx ip
+#else
 	mov pc,ip
+#endif
 .size _dl_linux_resolve, .-_dl_linux_resolve



More information about the uClibc mailing list