Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Make EHABI optional.



details:   https://anonhg.NetBSD.org/src/rev/9b8bdf957b0e
branches:  trunk
changeset: 795862:9b8bdf957b0e
user:      joerg <joerg%NetBSD.org@localhost>
date:      Tue May 06 16:02:10 2014 +0000

description:
Make EHABI optional.

diffstat:

 common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S  |   8 +++++++-
 common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S |  10 +++++++++-
 common/lib/libc/arch/arm/string/strcat_arm.S     |   6 ++++++
 common/lib/libc/arch/arm/string/strlcat_arm.S    |   8 +++++++-
 common/lib/libc/arch/arm/string/strlen_arm.S     |   8 +++++++-
 lib/csu/arch/earm/crtbegin.h                     |   6 +++---
 lib/csu/common/crtbegin.c                        |  12 ++++++------
 lib/libexecinfo/unwind_arm_ehabi_stub.c          |   4 ++++
 8 files changed, 49 insertions(+), 13 deletions(-)

diffs (288 lines):

diff -r d53382b708d5 -r 9b8bdf957b0e common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S
--- a/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S   Tue May 06 14:31:21 2014 +0000
+++ b/common/lib/libc/arch/arm/quad/__aeabi_ldivmod.S   Tue May 06 16:02:10 2014 +0000
@@ -29,7 +29,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: __aeabi_ldivmod.S,v 1.12 2013/08/19 03:27:34 matt Exp $")
+RCSID("$NetBSD: __aeabi_ldivmod.S,v 1.13 2014/05/06 16:02:11 joerg Exp $")
 
 #ifdef __ARMEB__
 #define        ALO     r1      /* incoming numerator, outgoing quotient */
@@ -45,7 +45,9 @@
 
 ENTRY(__aeabi_ldivmod)
 #ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
        .fnstart
+# endif
        .cfi_startproc
 #endif
 #if !defined(_KERNEL) && !defined(_STANDALONE)
@@ -212,7 +214,9 @@
 .Ldivbyzero:
        push    {r0-r1,r4,lr}   
 #ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
        .save   {r0-r1,r4,lr}   
+# endif
        .cfi_def_cfa_offset 16
        .cfi_offset 14, -4
        .cfi_offset  4, -8
@@ -244,6 +248,8 @@
 #endif /* !_KERNEL && !_STANDALONE */
 #ifdef __ARM_EABI__
        .cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
        .fnend
+# endif
 #endif
 END(__aeabi_ldivmod)
diff -r d53382b708d5 -r 9b8bdf957b0e common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S
--- a/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S  Tue May 06 14:31:21 2014 +0000
+++ b/common/lib/libc/arch/arm/quad/__aeabi_uldivmod.S  Tue May 06 16:02:10 2014 +0000
@@ -29,7 +29,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: __aeabi_uldivmod.S,v 1.8 2013/12/12 18:01:14 matt Exp $")
+RCSID("$NetBSD: __aeabi_uldivmod.S,v 1.9 2014/05/06 16:02:11 joerg Exp $")
 
 /*
  * typedef struct { unsigned long long quo, rem } ulldiv_t;
@@ -39,7 +39,9 @@
 
 ENTRY(__aeabi_uldivmod)
 #ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
        .fnstart
+#endif
        .cfi_startproc
 #endif
 #if !defined(_KERNEL) && !defined(_STANDALONE)
@@ -61,7 +63,9 @@
 
        push    {r4,lr}
 #ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
        .save   {r4,lr}
+# endif
        .cfi_def_cfa_offset 8
        .cfi_offset 14, -4
        .cfi_offset 4, -8
@@ -94,7 +98,9 @@
 .Ldivbyzero:
        push    {r0-r1,r4,lr}
 #ifdef __ARM_EABI__
+# if !defined(__ARM_DWARF_EH__)
        .save   {r0-r1,r4,lr}
+# endif
        .cfi_def_cfa_offset 16
        .cfi_offset 14, -4
        .cfi_offset 4, -8
@@ -111,6 +117,8 @@
 #endif
 #ifdef __ARM_EABI__
        .cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
        .fnend
+# endif
 #endif
 END(__aeabi_uldivmod)
diff -r d53382b708d5 -r 9b8bdf957b0e common/lib/libc/arch/arm/string/strcat_arm.S
--- a/common/lib/libc/arch/arm/string/strcat_arm.S      Tue May 06 14:31:21 2014 +0000
+++ b/common/lib/libc/arch/arm/string/strcat_arm.S      Tue May 06 16:02:10 2014 +0000
@@ -34,12 +34,16 @@
  */
 ENTRY(strcat)
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .fnstart
+# endif
        .cfi_startproc
 #endif
        push    {r3-r5, lr}             /* save registers */
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .save   {r3-r5, lr}
+# endif
        .cfi_def_cfa_offset 16
        .cfi_offset 14, -4
        .cfi_offset 5, -8
