# RUN: yaml2obj %s -o %t ## Show that llvm-objcopy copies relocation entries where r_extern = 0. # RUN: llvm-objcopy %t %t2 # RUN: cmp %t %t2 ## Show that llvm-objcopy updates section indices properly. # RUN: llvm-objcopy --remove-section=__DATA,__foo %t %t3 # RUN: llvm-objdump --macho --reloc %t3 | FileCheck %s # CHECK: Relocation information (__DATA,__bar) 2 entries # CHECK-NEXT: address pcrel length extern type scattered symbolnum/value # CHECK-NEXT: 00000000 False quad False SUB False 2 (__DATA,__bar) # CHECK-NEXT: 00000000 False quad False UNSIGND False 1 (__TEXT,__text) --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x01000007 cpusubtype: 0x00000003 filetype: 0x00000001 ncmds: 1 sizeofcmds: 312 flags: 0x00000000 reserved: 0x00000000 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 312 segname: '' vmaddr: 0 vmsize: 24 fileoff: 344 filesize: 24 maxprot: 7 initprot: 7 nsects: 3 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0000000000000000 size: 8 offset: 0x00000158 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x80000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: '0000000000000000' - sectname: __foo segname: __DATA addr: 0x0000000000000008 size: 8 offset: 0x00000160 align: 0 reloff: 0x00000000 nreloc: 0 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: '0000000000000000' - sectname: __bar segname: __DATA addr: 0x0000000000000010 size: 8 offset: 0x00000168 align: 0 reloff: 0x00000170 nreloc: 2 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: F0FFFFFFFFFFFFFF relocations: - address: 0x00000000 symbolnum: 3 pcrel: false length: 3 extern: false type: 5 scattered: false value: 0 - address: 0x00000000 symbolnum: 1 pcrel: false length: 3 extern: false type: 0 scattered: false value: 0 ...