OSDN Git Service

s:THUMB_INTERWORK:USE_BX:, thx Khem Raj
authorPeter S. Mazinger <ps.m@gmx.net>
Tue, 31 Jan 2006 23:31:32 +0000 (23:31 -0000)
committerPeter S. Mazinger <ps.m@gmx.net>
Tue, 31 Jan 2006 23:31:32 +0000 (23:31 -0000)
ldso/ldso/arm/dl-startup.h
libc/sysdeps/linux/arm/clone.S
libc/sysdeps/linux/arm/vfork.S

index f40d47f..43985d0 100644 (file)
@@ -1,9 +1,13 @@
 /* vi: set sw=4 ts=4: */
 /*
  * Architecture specific code used by dl-startup.c
- * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  */
 
+#include <features.h>
+
 #if !defined(__thumb__)
 __asm__(
     "  .text\n"
@@ -41,7 +45,7 @@ __asm__(
        "       ldr     r0, .L_FINI_PROC\n"
        "       ldr     r0, [sl, r0]\n"
        "       @ jump to the user_s entry point\n"
-#if defined(__THUMB_INTERWORK__)
+#if defined(__USE_BX__)
        "       bx      r6\n"
 #else
        "       mov     pc, r6\n"
@@ -107,7 +111,11 @@ __asm__(
        "       ldr     r0, .L_FINI_PROC\n"
        "       ldr     r0, [r7, r0]\n"
        "       @ jump to the user_s entry point\n"
+#if defined(__USE_BX__)
        "       bx      r6\n"
+#else
+       "       mov     pc, r6\n"
+#endif
        "\n\n"
        ".L_GET_GOT:\n"
        "       .word   _GLOBAL_OFFSET_TABLE_ - .L_GOT_GOT - 4\n"
index 66848e5..a5a847d 100644 (file)
@@ -52,7 +52,7 @@ clone:
        DO_CALL (clone)
        movs    a1, a1
        blt     __error
-#if defined(__THUMB_INTERWORK__)
+#if defined(__USE_BX__)
        bxne    lr
 #else
        movne   pc, lr
index 486a7e8..607ffe5 100644 (file)
@@ -26,7 +26,7 @@ __vfork:
 #ifdef __NR_vfork
        DO_CALL (vfork)
        cmn     r0, #4096
-#if defined(__THUMB_INTERWORK__)
+#if defined(__USE_BX__)
        bxcc    lr
 #else
        movcc   pc, lr
@@ -43,7 +43,7 @@ __vfork:
        cmn     r0, #4096
 
        /* Syscall worked.  Return to child/parent */
-#if defined(__THUMB_INTERWORK__)
+#if defined(__USE_BX__)
        bxcc    lr
 #else
        movcc   pc, lr