@@ -60,6 +64,8 @@
        pop     {r3-r5, pc}             /* restore registers */
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
        .cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
        .fnend
+# endif
 #endif
 END(strcat)
diff -r d53382b708d5 -r 9b8bdf957b0e common/lib/libc/arch/arm/string/strlcat_arm.S
--- a/common/lib/libc/arch/arm/string/strlcat_arm.S     Tue May 06 14:31:21 2014 +0000
+++ b/common/lib/libc/arch/arm/string/strlcat_arm.S     Tue May 06 16:02:10 2014 +0000
@@ -29,17 +29,21 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: strlcat_arm.S,v 1.5 2013/09/05 05:15:47 matt Exp $")
+RCSID("$NetBSD: strlcat_arm.S,v 1.6 2014/05/06 16:02:11 joerg Exp $")
 
 /* LINTSTUB: size_t strlcat(char *, const char *, size_t) */
 ENTRY(strlcat)
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .fnstart
+# endif
        .cfi_startproc
 #endif
        push    {r4-r6, lr}
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .save   {r4-r6, lr}
+# endif
        .cfi_def_cfa_offset 16
        .cfi_offset 14, -4
        .cfi_offset 6, -8
@@ -62,6 +66,8 @@
        pop     {r4-r6, pc}             /* restore registers and return */
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
        .cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
        .fnend
+# endif
 #endif
 END(strlcat)
diff -r d53382b708d5 -r 9b8bdf957b0e common/lib/libc/arch/arm/string/strlen_arm.S
--- a/common/lib/libc/arch/arm/string/strlen_arm.S      Tue May 06 14:31:21 2014 +0000
+++ b/common/lib/libc/arch/arm/string/strlen_arm.S      Tue May 06 16:02:10 2014 +0000
@@ -29,7 +29,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: strlen_arm.S,v 1.8 2013/09/05 05:15:47 matt Exp $")
+RCSID("$NetBSD: strlen_arm.S,v 1.9 2014/05/06 16:02:11 joerg Exp $")
 
 #if defined(__thumb__) && !defined(_ARM_ARCH_T2)
 #error Only Thumb2 or ARM supported
@@ -56,13 +56,17 @@
        .text
 ENTRY(FUNCNAME)
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .fnstart
+# endif
        .cfi_startproc
 #endif
 #ifdef STRNLEN
        push    {r4,r5}                 /* save some registers */
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
+# if !defined(__ARM_DWARF_EH__)
        .save   {r4,r5}
+# endif
        .cfi_def_cfa_offset 8
        .cfi_offset 5, -4
        .cfi_offset 4, -8
@@ -175,6 +179,8 @@
 #endif
 #if defined(__ARM_EABI__) && defined(__UNWIND_TABLES__)
        .cfi_endproc
+# if !defined(__ARM_DWARF_EH__)
        .fnend
+# endif
 #endif
 END(FUNCNAME)
diff -r d53382b708d5 -r 9b8bdf957b0e lib/csu/arch/earm/crtbegin.h
--- a/lib/csu/arch/earm/crtbegin.h      Tue May 06 14:31:21 2014 +0000
+++ b/lib/csu/arch/earm/crtbegin.h      Tue May 06 16:02:10 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: crtbegin.h,v 1.1 2013/06/27 21:24:39 matt Exp $ */
+/* $NetBSD: crtbegin.h,v 1.2 2014/05/06 16:02:10 joerg Exp $ */
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -33,7 +33,7 @@
 static void __do_global_dtors_aux(void) __attribute__((__destructor__)) __used;
 #endif
 
-#ifndef SHARED
+#if !defined(SHARED) && !defined(__ARM_DWARF_EH__)
 static const void *find_exidx(void *, int *) __used;
 
 static const void *
@@ -47,4 +47,4 @@
 }
 
 __weak_alias(__gnu_Uwind_find_exidx,find_exidx)
-#endif /* !SHARED */
+#endif /* !SHARED && !__ARM_DWARF_EH__ */
diff -r d53382b708d5 -r 9b8bdf957b0e lib/csu/common/crtbegin.c
--- a/lib/csu/common/crtbegin.c Tue May 06 14:31:21 2014 +0000
+++ b/lib/csu/common/crtbegin.c Tue May 06 16:02:10 2014 +0000
@@ -27,7 +27,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: crtbegin.c,v 1.8 2014/01/29 20:57:49 bouyer Exp $");
+__RCSID("$NetBSD: crtbegin.c,v 1.9 2014/05/06 16:02:10 joerg Exp $");
 
 #include "crtbegin.h"
 
@@ -54,7 +54,7 @@
 __dso_hidden void *__dso_handle;
 #endif
 
-#if !defined(__ARM_EABI__)
+#if !defined(__ARM_EABI__) || defined(__ARM_DWARF_EH__)
 __dso_hidden
 #if !defined(__mips__)
        const
@@ -81,7 +81,7 @@
 
        __initialized = 1;
 
-#if !defined(__ARM_EABI__)
+#if !defined(__ARM_EABI__) || defined(__ARM_DWARF_EH__)
        if (register_frame_info)
                register_frame_info(__EH_FRAME_LIST__, &dwarf_eh_object);
 #endif
@@ -96,7 +96,7 @@
 #endif
 }
 
-#if !defined(__ARM_EABI__) || defined(SHARED)
+#if !defined(__ARM_EABI__) || defined(SHARED) || defined(__ARM_DWARF_EH__)
 #if !defined(HAVE_INITFINI_ARRAY)
 __dso_hidden const fptr_t __aligned(sizeof(void *)) __DTOR_LIST__[] __section(".dtors") = {
        (fptr_t) -1,
@@ -127,9 +127,9 @@
        }
 #endif
 
-#if !defined(__ARM_EABI__)
+#if !defined(__ARM_EABI__) || defined(__ARM_DWARF_EH__)
        if (deregister_frame_info)
                deregister_frame_info(__EH_FRAME_LIST__);
 #endif
 }
-#endif /* !__ARM_EABI__ || SHARED */
+#endif /* !__ARM_EABI__ || SHARED || __ARM_DWARF_EH__ */
diff -r d53382b708d5 -r 9b8bdf957b0e lib/libexecinfo/unwind_arm_ehabi_stub.c
--- a/lib/libexecinfo/unwind_arm_ehabi_stub.c   Tue May 06 14:31:21 2014 +0000
+++ b/lib/libexecinfo/unwind_arm_ehabi_stub.c   Tue May 06 16:02:10 2014 +0000
@@ -23,6 +23,8 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
+
+#ifndef __ARM_DWARF_EH__
 #include <sys/cdefs.h>
 #include <sys/types.h>
 #include "unwind.h"
@@ -59,3 +61,5 @@
        _Unwind_VRS_Set(context, 0 /*_UVRSC_CORE*/, reg, 0 /*_UVRSD_UINT32*/,
                &val);
 }
+
+#endif /* __ARM_DWARF_EH__ */



Home | Main Index | Thread Index | Old Index