PR linker/4844

* genscript.sh: Add support for generating a .xa script for use with the --auto-import option.
* ld.texinfo: Document the new behaviour of the --auto-import option.
* ldint.texinfo: Document new script generation.
* emulparams/i386pe.sh (GENERATE_AUTO_IMPORT): Define.
* emulparams/i386pe_posix.sh (GENERATE_AUTO_IMPORT): Define.
* emulparams/i386pep.sh (GENERATE_AUTO_IMPORT): Define.
* emultemp/pe.em (..._get_script): Support the use of the auto import script.
* scripttempl/pe.sc: Put the .rdata input sections into the .data output section when creating an auto import script.
* scripttempl/pep.sc: Likewise.
This commit is contained in:
Nick Clifton
2007-10-01 09:54:58 +00:00
parent 1576798ef8
commit e2a83dd0ec
11 changed files with 80 additions and 14 deletions

View File

@@ -13,8 +13,16 @@ fi
# use grouped sections instead).
if test "${RELOCATING}"; then
R_TEXT='*(SORT(.text$*))'
R_DATA='*(SORT(.data$*))'
R_RDATA='*(SORT(.rdata$*))'
if test "x$LD_FLAG" = "xauto_import" ; then
R_DATA='*(SORT(.data$*))
*(.rdata)
*(SORT(.rdata$*))'
R_RDATA=''
else
R_DATA='*(SORT(.data$*))'
R_RDATA='*(.rdata)
*(SORT(.rdata$*))'
fi
R_IDATA='
SORT(*)(.idata$2)
SORT(*)(.idata$3)
@@ -37,7 +45,7 @@ if test "${RELOCATING}"; then
else
R_TEXT=
R_DATA=
R_RDATA=
R_RDATA='*(.rdata)'
R_IDATA=
R_CRT=
R_RSRC=
@@ -93,7 +101,6 @@ SECTIONS
.rdata ${RELOCATING+BLOCK(__section_alignment__)} :
{
*(.rdata)
${R_RDATA}
${RELOCATING+ *(.eh_frame)}
${RELOCATING+___RUNTIME_PSEUDO_RELOC_LIST__ = .;}

View File

@@ -13,8 +13,16 @@ fi
# use grouped sections instead).
if test "${RELOCATING}"; then
R_TEXT='*(SORT(.text$*))'
R_DATA='*(SORT(.data$*))'
R_RDATA='*(SORT(.rdata$*))'
if test "x$LD_FLAG" = "xauto_import" ; then
R_DATA='*(SORT(.data$*))
*(.rdata)
*(SORT(.rdata$*))'
R_RDATA=''
else
R_DATA='*(SORT(.data$*))'
R_RDATA='*(.rdata)
*(SORT(.rdata$*))'
fi
R_IDATA='
SORT(*)(.idata$2)
SORT(*)(.idata$3)
@@ -37,7 +45,7 @@ if test "${RELOCATING}"; then
else
R_TEXT=
R_DATA=
R_RDATA=
R_RDATA='*(.rdata)'
R_IDATA=
R_CRT=
R_RSRC=
@@ -93,7 +101,6 @@ SECTIONS
.rdata ${RELOCATING+BLOCK(__section_alignment__)} :
{
*(.rdata)
${R_RDATA}
${RELOCATING+ *(.eh_frame)}
${RELOCATING+___RUNTIME_PSEUDO_RELOC_LIST__ = .;}