From 65f35e4afc8cc481943a3c72f895a33f7282dba1 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 27 Jun 2018 15:56:32 +0000 Subject: [PATCH] [ELF] Rename RF_PROGBITS_NOT_EXEC_OR_WRITE to RF_RODATA Post commit review at D48406 llvm-svn: 335743 --- lld/ELF/Writer.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 3eb345b..759ac3d 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -701,7 +701,7 @@ enum RankFlags { RF_WRITE = 1 << 15, RF_EXEC_WRITE = 1 << 14, RF_EXEC = 1 << 13, - RF_PROGBITS_NOT_EXEC_OR_WRITE = 1 << 12, + RF_RODATA = 1 << 12, RF_NON_TLS_BSS = 1 << 11, RF_NON_TLS_BSS_RO = 1 << 10, RF_NOT_TLS = 1 << 9, @@ -755,15 +755,14 @@ static unsigned getSectionRank(const OutputSection *Sec) { Rank |= RF_EXEC_WRITE; else Rank |= RF_EXEC; - } else { - if (IsWrite) - Rank |= RF_WRITE; + } else if (IsWrite) { + Rank |= RF_WRITE; + } else if (Sec->Type == SHT_PROGBITS) { // Make non-executable and non-writable PROGBITS sections (e.g .rodata - // .eh_frame) closer to .text . They likely contain PC or GOT relative + // .eh_frame) closer to .text. They likely contain PC or GOT relative // relocations and there could be relocation overflow if other huge sections // (.dynstr .dynsym) were placed in between. - else if (Sec->Type == SHT_PROGBITS) - Rank |= RF_PROGBITS_NOT_EXEC_OR_WRITE; + Rank |= RF_RODATA; } // If we got here we know that both A and B are in the same PT_LOAD. -- 2.7.4