Create sections with just assignments as STT_NOBITS.

This matches the behaviour of bfd ld. Using 0 was causing problems
with strip, which would remove these sections.

llvm-svn: 287969
This commit is contained in:
Rafael Espindola 2016-11-26 06:55:35 +00:00
parent 5c00b0dc74
commit f93b8c29c8
2 changed files with 3 additions and 3 deletions

View File

@ -566,7 +566,7 @@ template <class ELFT> void LinkerScript<ELFT>::adjustSectionsBeforeSorting() {
// '.' is assigned to, but creating these section should not have any bad
// consequeces and gives us a section to put the symbol in.
uintX_t Flags = SHF_ALLOC;
uint32_t Type = 0;
uint32_t Type = SHT_NOBITS;
for (const std::unique_ptr<BaseCommand> &Base : Opt.Commands) {
auto *Cmd = dyn_cast<OutputSectionCommand>(Base.get());
if (!Cmd)

View File

@ -12,8 +12,8 @@
# CHECK: Sections:
# CHECK-NEXT: Idx Name Size Address
# CHECK-NEXT: 0 00000000 0000000000000000
# CHECK-NEXT: 1 abc 00000000 [[ADDR:[0-9a-f]*]]
# CHECK-NEXT: 2 bar 00000000 0000000000001000 DATA
# CHECK: abc 00000000 [[ADDR:[0-9a-f]*]] BSS
# CHECK-NEXT: bar 00000000 0000000000001000 DATA
# CHECK: SYMBOL TABLE:
# CHECK: [[ADDR]] abc 00000000 foo