public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Re: update for djgpp linker script
@ 1999-08-24 20:18 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:18 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and didn't realize 
the parenthesis with it should have been deleted too.

 ld/Changelog:
 
 1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>
 
 * scripttempl/i386go32.sc (___EH_FRAME_BEGIN__, 
 ___EH_FRAME_END__): Delete.
   (_etext, _end): Move the semicolon inside the brace.
 
 * scripttempl/i386go32.sc: Support the g++ attribute 'init_priority'.
   Add a period to link once section names.
 

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999
--- scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999
*************** EXE=${CONSTRUCTING+${RELOCATING+-exe}}
*** 5,12 ****
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! CTOR='.ctor : { *(.ctor) }'
! DTOR='.dtor : { *(.dtor) }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
--- 5,20 ----
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! # Support the g++ attribute 'init_priority' from GCC 2.95 and above
! # by sorting sections starting with '.ctors.' and '.dtors.'
! CTOR='.ctor : {
!     *(SORT(.ctors.*))
!     *(.ctor)
!   }'
! DTOR='.dtor : {
!     *(SORT(.dtors.*))
!     *(.dtor)
!   }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
*************** SECTIONS
*** 17,46 ****
  {
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : {
      *(.text)
!     ${RELOCATING+*(.gnu.linkonce.t*)}
      *(.const*)
      *(.ro*)
!     ${RELOCATING+*(.gnu.linkonce.r*)}
      ${RELOCATING+etext  =  . ; _etext = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
      ${RELOCATING+*(.eh_fram*)}
-     ${RELOCATING+___EH_FRAME_END__ = . ;}
      ${RELOCATING+LONG(0);}
  
!     ${RELOCATING+*(.gnu.linkonce.d*)}
!     ${RELOCATING+edata  =  . ; _edata = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
--- 25,54 ----
  {
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : {
      *(.text)
!     ${RELOCATING+*(.gnu.linkonce.t.*)}
      *(.const*)
      *(.ro*)
!     ${RELOCATING+*(.gnu.linkonce.r.*)}
      ${RELOCATING+etext  =  . ; _etext = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
+     *(SORT(.ctors.*))
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
+     *(SORT(.dtors.*))
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
      ${RELOCATING+*(.eh_fram*)}
      ${RELOCATING+LONG(0);}
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)}
!     ${RELOCATING+edata  =  . ; _edata = . ;}
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
*************** SECTIONS
*** 49,55 ****
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = .};
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }
--- 57,63 ----
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = . ;}
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }

--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:20 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:20 UTC (permalink / raw)
  To: binutils

> 
> There was a typo in the last patch. I removed KEEP from .ctors.* and didn't realize 
> the parenthesis with it should have been deleted too.

Sorry about the two messages with messed up line endings. They 
weren't supposed to get out.


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:20 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:20 UTC (permalink / raw)
  To: binutils

> 
> There was a typo in the last patch. I removed KEEP from .ctors.* and didn't realize 
> the parenthesis with it should have been deleted too.

Sorry about the two messages with messed up line endings. They 
weren't supposed to get out.


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:18 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:18 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and didn't realize 
the parenthesis with it should have been deleted too.

 ld/Changelog:
 
 1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>
 
 * scripttempl/i386go32.sc (___EH_FRAME_BEGIN__, 
 ___EH_FRAME_END__): Delete.
   (_etext, _end): Move the semicolon inside the brace.
 
 * scripttempl/i386go32.sc: Support the g++ attribute 'init_priority'.
   Add a period to link once section names.
 

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999
--- scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999
*************** EXE=${CONSTRUCTING+${RELOCATING+-exe}}
*** 5,12 ****
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! CTOR='.ctor : { *(.ctor) }'
! DTOR='.dtor : { *(.dtor) }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
--- 5,20 ----
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! # Support the g++ attribute 'init_priority' from GCC 2.95 and above
! # by sorting sections starting with '.ctors.' and '.dtors.'
! CTOR='.ctor : {
!     *(SORT(.ctors.*))
!     *(.ctor)
!   }'
! DTOR='.dtor : {
!     *(SORT(.dtors.*))
!     *(.dtor)
!   }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
*************** SECTIONS
*** 17,46 ****
  {
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : {
      *(.text)
!     ${RELOCATING+*(.gnu.linkonce.t*)}
      *(.const*)
      *(.ro*)
!     ${RELOCATING+*(.gnu.linkonce.r*)}
      ${RELOCATING+etext  =  . ; _etext = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
      ${RELOCATING+*(.eh_fram*)}
-     ${RELOCATING+___EH_FRAME_END__ = . ;}
      ${RELOCATING+LONG(0);}
  
!     ${RELOCATING+*(.gnu.linkonce.d*)}
!     ${RELOCATING+edata  =  . ; _edata = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
--- 25,54 ----
  {
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : {
      *(.text)
!     ${RELOCATING+*(.gnu.linkonce.t.*)}
      *(.const*)
      *(.ro*)
!     ${RELOCATING+*(.gnu.linkonce.r.*)}
      ${RELOCATING+etext  =  . ; _etext = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
+     *(SORT(.ctors.*))
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
+     *(SORT(.dtors.*))
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
      ${RELOCATING+*(.eh_fram*)}
      ${RELOCATING+LONG(0);}
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)}
!     ${RELOCATING+edata  =  . ; _edata = . ;}
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
*************** SECTIONS
*** 49,55 ****
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = .};
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }
--- 57,63 ----
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = . ;}
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }

--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:13 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:13 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and 
didn't realize the parenthesis with it should have been deleted too. 

 ld/Changelog:   1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>   
* scripttempl/i386go32.sc (___EH_FRAME_BEGIN__,  
___EH_FRAME_END__): Delete.    (_etext, _end): Move the semicolon 
inside the brace.   * scripttempl/i386go32.sc: Support the g++ attribute 
'init_priority'.    Add a period to link once section names.  

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999 --- 
scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999 *************** 
EXE=${CONSTRUCTING+${RELOCATING+-exe}} *** 5,12 **** 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! CTOR='.ctor : { *(.ctor) }' ! DTOR='.dtor : { 
*(.dtor) }'     cat <<EOF   
OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") --- 5,20 ---- 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! # Support the g++ attribute 'init_priority' from 
GCC 2.95 and above ! # by sorting sections starting with '.ctors.' and 
'.dtors.' 
! CTOR='.ctor : { 
!     *(SORT(.ctors.*)) 
!     *(.ctor) 
!   }' 
! DTOR='.dtor : { 
!     *(SORT(.dtors.*)) 
!     *(.dtor) 
!   }' 
  
  cat <<EOF 
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") 
*************** SECTIONS 
*** 17,46 **** 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} 
      ${RELOCATING+*(.eh_fram*)} 
