# HG changeset patch # User asl # Date 1181678785 0 # Node ID ca28b7d466b8c94da799a61c576a40396214d67e # Parent 1cc00c5dc8b1e23aaaacb1f9263668c6214324db * src/synth_entry.c (__stack_chk_fail): another new function needed when building with gcc 4.1.2 * current/src/synth.ld: place eh_frame_hdr into eh_frame. diff --git a/packages/hal/synth/arch/current/ChangeLog b/packages/hal/synth/arch/current/ChangeLog --- a/packages/hal/synth/arch/current/ChangeLog +++ b/packages/hal/synth/arch/current/ChangeLog @@ -1,3 +1,9 @@ +2007-06-12 Andrew Lunn + + * src/synth_entry.c (__stack_chk_fail): another new function + needed when building with gcc 4.1.2 + * current/src/synth.ld: place eh_frame_hdr into eh_frame. + 2006-07-10 Bart Veer * src/synth_entry.c (__stack_chk_fail_local): new function needed diff --git a/packages/hal/synth/arch/current/src/synth.ld b/packages/hal/synth/arch/current/src/synth.ld --- a/packages/hal/synth/arch/current/src/synth.ld +++ b/packages/hal/synth/arch/current/src/synth.ld @@ -110,7 +110,7 @@ GROUP(libtarget.a libgcc.a) .eh_frame _vma_ : _lma_ \ { \ FORCE_OUTPUT; __EH_FRAME_BEGIN__ = .; \ - KEEP(*(.eh_frame)) \ + KEEP(*(.eh_frame*)) \ __FRAME_END__ = .; \ . = . + 8; \ } > _region_ = 0 diff --git a/packages/hal/synth/arch/current/src/synth_entry.c b/packages/hal/synth/arch/current/src/synth_entry.c --- a/packages/hal/synth/arch/current/src/synth_entry.c +++ b/packages/hal/synth/arch/current/src/synth_entry.c @@ -210,6 +210,11 @@ void __attribute__ ((noreturn)) cyg_hal_sys_exit(1); for (;;); } +// Another symbol which indicates a similar problem occurred. +void __stack_chk_fail(void) +{ + __stack_chk_fail_local(); +} #endif //-----------------------------------------------------------------------------