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/8d5d03b53b04
branches: trunk
changeset: 329101:8d5d03b53b04
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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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 68c71fdef57b -r 8d5d03b53b04 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