@@ -1424,7 +1424,7 @@ template <class ELFT> void Writer<ELFT>::resolveShfLinkOrder() {
1424
1424
}
1425
1425
}
1426
1426
1427
- static void finalizeSynthetic (SyntheticSection *sec) {
1427
+ static void finalizeSynthetic (Ctx &ctx, SyntheticSection *sec) {
1428
1428
if (sec && sec->isNeeded () && sec->getParent ()) {
1429
1429
llvm::TimeTraceScope timeScope (" Finalize synthetic sections" , sec->name );
1430
1430
sec->finalizeContents (ctx);
@@ -1438,7 +1438,7 @@ static void finalizeSynthetic(SyntheticSection *sec) {
1438
1438
template <class ELFT > void Writer<ELFT>::finalizeAddressDependentContent() {
1439
1439
llvm::TimeTraceScope timeScope (" Finalize address dependent content" );
1440
1440
ThunkCreator tc (ctx);
1441
- AArch64Err843419Patcher a64p;
1441
+ AArch64Err843419Patcher a64p (ctx) ;
1442
1442
ARMErr657417Patcher a32p;
1443
1443
ctx.script ->assignAddresses ();
1444
1444
@@ -1449,7 +1449,7 @@ template <class ELFT> void Writer<ELFT>::finalizeAddressDependentContent() {
1449
1449
// section order.
1450
1450
const auto finalizeOrderDependentContent = [this ] {
1451
1451
for (Partition &part : ctx.partitions )
1452
- finalizeSynthetic (part.armExidx .get ());
1452
+ finalizeSynthetic (ctx, part.armExidx .get ());
1453
1453
resolveShfLinkOrder ();
1454
1454
};
1455
1455
finalizeOrderDependentContent ();
@@ -1486,7 +1486,7 @@ template <class ELFT> void Writer<ELFT>::finalizeAddressDependentContent() {
1486
1486
changed |= a32p.createFixes ();
1487
1487
}
1488
1488
1489
- finalizeSynthetic (ctx.in .got .get ());
1489
+ finalizeSynthetic (ctx, ctx .in .got .get ());
1490
1490
if (ctx.in .mipsGot )
1491
1491
ctx.in .mipsGot ->updateAllocSize ();
1492
1492
@@ -1783,7 +1783,7 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
1783
1783
{
1784
1784
llvm::TimeTraceScope timeScope (" Finalize .eh_frame" );
1785
1785
for (Partition &part : ctx.partitions )
1786
- finalizeSynthetic (part.ehFrame .get ());
1786
+ finalizeSynthetic (ctx, part.ehFrame .get ());
1787
1787
}
1788
1788
}
1789
1789
@@ -1983,20 +1983,20 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
1983
1983
{
1984
1984
llvm::TimeTraceScope timeScope (" Finalize synthetic sections" );
1985
1985
1986
- finalizeSynthetic (ctx.in .bss .get ());
1987
- finalizeSynthetic (ctx.in .bssRelRo .get ());
1988
- finalizeSynthetic (ctx.in .symTabShndx .get ());
1989
- finalizeSynthetic (ctx.in .shStrTab .get ());
1990
- finalizeSynthetic (ctx.in .strTab .get ());
1991
- finalizeSynthetic (ctx.in .got .get ());
1992
- finalizeSynthetic (ctx.in .mipsGot .get ());
1993
- finalizeSynthetic (ctx.in .igotPlt .get ());
1994
- finalizeSynthetic (ctx.in .gotPlt .get ());
1995
- finalizeSynthetic (ctx.in .relaPlt .get ());
1996
- finalizeSynthetic (ctx.in .plt .get ());
1997
- finalizeSynthetic (ctx.in .iplt .get ());
1998
- finalizeSynthetic (ctx.in .ppc32Got2 .get ());
1999
- finalizeSynthetic (ctx.in .partIndex .get ());
1986
+ finalizeSynthetic (ctx, ctx .in .bss .get ());
1987
+ finalizeSynthetic (ctx, ctx .in .bssRelRo .get ());
1988
+ finalizeSynthetic (ctx, ctx .in .symTabShndx .get ());
1989
+ finalizeSynthetic (ctx, ctx .in .shStrTab .get ());
1990
+ finalizeSynthetic (ctx, ctx .in .strTab .get ());
1991
+ finalizeSynthetic (ctx, ctx .in .got .get ());
1992
+ finalizeSynthetic (ctx, ctx .in .mipsGot .get ());
1993
+ finalizeSynthetic (ctx, ctx .in .igotPlt .get ());
1994
+ finalizeSynthetic (ctx, ctx .in .gotPlt .get ());
1995
+ finalizeSynthetic (ctx, ctx .in .relaPlt .get ());
1996
+ finalizeSynthetic (ctx, ctx .in .plt .get ());
1997
+ finalizeSynthetic (ctx, ctx .in .iplt .get ());
1998
+ finalizeSynthetic (ctx, ctx .in .ppc32Got2 .get ());
1999
+ finalizeSynthetic (ctx, ctx .in .partIndex .get ());
2000
2000
2001
2001
// Dynamic section must be the last one in this list and dynamic
2002
2002
// symbol table section (dynSymTab) must be the first one.
@@ -2005,25 +2005,25 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
2005
2005
part.relaDyn ->mergeRels ();
2006
2006
// Compute DT_RELACOUNT to be used by part.dynamic.
2007
2007
part.relaDyn ->partitionRels ();
2008
- finalizeSynthetic (part.relaDyn .get ());
2008
+ finalizeSynthetic (ctx, part.relaDyn .get ());
2009
2009
}
2010
2010
if (part.relrDyn ) {
2011
2011
part.relrDyn ->mergeRels ();
2012
- finalizeSynthetic (part.relrDyn .get ());
2012
+ finalizeSynthetic (ctx, part.relrDyn .get ());
2013
2013
}
2014
2014
if (part.relrAuthDyn ) {
2015
2015
part.relrAuthDyn ->mergeRels ();
2016
- finalizeSynthetic (part.relrAuthDyn .get ());
2016
+ finalizeSynthetic (ctx, part.relrAuthDyn .get ());
2017
2017
}
2018
2018
2019
- finalizeSynthetic (part.dynSymTab .get ());
2020
- finalizeSynthetic (part.gnuHashTab .get ());
2021
- finalizeSynthetic (part.hashTab .get ());
2022
- finalizeSynthetic (part.verDef .get ());
2023
- finalizeSynthetic (part.ehFrameHdr .get ());
2024
- finalizeSynthetic (part.verSym .get ());
2025
- finalizeSynthetic (part.verNeed .get ());
2026
- finalizeSynthetic (part.dynamic .get ());
2019
+ finalizeSynthetic (ctx, part.dynSymTab .get ());
2020
+ finalizeSynthetic (ctx, part.gnuHashTab .get ());
2021
+ finalizeSynthetic (ctx, part.hashTab .get ());
2022
+ finalizeSynthetic (ctx, part.verDef .get ());
2023
+ finalizeSynthetic (ctx, part.ehFrameHdr .get ());
2024
+ finalizeSynthetic (ctx, part.verSym .get ());
2025
+ finalizeSynthetic (ctx, part.verNeed .get ());
2026
+ finalizeSynthetic (ctx, part.dynamic .get ());
2027
2027
}
2028
2028
}
2029
2029
@@ -2061,10 +2061,10 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
2061
2061
llvm::TimeTraceScope timeScope (" Finalize synthetic sections" );
2062
2062
// finalizeAddressDependentContent may have added local symbols to the
2063
2063
// static symbol table.
2064
- finalizeSynthetic (ctx.in .symTab .get ());
2065
- finalizeSynthetic (ctx.in .debugNames .get ());
2066
- finalizeSynthetic (ctx.in .ppc64LongBranchTarget .get ());
2067
- finalizeSynthetic (ctx.in .armCmseSGSection .get ());
2064
+ finalizeSynthetic (ctx, ctx .in .symTab .get ());
2065
+ finalizeSynthetic (ctx, ctx .in .debugNames .get ());
2066
+ finalizeSynthetic (ctx, ctx .in .ppc64LongBranchTarget .get ());
2067
+ finalizeSynthetic (ctx, ctx .in .armCmseSGSection .get ());
2068
2068
}
2069
2069
2070
2070
// Relaxation to delete inter-basic block jumps created by basic block
0 commit comments