summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/sysdeps/linux/arm/bits/endian.h9
-rw-r--r--libc/sysdeps/linux/arm/crt1.S7
2 files changed, 10 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/arm/bits/endian.h b/libc/sysdeps/linux/arm/bits/endian.h
index 1476881cb..4f60bd7d2 100644
--- a/libc/sysdeps/linux/arm/bits/endian.h
+++ b/libc/sysdeps/linux/arm/bits/endian.h
@@ -1,18 +1,17 @@
-/* ARM is (usually) little-endian.
- * Older FPU style (FPA) is always big-endian.
- * Newer FPU style (VFP) is same as host byte-order.
- */
-
#ifndef _ENDIAN_H
# error "Never use <bits/endian.h> directly; include <endian.h> instead."
#endif
+/* ARM can be either big or little endian. */
#ifdef __ARMEB__
# define __BYTE_ORDER __BIG_ENDIAN
#else
# define __BYTE_ORDER __LITTLE_ENDIAN
#endif
+/* FPA floating point units are always big-endian, irrespective of the
+ CPU endianness. VFP floating point units use the same endianness
+ as the rest of the system. */
#ifdef __VFP_FP__
# define __FLOAT_WORD_ORDER __BYTE_ORDER
#else
diff --git a/libc/sysdeps/linux/arm/crt1.S b/libc/sysdeps/linux/arm/crt1.S
index 26146ba86..7470715a1 100644
--- a/libc/sysdeps/linux/arm/crt1.S
+++ b/libc/sysdeps/linux/arm/crt1.S
@@ -1,5 +1,6 @@
/* Startup code for ARM & ELF
- Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002, 2005
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -148,10 +149,14 @@ _start:
ldr a4, =_init
/* __uClibc_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
+
/* Let the libc call main and exit with its return code. */
b __uClibc_main
#endif
+ /* should never get here....*/
+ bl abort
+
#ifdef __PIC__
.L_GOT:
.word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8)