Skip to content

Commit

Permalink
[gold-plugin] allow function/data sections to be toggleable
Browse files Browse the repository at this point in the history
Summary:
r336838 allowed these to be toggleable.
r336858 reverted r336838.
r336943 made the generation of these sections conditional on LDPO_REL.

This commit brings back the toggle-ability.  You can specify:
-plugin-opt=-function-sections
-plugin-opt=-data-sections
For your linker flags to disable the changes made in r336943.

Without toggling r336943 off, arm64 linux kernels linked with gold-plugin
see significant boot time regressions, but with r336943 outright reverted
x86_64 linux kernels linked with gold-plugin fail to boot.

Reviewers: pcc, void

Reviewed By: pcc

Subscribers: javed.absar, kristof.beyls, llvm-commits, srhines

Differential Revision: https://reviews.llvm.org/D55291

llvm-svn: 348389
  • Loading branch information
nickdesaulniers committed Dec 5, 2018
1 parent f7357c3 commit c9e38ba
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions llvm/tools/gold/gold-plugin.cpp
Expand Up @@ -833,8 +833,10 @@ static std::unique_ptr<LTO> createLTO(IndexWriteCallback OnIndexWrite,
Conf.Options.RelaxELFRelocations = false;

// Toggle function/data sections.
Conf.Options.FunctionSections = SplitSections;
Conf.Options.DataSections = SplitSections;
if (FunctionSections.getNumOccurrences() == 0)
Conf.Options.FunctionSections = SplitSections;
if (DataSections.getNumOccurrences() == 0)
Conf.Options.DataSections = SplitSections;

Conf.MAttrs = MAttrs;
Conf.RelocModel = RelocationModel;
Expand Down

0 comments on commit c9e38ba

Please sign in to comment.