## This test verifies that llvm-objcopy and llvm-strip do not remove ## undefined symbols if --keep-undefined is specified. # RUN: yaml2obj %s -o %t # RUN: llvm-objcopy --strip-all --keep-undefined %t %t.stripped # RUN: llvm-readobj --symbols %t.stripped | FileCheck %s # RUN: llvm-strip --keep-undefined %t -o %t.stripped.2 # RUN: cmp %t.stripped %t.stripped.2 # CHECK: Symbols [ # CHECK-NEXT: Symbol { # CHECK-NEXT: Name: _u (1) # CHECK-NEXT: Extern # CHECK-NEXT: Type: Undef (0x0) # CHECK-NEXT: Section: (0x0) # CHECK-NEXT: RefType: UndefinedNonLazy (0x0) # CHECK-NEXT: Flags [ (0x220) # CHECK-NEXT: AltEntry (0x200) # CHECK-NEXT: NoDeadStrip (0x20) # CHECK-NEXT: ] # CHECK-NEXT: Value: 0x4 # CHECK-NEXT: } # CHECK-NEXT: ] --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x1000007 cpusubtype: 0x3 filetype: 0x1 ncmds: 3 sizeofcmds: 256 flags: 0x2000 reserved: 0x0 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 152 segname: '' vmaddr: 0 vmsize: 0 fileoff: 288 filesize: 0 maxprot: 7 initprot: 7 nsects: 1 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0 size: 0 offset: 0x120 align: 0 reloff: 0x0 nreloc: 0 flags: 0x80000000 reserved1: 0x0 reserved2: 0x0 reserved3: 0x0 content: '' - cmd: LC_SYMTAB cmdsize: 24 symoff: 288 nsyms: 2 stroff: 320 strsize: 8 - cmd: LC_DYSYMTAB cmdsize: 80 ilocalsym: 0 nlocalsym: 1 iextdefsym: 1 nextdefsym: 0 iundefsym: 1 nundefsym: 1 tocoff: 0 ntoc: 0 modtaboff: 0 nmodtab: 0 extrefsymoff: 0 nextrefsyms: 0 indirectsymoff: 0 nindirectsyms: 0 extreloff: 0 nextrel: 0 locreloff: 0 nlocrel: 0 LinkEditData: NameList: - n_strx: 4 n_type: 0xE n_sect: 1 n_desc: 32 n_value: 0 - n_strx: 1 n_type: 0x1 n_sect: 0 n_desc: 544 n_value: 4 StringTable: - '' - _u - _d - '' ...