* 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).