Committed, libgloss: hook up cris-elf to the initfini-array support.
After a binutils change "a while ago" (2015-12) to default to --enable-initfini-array, i.e. to merge .ctors and .dtors into .init_array and .fini_array, this is needed for cdtors to run at all. Based on what goes on in arm/ and aarch64/. Tested for cris-elf by running the gcc testsuite. By the way, the configure test doesn't detect this change, so the HAVE_INITFINI_ARRAY ifdeffery is somewhat redundant. Still, the change is tested to be safe with older binutils too. libgloss/ * cris/crt0.S, cris/lcrt0.c: Include newlib.h. [HAVE_INITFINI_ARRAY] (_init): Define to __libc_init_array. [HAVE_INITFINI_ARRAY] (_fini): Ditto __libc_fini_array.
This commit is contained in:
parent
52a6da816f
commit
cd5e7e2d82
|
@ -1,5 +1,5 @@
|
||||||
/* Generic simplistic start-up-stub for CRIS/CRISv32.
|
/* Generic simplistic start-up-stub for CRIS/CRISv32.
|
||||||
Copyright (C) 1993-2005, 2007 Axis Communications.
|
Copyright (C) 1993-2005, 2007, 2017 Axis Communications.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -26,6 +26,8 @@
|
||||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGE. */
|
POSSIBILITY OF SUCH DAMAGE. */
|
||||||
|
|
||||||
|
#include "newlib.h"
|
||||||
|
|
||||||
#undef cris
|
#undef cris
|
||||||
#undef L
|
#undef L
|
||||||
#ifdef __NO_UNDERSCORES__
|
#ifdef __NO_UNDERSCORES__
|
||||||
|
@ -34,6 +36,11 @@
|
||||||
#define L(x) _ ## x
|
#define L(x) _ ## x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_INITFINI_ARRAY
|
||||||
|
#define _init __libc_init_array
|
||||||
|
#define _fini __libc_fini_array
|
||||||
|
#endif
|
||||||
|
|
||||||
; Rudimentary v0..v32-compatible startup stub.
|
; Rudimentary v0..v32-compatible startup stub.
|
||||||
|
|
||||||
#ifdef __ELF__
|
#ifdef __ELF__
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Support for cris*-axis-linux-gnu and src/sim/cris simulator.
|
/* Support for cris*-axis-linux-gnu and src/sim/cris simulator.
|
||||||
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Axis Communications.
|
Copyright (C) 2000-2005, 2017 Axis Communications.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -27,6 +27,12 @@
|
||||||
POSSIBILITY OF SUCH DAMAGE. */
|
POSSIBILITY OF SUCH DAMAGE. */
|
||||||
|
|
||||||
#include "linunistd.h"
|
#include "linunistd.h"
|
||||||
|
#include "newlib.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_INITFINI_ARRAY
|
||||||
|
#define _init __libc_init_array
|
||||||
|
#define _fini __libc_fini_array
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void exit (int) __attribute ((__noreturn__));
|
extern void exit (int) __attribute ((__noreturn__));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue