diff options
-rw-r--r-- | libc/sysdeps/linux/arm/bits/endian.h | 9 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/crt1.S | 7 |
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) |