[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Define __EH_FRAME_BEGIN__ etc for arm-coff
From: |
Nick Clifton |
Subject: |
Define __EH_FRAME_BEGIN__ etc for arm-coff |
Date: |
20 Oct 2001 10:50:46 +0100 |
Hi Guys,
I am checking in the following patch to define __EH_FRAME_BEGIN__
and __EH_FRAME_END__ for the arm-coff port.
Cheers
Nick
2001-10-20 Nick Clifton <address@hidden>
* scripttempl/armcoff.sc: Define __EH_FRAME_BEGIN__ and
__EH_FRAME_END__ and accept eh frames into data section.
Add ctor and dtor sections.
Index: ld/scripttempl/armcoff.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/armcoff.sc,v
retrieving revision 1.3
diff -p -r1.3 armcoff.sc
*** armcoff.sc 2001/04/27 17:12:16 1.3
--- armcoff.sc 2001/10/20 09:51:39
*************** if test -z "${DATA_ADDR}"; then
*** 6,11 ****
--- 6,23 ----
DATA_ADDR=.
fi
fi
+
+ # These are substituted in as variables in order to get '}' in a shell
+ # conditional expansion.
+ CTOR='.ctor : {
+ *(SORT(.ctors.*))
+ *(.ctor)
+ }'
+ DTOR='.dtor : {
+ *(SORT(.dtors.*))
+ *(.dtor)
+ }'
+
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
"${LITTLE_OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
*************** SECTIONS
*** 35,44 ****
--- 47,65 ----
.data ${RELOCATING+${DATA_ADDR-0x40000 + (. & 0xfffc0fff)}} : {
${RELOCATING+ __data_start__ = . ;}
*(.data*)
+
+ ${RELOCATING+*(.gcc_exc*)}
+ ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
+ ${RELOCATING+*(.eh_fram*)}
+ ${RELOCATING+___EH_FRAME_END__ = . ;}
+ ${RELOCATING+LONG(0);}
+
${RELOCATING+ __data_end__ = . ;}
${RELOCATING+ edata = .;}
${RELOCATING+ _edata = .;}
}
+ ${CONSTRUCTING+${RELOCATING-$CTOR}}
+ ${CONSTRUCTING+${RELOCATING-$DTOR}}
.bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} :
{
${RELOCATING+ __bss_start__ = . ;}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Define __EH_FRAME_BEGIN__ etc for arm-coff,
Nick Clifton <=