Revert r356129 due to greendragon bot failures
llvm-svn: 356133
This commit is contained in:
parent
4c4ff13d3c
commit
e81f5f91b4
|
@ -1,47 +0,0 @@
|
|||
# Show that --remove-section removes sections in segments.
|
||||
|
||||
# RUN: yaml2obj %s -o %t
|
||||
|
||||
# Validate the offsets for the later parts of the test.
|
||||
# RUN: llvm-objcopy %t %t.copy
|
||||
# Skip to the start of the sections, which should be immediately after the
|
||||
# program header table (i.e. sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr) == 120).
|
||||
# RUN: od %t.copy -t x1 -N 16 -j 120 | FileCheck %s --check-prefix=COPY
|
||||
|
||||
# COPY: 11 22 33 44 55 66 77 88
|
||||
|
||||
# RUN: llvm-objcopy --remove-section non_alloc %t %t.nonalloc
|
||||
# RUN: llvm-readelf --sections %t.nonalloc | FileCheck %s --check-prefix=NONALLOC-SHDRS
|
||||
# RUN: od %t.nonalloc -t x1 -N 16 -j 120 | FileCheck %s --check-prefix=NONALLOC-BYTES
|
||||
|
||||
# NONALLOC-SHDRS-NOT: non_alloc
|
||||
# NONALLOC-BYTES: 11 22 33 44 00 00 00 00
|
||||
|
||||
# RUN: llvm-objcopy --remove-section shf_alloc %t %t.alloc
|
||||
# RUN: llvm-readelf --sections %t.alloc | FileCheck %s --check-prefix=ALLOC-SHDRS
|
||||
# RUN: od %t.alloc -t x1 -N 16 -j 120 | FileCheck %s --check-prefix=ALLOC-BYTES
|
||||
|
||||
# ALLOC-SHDRS-NOT: shf_alloc
|
||||
# ALLOC-BYTES: 00 00 00 00 55 66 77 88
|
||||
|
||||
--- !ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
Data: ELFDATA2LSB
|
||||
Type: ET_EXEC
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: shf_alloc
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [SHF_ALLOC]
|
||||
Content: '11223344'
|
||||
- Name: non_alloc
|
||||
Type: SHT_PROGBITS
|
||||
Flags: []
|
||||
Content: '55667788'
|
||||
ProgramHeaders:
|
||||
# Use an arbitrary segment type to show that the segment type is unimportant.
|
||||
- Type: 0x61234567
|
||||
Sections:
|
||||
- Section: shf_alloc
|
||||
- Section: non_alloc
|
|
@ -1,15 +1,10 @@
|
|||
# RUN: yaml2obj %s > %t
|
||||
# RUN: cp %t %t1
|
||||
# RUN: llvm-objcopy --strip-all-gnu %t %t2
|
||||
# RUN: llvm-strip --strip-all-gnu %t -o %t3
|
||||
# RUN: llvm-readobj --file-headers --sections %t2 | FileCheck %s
|
||||
# RUN: cmp %t2 %t3
|
||||
|
||||
# Show that the debug section in a segment was removed, to match GNU.
|
||||
# First validate that the offset in use is correct.
|
||||
# RUN: llvm-objcopy %t %t4
|
||||
# RUN: od %t4 -t x1 -N 4 -j 120 | FileCheck %s --check-prefix=COPY-BYTES
|
||||
# RUN: od %t2 -t x1 -N 4 -j 120 | FileCheck %s --check-prefix=STRIP-BYTES
|
||||
|
||||
!ELF
|
||||
FileHeader:
|
||||
Class: ELFCLASS64
|
||||
|
@ -17,10 +12,6 @@ FileHeader:
|
|||
Type: ET_REL
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: .debug_in_segment
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ ]
|
||||
Content: "deadbeef"
|
||||
- Name: .dynstr
|
||||
Type: SHT_STRTAB
|
||||
Flags: [ SHF_ALLOC ]
|
||||
|
@ -54,11 +45,6 @@ Sections:
|
|||
- Name: .rela.text
|
||||
Type: SHT_RELA
|
||||
Info: .text
|
||||
ProgramHeaders:
|
||||
# Use an arbitrary segment type to show that the segment type is unimportant.
|
||||
- Type: 0x61234567
|
||||
Sections:
|
||||
- Section: .debug_in_segment
|
||||
|
||||
# CHECK: SectionHeaderCount: 8
|
||||
|
||||
|
@ -69,6 +55,3 @@ ProgramHeaders:
|
|||
# CHECK: Name: .comment
|
||||
# CHECK: Name: .random_section_name
|
||||
# CHECK: Name: .shstrtab
|
||||
|
||||
# COPY-BYTES: de ad be ef
|
||||
# STRIP-BYTES: 00 00 00 00
|
||||
|
|
|
@ -57,10 +57,6 @@ FileHeader:
|
|||
Type: ET_REL
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: non_alloc_in_segment
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ ]
|
||||
Size: 4
|
||||
- Name: .bss
|
||||
Type: SHT_NOBITS
|
||||
Flags: [ SHF_ALLOC ]
|
||||
|
@ -72,15 +68,9 @@ Sections:
|
|||
Flags: [ ]
|
||||
- Name: .gnu.warning.foo
|
||||
Type: SHT_PROGBITS
|
||||
ProgramHeaders:
|
||||
# Use an arbitrary segment type to show that the segment type is unimportant.
|
||||
- Type: 0x61234567
|
||||
Sections:
|
||||
- Section: non_alloc_in_segment
|
||||
|
||||
# CHECK: SectionHeaderCount: 6
|
||||
# CHECK: SectionHeaderCount: 5
|
||||
|
||||
# CHECK: Name: non_alloc_in_segment
|
||||
# CHECK: Name: .bss
|
||||
# CHECK: Name: .text
|
||||
# CHECK: Name: .gnu.warning.foo
|
||||
|
|
|
@ -9,10 +9,6 @@ FileHeader:
|
|||
Type: ET_REL
|
||||
Machine: EM_X86_64
|
||||
Sections:
|
||||
- Name: non_alloc_in_segment
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ ]
|
||||
Size: 4
|
||||
- Name: .bss
|
||||
Type: SHT_NOBITS
|
||||
Flags: [ SHF_ALLOC ]
|
||||
|
@ -22,15 +18,9 @@ Sections:
|
|||
- Name: .blarg
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ ]
|
||||
ProgramHeaders:
|
||||
# Use an arbitrary segment type to show that the segment type is unimportant.
|
||||
- Type: 0x61234567
|
||||
Sections:
|
||||
- Section: non_alloc_in_segment
|
||||
|
||||
# CHECK: SectionHeaderCount: 5
|
||||
# CHECK: SectionHeaderCount: 4
|
||||
|
||||
# CHECK: Name: non_alloc_in_segment
|
||||
# CHECK: Name: .bss
|
||||
# CHECK: Name: .text
|
||||
# CHECK: Name: .shstrtab
|
||||
|
|
|
@ -15,18 +15,13 @@ Sections:
|
|||
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
||||
AddressAlign: 0x0000000000001000
|
||||
Content: "DEADBEEF"
|
||||
- Name: .non_alloc_in_segment
|
||||
Type: SHT_PROGBITS
|
||||
Flags: [ ]
|
||||
Content: "CAFEBABE"
|
||||
ProgramHeaders:
|
||||
- Type: PT_LOAD
|
||||
Flags: [ PF_X, PF_R ]
|
||||
Sections:
|
||||
- Section: .text
|
||||
- Section: .non_alloc_in_segment
|
||||
|
||||
#DATA: 0010000 de ad be ef ca fe ba be
|
||||
#DATA: 0010000 de ad be ef
|
||||
|
||||
#CHECK: ElfHeader {
|
||||
#CHECK-NEXT: Ident {
|
||||
|
@ -60,8 +55,8 @@ ProgramHeaders:
|
|||
#CHECK-NEXT: Offset: 0x1000
|
||||
#CHECK-NEXT: VirtualAddress: 0x0
|
||||
#CHECK-NEXT: PhysicalAddress: 0x0
|
||||
#CHECK-NEXT: FileSize: 8
|
||||
#CHECK-NEXT: MemSize: 8
|
||||
#CHECK-NEXT: FileSize: 4
|
||||
#CHECK-NEXT: MemSize: 4
|
||||
#CHECK-NEXT: Flags [ (0x5)
|
||||
#CHECK-NEXT: PF_R (0x4)
|
||||
#CHECK-NEXT: PF_X (0x1)
|
||||
|
|
|
@ -403,7 +403,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj,
|
|||
|
||||
if (Config.StripSections) {
|
||||
RemovePred = [RemovePred](const SectionBase &Sec) {
|
||||
return RemovePred(Sec) || Sec.ParentSegment == nullptr;
|
||||
return RemovePred(Sec) || (Sec.Flags & SHF_ALLOC) == 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj,
|
|||
return true;
|
||||
if (&Sec == Obj.SectionNames)
|
||||
return false;
|
||||
return (Sec.Flags & SHF_ALLOC) == 0 && Sec.ParentSegment == nullptr;
|
||||
return (Sec.Flags & SHF_ALLOC) == 0;
|
||||
};
|
||||
|
||||
if (Config.StripAll)
|
||||
|
@ -430,8 +430,6 @@ static Error handleArgs(const CopyConfig &Config, Object &Obj,
|
|||
return false;
|
||||
if (StringRef(Sec.Name).startswith(".gnu.warning"))
|
||||
return false;
|
||||
if (Sec.ParentSegment != nullptr)
|
||||
return false;
|
||||
return (Sec.Flags & SHF_ALLOC) == 0;
|
||||
};
|
||||
|
||||
|
|
|
@ -103,9 +103,10 @@ defm set_section_flags
|
|||
"rom, share, contents, merge, strings.">,
|
||||
MetaVarName<"section=flag1[,flag2,...]">;
|
||||
|
||||
def strip_all : Flag<["-", "--"], "strip-all">,
|
||||
HelpText<"Remove non-allocated sections outside segments. "
|
||||
".gnu.warning* sections are not removed">;
|
||||
def strip_all
|
||||
: Flag<["-", "--"], "strip-all">,
|
||||
HelpText<
|
||||
"Remove non-allocated sections other than .gnu.warning* sections">;
|
||||
def S : Flag<["-"], "S">, Alias<strip_all>;
|
||||
def strip_all_gnu : Flag<["-", "--"], "strip-all-gnu">,
|
||||
HelpText<"Compatible with GNU objcopy's --strip-all">;
|
||||
|
@ -115,15 +116,13 @@ def g : Flag<["-"], "g">, Alias<strip_debug>,
|
|||
HelpText<"Alias for --strip-debug">;
|
||||
def strip_dwo : Flag<["-", "--"], "strip-dwo">,
|
||||
HelpText<"Remove all DWARF .dwo sections from file">;
|
||||
def strip_sections
|
||||
: Flag<["-", "--"], "strip-sections">,
|
||||
HelpText<"Remove all section headers and all sections not in segments">;
|
||||
def strip_non_alloc
|
||||
: Flag<["-", "--"], "strip-non-alloc">,
|
||||
HelpText<"Remove all non-allocated sections outside segments">;
|
||||
def strip_sections : Flag<["-", "--"], "strip-sections">,
|
||||
HelpText<"Remove all section headers">;
|
||||
def strip_non_alloc : Flag<["-", "--"], "strip-non-alloc">,
|
||||
HelpText<"Remove all non-allocated sections">;
|
||||
def strip_unneeded : Flag<["-", "--"], "strip-unneeded">,
|
||||
HelpText<"Remove all symbols not needed by relocations">;
|
||||
defm strip_unneeded_symbol
|
||||
defm strip_unneeded_symbol
|
||||
: Eq<"strip-unneeded-symbol",
|
||||
"Remove symbol <symbol> if it is not needed by relocations">,
|
||||
MetaVarName<"symbol">;
|
||||
|
|
|
@ -31,9 +31,10 @@ def preserve_dates : Flag<["-", "--"], "preserve-dates">,
|
|||
HelpText<"Preserve access and modification timestamps">;
|
||||
def p : Flag<["-"], "p">, Alias<preserve_dates>;
|
||||
|
||||
def strip_all : Flag<["-", "--"], "strip-all">,
|
||||
HelpText<"Remove non-allocated sections outside segments. "
|
||||
".gnu.warning* sections are not removed">;
|
||||
def strip_all
|
||||
: Flag<["-", "--"], "strip-all">,
|
||||
HelpText<
|
||||
"Remove non-allocated sections other than .gnu.warning* sections">;
|
||||
def s : Flag<["-"], "s">, Alias<strip_all>;
|
||||
|
||||
def strip_all_gnu : Flag<["-", "--"], "strip-all-gnu">,
|
||||
|
|
Loading…
Reference in New Issue