* Internal ELF linker: for MIPS targets, place .got section after .data. This corresponds to behavior of ld, and reduces amount of processing when adding GOT slots for local symbols (which requires re-doing layout for all sections that come after .got)

git-svn-id: trunk@25154 -
This commit is contained in:
sergei 2013-07-21 13:10:57 +00:00
parent 4953fd0bb0
commit dddc78514d

View File

@ -1461,12 +1461,14 @@ begin
Concat('EXESECTION .dynamic'); Concat('EXESECTION .dynamic');
Concat(' OBJSECTION .dynamic'); Concat(' OBJSECTION .dynamic');
Concat('ENDEXESECTION'); Concat('ENDEXESECTION');
{$ifndef mips}
Concat('EXESECTION .got'); Concat('EXESECTION .got');
{$ifdef arm} {$ifdef arm}
Concat(' OBJSECTION .got.plt'); Concat(' OBJSECTION .got.plt');
{$endif arm} {$endif arm}
Concat(' OBJSECTION .got'); Concat(' OBJSECTION .got');
Concat('ENDEXESECTION'); Concat('ENDEXESECTION');
{$endif mips}
{$ifndef arm} {$ifndef arm}
Concat('EXESECTION .got.plt'); Concat('EXESECTION .got.plt');
Concat(' OBJSECTION .got.plt'); Concat(' OBJSECTION .got.plt');
@ -1479,6 +1481,11 @@ begin
Concat(' PROVIDE _edata'); Concat(' PROVIDE _edata');
Concat(' PROVIDE edata'); Concat(' PROVIDE edata');
Concat('ENDEXESECTION'); Concat('ENDEXESECTION');
{$ifdef mips}
Concat('EXESECTION .got');
Concat(' OBJSECTION .got');
Concat('ENDEXESECTION');
{$endif mips}
Concat('EXESECTION .bss'); Concat('EXESECTION .bss');
Concat(' OBJSECTION .dynbss'); Concat(' OBJSECTION .dynbss');
Concat(' OBJSECTION .bss*'); Concat(' OBJSECTION .bss*');