# RUN: yaml2obj %s -o %t # RUN: cp %t %t3 # RUN: llvm-objcopy --strip-debug %t %t2 ## Test that debug sections (but not linking or names) are stripped with --strip-debug # RUN: obj2yaml %t2 | FileCheck --implicit-check-not=.debug %s # # RUN: llvm-objcopy -g %t %t2g # Verify that --strip-debug and -g produce the same output # RUN: cmp %t2 %t2g # RUN: llvm-strip --strip-debug %t3 # RUN: cmp %t2 %t3 # RUN: cp %t %t4 # RUN: llvm-strip -d %t4 # RUN: cmp %t2 %t4 # RUN: cp %t %t5 # RUN: llvm-strip -g %t5 # RUN: cmp %t2 %t5 # RUN: cp %t %t6 # RUN: llvm-strip -S %t6 # RUN: cmp %t2 %t6 # Verify that an archive with multiple object files is handled correctly. # RUN: cp %t %t.duplicate # RUN: cp %t2 %t.duplicate.stripped # RUN: rm -f %t.multiple-stripped-obj.a # RUN: llvm-ar crs %t.multiple-stripped-obj.a %t2 %t.duplicate.stripped # RUN: rm -f %t.multiple-obj.a # RUN: llvm-ar crs %t.multiple-obj.a %t %t.duplicate # RUN: llvm-objcopy --strip-debug %t.multiple-obj.a %t.multiple-obj.stripped.a # RUN: llvm-ar p %t.multiple-stripped-obj.a > %t.multiple-stripped-obj.a.dump # RUN: llvm-ar p %t.multiple-obj.stripped.a > %t.multiple-obj.stripped.a.dump # RUN: cmp %t.multiple-stripped-obj.a.dump %t.multiple-obj.stripped.a.dump # CHECK: Sections: # CHECK-NEXT: - Type: TYPE # CHECK: - Type: CUSTOM ## We expect the linking section to be preceeded by the removed `.debug_info` ## section. # CHECK-NEXT: Name: .objcopy.removed # CHECK-NEXT: Payload: '' # CHECK-NEXT: - Type: CUSTOM # CHECK-NEXT: Name: linking # CHECK: Name: name # CHECK-NEXT: FunctionNames: # CHECK: Name: producers ## Following the producers section we expect to find three removed sections. ## The `.debug_line` section that two reloction section corresponding to the ## two debug sections. # CHECK: - Type: CUSTOM # CHECK-NEXT: Name: .objcopy.removed # CHECK-NEXT: Payload: '' # CHECK-NEXT: - Type: CUSTOM # CHECK-NEXT: Name: .objcopy.removed # CHECK-NEXT: Payload: '' # CHECK-NEXT: - Type: CUSTOM # CHECK-NEXT: Name: .objcopy.removed # CHECK-NEXT: Payload: '' --- !WASM FileHeader: Version: 0x00000001 Sections: - Type: TYPE Signatures: - Index: 0 ParamTypes: [] ReturnTypes: [] - Type: FUNCTION FunctionTypes: [ 0 ] - Type: CODE Functions: - Index: 0 Locals: [] Body: 0B - Type: CUSTOM Name: .debug_info Payload: 'CAFE123456' Relocations: - Type: R_WASM_FUNCTION_INDEX_LEB Index: 0 Offset: 0x0000000 - Type: CUSTOM Name: linking Version: 2 SymbolTable: - Index: 0 Kind: FUNCTION Name: foo Flags: [ BINDING_LOCAL ] Function: 0 - Type: CUSTOM Name: name FunctionNames: - Index: 0 Name: foo - Type: CUSTOM Name: producers Tools: - Name: clang Version: 9.0.0 - Type: CUSTOM Name: .debug_line Payload: 'DEADBEEF01' Relocations: - Type: R_WASM_FUNCTION_INDEX_LEB Index: 0 Offset: 0x0000000