diff options
-rw-r--r-- | ldso/ldso/arm/dl-startup.h | 12 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/clone.S | 2 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/vfork.S | 4 |
3 files changed, 13 insertions, 5 deletions
diff --git a/ldso/ldso/arm/dl-startup.h b/ldso/ldso/arm/dl-startup.h index f40d47f48..43985d002 100644 --- a/ldso/ldso/arm/dl-startup.h +++ b/ldso/ldso/arm/dl-startup.h @@ -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" diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S index 66848e548..a5a847d1e 100644 --- a/libc/sysdeps/linux/arm/clone.S +++ b/libc/sysdeps/linux/arm/clone.S @@ -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 diff --git a/libc/sysdeps/linux/arm/vfork.S b/libc/sysdeps/linux/arm/vfork.S index 486a7e8e4..607ffe5a6 100644 --- a/libc/sysdeps/linux/arm/vfork.S +++ b/libc/sysdeps/linux/arm/vfork.S @@ -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 |