-     ${RELOCATING+___EH_FRAME_END__ = . ;} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d*)} 
!     ${RELOCATING+edata  =  . ; _edata = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
--- 25,54 ---- 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t.*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r.*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
+     *(SORT(.ctors.*)) 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
+     *(SORT(.dtors.*)) 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
      ${RELOCATING+*(.eh_fram*)} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)} 
!     ${RELOCATING+edata  =  . ; _edata = . ;} 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
*************** SECTIONS 
*** 49,55 **** 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = .}; 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 
--- 57,63 ---- 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = . ;} 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:13 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:13 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and 
didn't realize the parenthesis with it should have been deleted too. 

 ld/Changelog:   1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>   
* scripttempl/i386go32.sc (___EH_FRAME_BEGIN__,  
___EH_FRAME_END__): Delete.    (_etext, _end): Move the semicolon 
inside the brace.   * scripttempl/i386go32.sc: Support the g++ attribute 
'init_priority'.    Add a period to link once section names.  

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999 --- 
scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999 *************** 
EXE=${CONSTRUCTING+${RELOCATING+-exe}} *** 5,12 **** 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! CTOR='.ctor : { *(.ctor) }' ! DTOR='.dtor : { 
*(.dtor) }'     cat <<EOF   
OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") --- 5,20 ---- 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! # Support the g++ attribute 'init_priority' from 
GCC 2.95 and above ! # by sorting sections starting with '.ctors.' and 
'.dtors.' 
! CTOR='.ctor : { 
!     *(SORT(.ctors.*)) 
!     *(.ctor) 
!   }' 
! DTOR='.dtor : { 
!     *(SORT(.dtors.*)) 
!     *(.dtor) 
!   }' 
  
  cat <<EOF 
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") 
*************** SECTIONS 
*** 17,46 **** 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} 
      ${RELOCATING+*(.eh_fram*)} 
-     ${RELOCATING+___EH_FRAME_END__ = . ;} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d*)} 
!     ${RELOCATING+edata  =  . ; _edata = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
--- 25,54 ---- 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t.*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r.*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
+     *(SORT(.ctors.*)) 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
+     *(SORT(.dtors.*)) 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
      ${RELOCATING+*(.eh_fram*)} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)} 
