bug-gnu-utils
[Top][All Lists]
Advanced

[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__ = . ;}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]