From f34cf7cc3ba6fa0de8715cee49b0c6c2da042880 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Tue, 31 Jan 2006 23:31:32 +0000 Subject: s:THUMB_INTERWORK:USE_BX:, thx Khem Raj --- ldso/ldso/arm/dl-startup.h | 12 ++++++++++-- libc/sysdeps/linux/arm/clone.S | 2 +- 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 + * Copyright (C) 2000-2006 Erik Andersen + * + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ +#include + #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 -- cgit v1.2.3