!     ${RELOCATING+edata  =  . ; _edata = . ;} 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
*************** SECTIONS 
*** 49,55 **** 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = .}; 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 
--- 57,63 ---- 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = . ;} 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:13 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:13 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and 
didn't realize the parenthesis with it should have been deleted too. 

 ld/Changelog:   1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>   
* scripttempl/i386go32.sc (___EH_FRAME_BEGIN__,  
___EH_FRAME_END__): Delete.    (_etext, _end): Move the semicolon 
inside the brace.   * scripttempl/i386go32.sc: Support the g++ attribute 
'init_priority'.    Add a period to link once section names.  

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999 --- 
scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999 *************** 
EXE=${CONSTRUCTING+${RELOCATING+-exe}} *** 5,12 **** 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! CTOR='.ctor : { *(.ctor) }' ! DTOR='.dtor : { 
*(.dtor) }'     cat <<EOF   
OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") --- 5,20 ---- 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! # Support the g++ attribute 'init_priority' from 
GCC 2.95 and above ! # by sorting sections starting with '.ctors.' and 
'.dtors.' 
! CTOR='.ctor : { 
!     *(SORT(.ctors.*)) 
!     *(.ctor) 
!   }' 
! DTOR='.dtor : { 
!     *(SORT(.dtors.*)) 
!     *(.dtor) 
!   }' 
  
  cat <<EOF 
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") 
*************** SECTIONS 
*** 17,46 **** 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} 
      ${RELOCATING+*(.eh_fram*)} 
-     ${RELOCATING+___EH_FRAME_END__ = . ;} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d*)} 
!     ${RELOCATING+edata  =  . ; _edata = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
--- 25,54 ---- 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t.*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r.*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
+     *(SORT(.ctors.*)) 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
+     *(SORT(.dtors.*)) 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
      ${RELOCATING+*(.eh_fram*)} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)} 
!     ${RELOCATING+edata  =  . ; _edata = . ;} 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
*************** SECTIONS 
*** 49,55 **** 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = .}; 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 
--- 57,63 ---- 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = . ;} 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: update for djgpp linker script
@ 1999-08-24 20:13 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-24 20:13 UTC (permalink / raw)
  To: binutils

There was a typo in the last patch. I removed KEEP from .ctors.* and 
didn't realize the parenthesis with it should have been deleted too. 

 ld/Changelog:   1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>   
* scripttempl/i386go32.sc (___EH_FRAME_BEGIN__,  
___EH_FRAME_END__): Delete.    (_etext, _end): Move the semicolon 
inside the brace.   * scripttempl/i386go32.sc: Support the g++ attribute 
'init_priority'.    Add a period to link once section names.  

*** scripttempl\i386go32.sc.orig	Mon Aug  9 23:07:46 1999 --- 
scripttempl\i386go32.sc	Tue Aug 24 12:00:16 1999 *************** 
EXE=${CONSTRUCTING+${RELOCATING+-exe}} *** 5,12 **** 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! CTOR='.ctor : { *(.ctor) }' ! DTOR='.dtor : { 
*(.dtor) }'     cat <<EOF   
OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") --- 5,20 ---- 
    # These are substituted in as variables in order to get '}' in a shell   # 
conditional expansion. ! # Support the g++ attribute 'init_priority' from 
GCC 2.95 and above ! # by sorting sections starting with '.ctors.' and 
'.dtors.' 
! CTOR='.ctor : { 
!     *(SORT(.ctors.*)) 
!     *(.ctor) 
!   }' 
! DTOR='.dtor : { 
!     *(SORT(.dtors.*)) 
!     *(.dtor) 
!   }' 
  
  cat <<EOF 
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") 
*************** SECTIONS 
*** 17,46 **** 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} 
      ${RELOCATING+*(.eh_fram*)} 
-     ${RELOCATING+___EH_FRAME_END__ = . ;} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d*)} 
!     ${RELOCATING+edata  =  . ; _edata = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
--- 25,54 ---- 
  { 
    .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { 
      *(.text) 
!     ${RELOCATING+*(.gnu.linkonce.t.*)} 
      *(.const*) 
      *(.ro*) 
!     ${RELOCATING+*(.gnu.linkonce.r.*)} 
      ${RELOCATING+etext  =  . ; _etext = .}; 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { 
      ${RELOCATING+djgpp_first_ctor = . ; 
+     *(SORT(.ctors.*)) 
      *(.ctor) 
      djgpp_last_ctor = . ;} 
      ${RELOCATING+djgpp_first_dtor = . ; 
+     *(SORT(.dtors.*)) 
      *(.dtor) 
      djgpp_last_dtor = . ;} 
      *(.data) 
  
      ${RELOCATING+*(.gcc_exc*)} 
      ${RELOCATING+*(.eh_fram*)} 
      ${RELOCATING+LONG(0);} 
  
!     ${RELOCATING+*(.gnu.linkonce.d.*)} 
!     ${RELOCATING+edata  =  . ; _edata = . ;} 
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} 
    } 
    ${CONSTRUCTING+${RELOCATING-$CTOR}} 
*************** SECTIONS 
*** 49,55 **** 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = .}; 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 
--- 57,63 ---- 
    { 					 
      *(.bss) 
      *(COMMON) 
!     ${RELOCATING+ end = . ; _end = . ;} 
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} 
    } 
  } 


