Mercurial > ecos
changeset 2902:c23173de14a8
Add support for a .eh_frame_hdr section
| author | bartv |
|---|---|
| date | Mon, 17 Aug 2009 14:44:16 +0000 |
| parents | b64cee69f7e3 |
| children | 4fc5c84f2234 |
| files | packages/hal/synth/arch/current/ChangeLog packages/hal/synth/arch/current/src/synth.ld |
| diffstat | 2 files changed, 24 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/synth/arch/current/ChangeLog +++ b/packages/hal/synth/arch/current/ChangeLog @@ -1,3 +1,8 @@ +2009-08-13 Bart Veer <bartv@ecoscentric.com> + + * src/synth.ld (SECTION_eh_frame): allow for a .eh_frame_hdr + section. + 2009-02-07 John Dallaway <john@dallaway.org.uk> * cdl/hal_synth.cdl: Parent under the common HAL package as with
--- 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_) \
