155c81d42SFangrui Song# RUN: yaml2obj %s -o %t 26e4dc6f2SAlexander Shaposhnikov 36e4dc6f2SAlexander Shaposhnikov# Single flags on a section with all flags: 46e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,alloc %t %t.alloc 5298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.alloc | FileCheck %s --check-prefixes=CHECK,ALLOC,WRITE 66e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,load %t %t.load 7298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.load | FileCheck %s --check-prefixes=CHECK,WRITE 86e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,noload %t %t.noload 9298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.noload | FileCheck %s --check-prefixes=CHECK,WRITE 106e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,readonly %t %t.readonly 11298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.readonly | FileCheck %s --check-prefixes=CHECK 126e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,debug %t %t.debug 13298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.debug | FileCheck %s --check-prefixes=CHECK,WRITE 146e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,code %t %t.code 15298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.code | FileCheck %s --check-prefixes=CHECK,EXEC,WRITE 166e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,data %t %t.data 17298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.data | FileCheck %s --check-prefixes=CHECK,WRITE 186e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,rom %t %t.rom 19298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.rom | FileCheck %s --check-prefixes=CHECK,WRITE 206e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,contents %t %t.contents 21298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.contents | FileCheck %s --check-prefixes=CHECK,WRITE 226e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,merge %t %t.merge 23298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.merge | FileCheck %s --check-prefixes=CHECK,MERGE,WRITE 246e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,strings %t %t.strings 25298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.strings | FileCheck %s --check-prefixes=CHECK,STRINGS,WRITE 266e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --rename-section=.foo=.bar,share %t %t.share 27298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t.share | FileCheck %s --check-prefixes=CHECK,WRITE 28e446322fSSergey Dmitriev# RUN: llvm-objcopy --rename-section=.foo=.bar,exclude %t %t.exclude 29e446322fSSergey Dmitriev# RUN: llvm-readobj --sections %t.exclude | FileCheck %s --check-prefixes=CHECK,WRITE,EXCLUDE 306e4dc6f2SAlexander Shaposhnikov 31*1562e455SJames Henderson## Show that if no flags are specified, all existing flags are preserved. 32*1562e455SJames Henderson## Note: GNU objcopy does not preserve the SHF_OS_NONCONFORMING flag. 33*1562e455SJames Henderson# RUN: llvm-objcopy --rename-section=.foo=.bar %t %t.none 34*1562e455SJames Henderson# RUN: llvm-readobj --sections %t.none | FileCheck %s --check-prefixes=CHECK,ALLOC,EXCLUDE,EXEC,MERGE,NONCONFORMING,STRINGS,WRITE 35*1562e455SJames Henderson 366e4dc6f2SAlexander Shaposhnikov!ELF 376e4dc6f2SAlexander ShaposhnikovFileHeader: 386e4dc6f2SAlexander Shaposhnikov Class: ELFCLASS64 396e4dc6f2SAlexander Shaposhnikov Data: ELFDATA2LSB 406e4dc6f2SAlexander Shaposhnikov Type: ET_REL 416e4dc6f2SAlexander Shaposhnikov Machine: EM_X86_64 426e4dc6f2SAlexander ShaposhnikovSections: 436e4dc6f2SAlexander Shaposhnikov - Name: .infolink 446e4dc6f2SAlexander Shaposhnikov Type: SHT_NOBITS 456e4dc6f2SAlexander Shaposhnikov - Name: .group 466e4dc6f2SAlexander Shaposhnikov Type: SHT_GROUP 476e4dc6f2SAlexander Shaposhnikov Link: .symtab 486e4dc6f2SAlexander Shaposhnikov Flags: [ ] 496e4dc6f2SAlexander Shaposhnikov Info: dummy 506e4dc6f2SAlexander Shaposhnikov Members: 516e4dc6f2SAlexander Shaposhnikov - SectionOrType: GRP_COMDAT 526e4dc6f2SAlexander Shaposhnikov - SectionOrType: .foo 536e4dc6f2SAlexander Shaposhnikov - Name: .foo 546e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 556e4dc6f2SAlexander Shaposhnikov Link: .infolink 566e4dc6f2SAlexander Shaposhnikov Flags: [ SHF_ALLOC, SHF_COMPRESSED, SHF_EXCLUDE, SHF_EXECINSTR, 576e4dc6f2SAlexander Shaposhnikov SHF_GROUP, SHF_INFO_LINK, SHF_LINK_ORDER, SHF_MERGE, 586e4dc6f2SAlexander Shaposhnikov SHF_OS_NONCONFORMING, SHF_STRINGS, SHF_TLS, SHF_WRITE ] 596e4dc6f2SAlexander Shaposhnikov Content: "a4a4a4a4" 606e4dc6f2SAlexander ShaposhnikovSymbols: 616e4dc6f2SAlexander Shaposhnikov - Name: dummy 626e4dc6f2SAlexander Shaposhnikov Section: .group 636e4dc6f2SAlexander Shaposhnikov 646e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .bar 656e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_PROGBITS 666e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ 676e4dc6f2SAlexander Shaposhnikov# ALLOC-NEXT: SHF_ALLOC (0x2) 686e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_COMPRESSED (0x800) 69e446322fSSergey Dmitriev# EXCLUDE-NEXT: SHF_EXCLUDE (0x80000000) 706e4dc6f2SAlexander Shaposhnikov# EXEC-NEXT: SHF_EXECINSTR (0x4) 716e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_GROUP (0x200) 726e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_INFO_LINK (0x40) 736e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_LINK_ORDER (0x80) 746e4dc6f2SAlexander Shaposhnikov# MERGE-NEXT: SHF_MERGE (0x10) 75*1562e455SJames Henderson# NONCONFORMING-NEXT: SHF_OS_NONCONFORMING (0x100) 766e4dc6f2SAlexander Shaposhnikov# STRINGS-NEXT: SHF_STRINGS (0x20) 776e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_TLS (0x400) 786e4dc6f2SAlexander Shaposhnikov# WRITE-NEXT: SHF_WRITE (0x1) 796e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 80