--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* update for djgpp linker script
@ 1999-08-20 17:02 Mark E.
  0 siblings, 0 replies; 9+ messages in thread
From: Mark E. @ 1999-08-20 17:02 UTC (permalink / raw)
  To: binutils

Hello,

It turns out that the ___EH* symbols aren't needed. The LONG(0) after 
.eh_fram* is needed for compatibility with the DJGPP version of gcc 
2.8.1, so it will have to stay for now.

Also note that .?tors. is hardcoded into gcc 2.95, so there is no choice 
on this.

ld/Changelog:

1999-08-19 Mark Elbrecht <snowball3@bigfoot.com>

* scripttempl/i386go32.sc (___EH_FRAME_BEGIN__, 
___EH_FRAME_END__): Delete.
  (_etext, _end): Move the semicolon inside the brace.

* scripttempl/i386go32.sc: Support the g++ attribute 'init_priority'.
  Add a period to link once section names.

*** scripttempl/i386go32.sc.orig	Mon Aug  9 23:07:46 1999
--- scripttempl/i386go32.sc	Fri Aug 20 19:51:34 1999
*************** EXE=${CONSTRUCTING+${RELOCATING+-exe}}
*** 5,12 ****
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! CTOR='.ctor : { *(.ctor) }'
! DTOR='.dtor : { *(.dtor) }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
--- 5,14 ----
  
  # These are substituted in as variables in order to get '}' in a shell
  # conditional expansion.
! # Support the g++ attribute 'init_priority' from GCC 2.95 and above
! # by sorting sections starting with '.ctors.' and '.dtors.'
! CTOR='.ctor : { (*(SORT(.ctors.*))) *(.ctor) }'
! DTOR='.dtor : { (*(SORT(.dtors.*))) *(.dtor) }'
  
  cat <<EOF
  OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}")
*************** SECTIONS
*** 26,46 ****
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
-     ${RELOCATING+___EH_FRAME_BEGIN__ = . ;}
      ${RELOCATING+*(.eh_fram*)}
-     ${RELOCATING+___EH_FRAME_END__ = . ;}
      ${RELOCATING+LONG(0);}
  
      ${RELOCATING+*(.gnu.linkonce.d*)}
!     ${RELOCATING+edata  =  . ; _edata = .};
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
--- 28,48 ----
    }
    .data ${RELOCATING+ ${DATA_ALIGNMENT}} : {
      ${RELOCATING+djgpp_first_ctor = . ;
+     (*(SORT(.ctors.*)))
      *(.ctor)
      djgpp_last_ctor = . ;}
      ${RELOCATING+djgpp_first_dtor = . ;
+     (*(SORT(.dtors.*)))
      *(.dtor)
      djgpp_last_dtor = . ;}
      *(.data)
  
      ${RELOCATING+*(.gcc_exc*)}
      ${RELOCATING+*(.eh_fram*)}
      ${RELOCATING+LONG(0);}
  
      ${RELOCATING+*(.gnu.linkonce.d*)}
!     ${RELOCATING+edata  =  . ; _edata = . ;}
      ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});}
    }
    ${CONSTRUCTING+${RELOCATING-$CTOR}}
*************** SECTIONS
*** 49,55 ****
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = .};
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }
--- 51,57 ----
    { 					
      *(.bss)
      *(COMMON)
!     ${RELOCATING+ end = . ; _end = . ;}
      ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});}
    }
  }

--- 
Mark Elbrecht, snowball3@bigfoot.com
http://snowball.frogspace.net/

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~1999-08-24 20:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-08-24 20:18 update for djgpp linker script Mark E.
  -- strict thread matches above, loose matches on Subject: below --
1999-08-24 20:20 Mark E.
1999-08-24 20:20 Mark E.
1999-08-24 20:18 Mark E.
1999-08-24 20:13 Mark E.
1999-08-24 20:13 Mark E.
1999-08-24 20:13 Mark E.
1999-08-24 20:13 Mark E.
1999-08-20 17:02 Mark E.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).