199 lines · plain
1## Check incompatible options.2# RUN: not llvm-objcopy --remove-note=1 --remove-section=.test - 2>&1 | FileCheck %s --check-prefix=ERR-REMSEC3# RUN: not llvm-objcopy --remove-note=1 --add-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-ADDSEC4# RUN: not llvm-objcopy --remove-note=1 --update-section=.test=%s - 2>&1 | FileCheck %s --check-prefix=ERR-UPDSEC5 6# ERR-REMSEC: error: cannot specify both --remove-note and --remove-section7# ERR-ADDSEC: error: cannot specify both --remove-note and --add-section8# ERR-UPDSEC: error: cannot specify both --remove-note and --update-section9 10## Check invalid argument formats.11# RUN: not llvm-objcopy --remove-note= - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID12# RUN: not llvm-objcopy --remove-note=CORE/ - 2>&1 | FileCheck %s --check-prefix=ERR-NOTYPEID13# RUN: not llvm-objcopy --remove-note=/1 - 2>&1 | FileCheck %s --check-prefix=ERR-EMPTYNAME14# RUN: not llvm-objcopy --remove-note=CORE/1/2 - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM115# RUN: not llvm-objcopy --remove-note=Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM216# RUN: not llvm-objcopy --remove-note=CORE/Notanumber - 2>&1 | FileCheck %s --check-prefix=ERR-INVNUM217 18# ERR-NOTYPEID: error: bad format for --remove-note, missing type_id19# ERR-EMPTYNAME: error: bad format for --remove-note, note name is empty20# ERR-INVNUM1: error: bad note type_id for --remove-note: '1/2'21# ERR-INVNUM2: error: bad note type_id for --remove-note: 'Notanumber'22 23## Check deleting notes:24## * --remove-note=1 will remove note "CORE/1" and "LINUX/1",25## * --remove-note=DUMMY/2 will not remove any notes because there are no notes with this owner,26## * --remove-note=CORE/3 will remove "CORE/3" but preserve "LINUX/3".27# RUN: yaml2obj --docnum=1 -D ALIGN=8 -D ELFCLASS=64 -D ENDIANNESS=LSB %s -o %t8.64.lsb28# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/2 --remove-note=CORE/0x03 %t8.64.lsb %t8.64.lsb.o29# RUN: llvm-readobj --segments --sections --notes %t8.64.lsb.o | \30# RUN: FileCheck %s -D#SIZE0=32 -D#SIZE1=6431 32# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=64 -D ENDIANNESS=MSB %s -o %t4.64.msb33# RUN: llvm-objcopy --remove-note=0x01 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.64.msb %t4.64.msb.o34# RUN: llvm-readobj --segments --sections --notes %t4.64.msb.o | \35# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=4836 37# RUN: yaml2obj --docnum=1 -D ALIGN=4 -D ELFCLASS=32 -D ENDIANNESS=LSB %s -o %t4.32.lsb38# RUN: llvm-objcopy --remove-note=1 --remove-note=DUMMY/0x02 --remove-note=CORE/3 %t4.32.lsb %t4.32.lsb.o39# RUN: llvm-readobj --segments --sections --notes %t4.32.lsb.o | \40# RUN: FileCheck %s -D#SIZE0=24 -D#SIZE1=4841 42# CHECK: Sections [43# CHECK: Section {44# CHECK: Name: .note045# CHECK-NEXT: Type: SHT_NOTE46# CHECK-NEXT: Flags [47# CHECK-NEXT: ]48# CHECK-NEXT: Address:49# CHECK-NEXT: Offset:50# CHECK-NEXT: Size: [[#%d,SIZE0]]51# CHECK: Name: .note152# CHECK-NEXT: Type: SHT_NOTE53# CHECK-NEXT: Flags [54# CHECK-NEXT: ]55# CHECK-NEXT: Address:56# CHECK-NEXT: Offset:57# CHECK-NEXT: Size: [[#%d,SIZE1]]58# CHECK: Name: .note259# CHECK-NEXT: Type: SHT_NOTE60# CHECK-NEXT: Flags [61# CHECK-NEXT: ]62# CHECK-NEXT: Address:63# CHECK-NEXT: Offset:64# CHECK-NEXT: Size: 065 66# CHECK: NoteSections [67# CHECK-NEXT: NoteSection {68# CHECK-NEXT: Name: .note069# CHECK-NEXT: Offset:70# CHECK-NEXT: Size: 0x[[#%X,SIZE0]]71# CHECK-NEXT: Notes [72# CHECK-NEXT: {73# CHECK-NEXT: Owner: CORE74# CHECK-NEXT: Data size: 0x275# CHECK-NEXT: Type: NT_ARCH76# CHECK-NEXT: Description data (77# CHECK-NEXT: 0000: 020178# CHECK-NEXT: )79# CHECK-NEXT: }80# CHECK-NEXT: ]81# CHECK-NEXT: }82# CHECK-NEXT: NoteSection {83# CHECK-NEXT: Name: .note184# CHECK-NEXT: Offset:85# CHECK-NEXT: Size: 0x[[#%X,SIZE1]]86# CHECK-NEXT: Notes [87# CHECK-NEXT: {88# CHECK-NEXT: Owner: LINUX89# CHECK-NEXT: Data size: 0x290# CHECK-NEXT: Type: Unknown (0x00000003)91# CHECK-NEXT: Description data (92# CHECK-NEXT: 0000: 030193# CHECK-NEXT: )94# CHECK-NEXT: }95# CHECK-NEXT: {96# CHECK-NEXT: Owner: CORE97# CHECK-NEXT: Data size: 0x298# CHECK-NEXT: Type: Unknown (0x00000004)99# CHECK-NEXT: Description data (100# CHECK-NEXT: 0000: 0401101# CHECK-NEXT: )102# CHECK-NEXT: }103# CHECK-NEXT: ]104# CHECK-NEXT: }105# CHECK-NEXT: NoteSection {106# CHECK-NEXT: Name: .note2107# CHECK-NEXT: Offset:108# CHECK-NEXT: Size: 0x0109# CHECK-NEXT: Notes [110# CHECK-NEXT: ]111# CHECK-NEXT: }112 113--- !ELF114FileHeader:115 Class: ELFCLASS[[ELFCLASS]]116 Data: ELFDATA2[[ENDIANNESS]]117 Type: ET_REL118 Machine: EM_X86_64119Sections:120 - Name: .note0121 Type: SHT_NOTE122 AddressAlign: [[ALIGN]]123 Notes:124 - Name: CORE125 Type: 0x01126 Desc: 0101127 - Name: CORE128 Type: 0x02129 Desc: 0201130 - Name: .note1131 Type: SHT_NOTE132 AddressAlign: [[ALIGN]]133 Notes:134 - Name: LINUX135 Type: 0x03136 Desc: 0301137 - Name: CORE138 Type: 0x03139 Desc: 0302140 - Name: CORE141 Type: 0x04142 Desc: 0401143 - Name: .note2144 Type: SHT_NOTE145 AddressAlign: [[ALIGN]]146 Notes:147 - Name: LINUX148 Type: 0x01149 Desc: 0102150 151# RUN: yaml2obj --docnum=2 %s -o %t2152# RUN: llvm-objcopy --remove-note=1 %t2 %t2o 2>&1 | FileCheck %s --check-prefix=TEST2153# TEST2: warning: note segments are not supported154# TEST2-NOT: note segments are not supported155 156--- !ELF157FileHeader:158 Class: ELFCLASS64159 Data: ELFDATA2LSB160 Type: ET_CORE161 Machine: EM_X86_64162ProgramHeaders:163 - Type: PT_NOTE164 FirstSec: .data0165 LastSec: .data0166 - Type: PT_NOTE167 FirstSec: .data1168 LastSec: .data1169Sections:170 - Name: .data0171 Type: Fill172 Size: 8173 - Name: .data1174 Type: Fill175 Size: 8176 177# RUN: yaml2obj --docnum=3 %s -o %t3178# RUN: llvm-objcopy --remove-note=1 %t3 %t3o 2>&1 | FileCheck %s --check-prefix=TEST3179# TEST3: warning: cannot remove note(s) from .note: sections in segments are not supported180 181--- !ELF182FileHeader:183 Class: ELFCLASS64184 Data: ELFDATA2LSB185 Type: ET_EXEC186 Machine: EM_X86_64187ProgramHeaders:188 - Type: PT_LOAD189 FirstSec: .note190 LastSec: .note191Sections:192 - Name: .note193 Type: SHT_NOTE194 AddressAlign: 4195 Notes:196 - Name: ABC197 Type: 1198 Desc: 0102199