# HG changeset patch # User bartv # Date 1250520256 0 # Node ID c23173de14a891c9617037d6ffe4e4739419f6c2 # Parent b64cee69f7e3de2688c96243fdda6fb168405ff2 Add support for a .eh_frame_hdr section 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,8 @@ +2009-08-13 Bart Veer + + * src/synth.ld (SECTION_eh_frame): allow for a .eh_frame_hdr + section. + 2009-02-07 John Dallaway * cdl/hal_synth.cdl: Parent under the common HAL package as with 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 @@ -8,7 +8,7 @@ // ####ECOSGPLCOPYRIGHTBEGIN#### // ------------------------------------------- // This file is part of eCos, the Embedded Configurable Operating System. -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2009 Free Software Foundation, Inc. // // eCos is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the Free @@ -108,13 +108,24 @@ GROUP(libtarget.a libgcc.a) _EXCEPT_END_ = ABSOLUTE(.);} \ > _region_ -#define SECTION_eh_frame(_region_, _vma_, _lma_) \ - .eh_frame _vma_ : _lma_ \ - { \ - FORCE_OUTPUT; __EH_FRAME_BEGIN__ = .; \ - KEEP(*(.eh_frame*)) \ - __FRAME_END__ = .; \ - . = . + 8; \ +#define SECTION_eh_frame(_region_, _vma_, _lma_) \ + . = _vma_ ; \ + . = ALIGN(ALIGN_LMA) ; \ + .eh_frame_hdr . : _lma_ \ + { \ + FORCE_OUTPUT; \ + *(.eh_frame_hdr) \ + } > _region_ = 0 \ + . = ALIGN(ALIGN_LMA) ; \ + .eh_frame . : FOLLOWING(.eh_frame_hdr) \ + { \ + FORCE_OUTPUT; \ + __EH_FRAME_BEGIN__ = .; \ + KEEP(*(.eh_frame)) \ + KEEP(*(.eh_frame*)) \ + __EH_FRAME_END__ = .; \ + . = ALIGN(4) ; \ + . = . + 8; \ } > _region_ = 0 #define SECTION_RELOCS(_region_, _vma_, _lma_) \