222 lines · plain
1## Verify that -T removes Swift symbols.2# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA \3# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \4# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t15# RUN: llvm-strip -x -T %t16# RUN: llvm-readobj -s %t1 | FileCheck --check-prefix=NO-SWIFT-SYMBOLS %s7 8# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA_CONST \9# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \10# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t211# RUN: llvm-strip -x -T %t212# RUN: llvm-readobj -s %t2 | FileCheck --check-prefix=NO-SWIFT-SYMBOLS %s13 14# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA_DIRTY \15# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \16# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t317# RUN: llvm-strip -x -T %t318# RUN: llvm-readobj -s %t3 | FileCheck --check-prefix=NO-SWIFT-SYMBOLS %s19 20# NO-SWIFT-SYMBOLS: Symbols [21# NO-SWIFT-SYMBOLS-NEXT: Symbol {22# NO-SWIFT-SYMBOLS-NEXT: Name: _main (2)23# NO-SWIFT-SYMBOLS-NEXT: Extern24# NO-SWIFT-SYMBOLS-NEXT: Type: Section (0xE)25# NO-SWIFT-SYMBOLS-NEXT: Section: __text (0x1)26# NO-SWIFT-SYMBOLS-NEXT: RefType: UndefinedNonLazy (0x0)27# NO-SWIFT-SYMBOLS-NEXT: Flags [ (0x0)28# NO-SWIFT-SYMBOLS-NEXT: ]29# NO-SWIFT-SYMBOLS-NEXT: Value: 0x100000B7030# NO-SWIFT-SYMBOLS-NEXT: }31# NO-SWIFT-SYMBOLS-NEXT: ]32 33## Verify that -T does not remove (public) Swift symbols when the binary34## does not contain __objc_imageinfo in one of the expected segments.35 36# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA \37# RUN: -D SECTION_NAME=__not_objc_imageinfo -D SECTION_SIZE=8 \38# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t439# RUN: llvm-strip -x -T %t440# RUN: llvm-readobj -s %t4 | FileCheck --check-prefix=SWIFT-SYMBOLS %s41 42# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__NOT_DATA \43# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \44# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t545# RUN: llvm-strip -x -T %t546# RUN: llvm-readobj -s %t5 | FileCheck --check-prefix=SWIFT-SYMBOLS %s47 48## Verify that -T does not remove (public) Swift symbols when swift_version is zero.49 50# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA \51# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \52# RUN: -D SECTION_CONTENT=0000000000000000 %s -o %t653# RUN: llvm-strip -x -T %t654# RUN: llvm-readobj -s %t6 | FileCheck --check-prefix=SWIFT-SYMBOLS %s55 56## Verify that -T does not remove (public) Swift symbols when the binary57## contains invalid (too small) __objc_imageinfo.58 59# RUN: yaml2obj -D FLAGS=0x00200085 -D SEGMENT_NAME=__DATA \60# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=4 \61# RUN: -D SECTION_CONTENT=00000000 %s -o %t762# RUN: llvm-strip -x -T %t763# RUN: llvm-readobj -s %t7 | FileCheck --check-prefix=SWIFT-SYMBOLS %s64 65## Verify that -T does not remove (public) Swift symbols66## when the flag MH_DYLDLINK is not set.67 68# RUN: yaml2obj -D FLAGS=0x00200000 -D SEGMENT_NAME=__DATA \69# RUN: -D SECTION_NAME=__objc_imageinfo -D SECTION_SIZE=8 \70# RUN: -D SECTION_CONTENT=0000000040070105 %s -o %t871# RUN: llvm-strip -x -T %t872# RUN: llvm-readobj -s %t8 | FileCheck --check-prefix=SWIFT-SYMBOLS %s73 74# SWIFT-SYMBOLS: Symbols [75# SWIFT-SYMBOLS-NEXT: Symbol {76# SWIFT-SYMBOLS-NEXT: Name: _$S1a13PublicSymbol1Sivp (27)77# SWIFT-SYMBOLS-NEXT: Extern78# SWIFT-SYMBOLS-NEXT: Type: Section (0xE)79# SWIFT-SYMBOLS-NEXT: Section: __text (0x1)80# SWIFT-SYMBOLS-NEXT: RefType: UndefinedNonLazy (0x0)81# SWIFT-SYMBOLS-NEXT: Flags [ (0x0)82# SWIFT-SYMBOLS-NEXT: ]83# SWIFT-SYMBOLS-NEXT: Value: 0x10000116084# SWIFT-SYMBOLS-NEXT: }85# SWIFT-SYMBOLS-NEXT: Symbol {86# SWIFT-SYMBOLS-NEXT: Name: _$s1a13PublicSymbol2Sivp (2)87# SWIFT-SYMBOLS-NEXT: Extern88# SWIFT-SYMBOLS-NEXT: Type: Section (0xE)89# SWIFT-SYMBOLS-NEXT: Section: __text (0x1)90# SWIFT-SYMBOLS-NEXT: RefType: UndefinedNonLazy (0x0)91# SWIFT-SYMBOLS-NEXT: Flags [ (0x0)92# SWIFT-SYMBOLS-NEXT: ]93# SWIFT-SYMBOLS-NEXT: Value: 0x10000116894# SWIFT-SYMBOLS-NEXT: }95# SWIFT-SYMBOLS-NEXT: Symbol {96# SWIFT-SYMBOLS-NEXT: Name: _main (52)97# SWIFT-SYMBOLS-NEXT: Extern98# SWIFT-SYMBOLS-NEXT: Type: Section (0xE)99# SWIFT-SYMBOLS-NEXT: Section: __text (0x1)100# SWIFT-SYMBOLS-NEXT: RefType: UndefinedNonLazy (0x0)101# SWIFT-SYMBOLS-NEXT: Flags [ (0x0)102# SWIFT-SYMBOLS-NEXT: ]103# SWIFT-SYMBOLS-NEXT: Value: 0x100000B70104# SWIFT-SYMBOLS-NEXT: }105# SWIFT-SYMBOLS-NEXT: ]106 107--- !mach-o108FileHeader:109 magic: 0xFEEDFACF110 cputype: 0x01000007111 cpusubtype: 0x80000003112 filetype: 0x00000002113 ncmds: 4114 sizeofcmds: 400115 flags: [[FLAGS]]116 reserved: 0x00000000117LoadCommands:118 - cmd: LC_SEGMENT_64119 cmdsize: 152120 segname: __TEXT121 vmaddr: 4294967296122 vmsize: 4096123 fileoff: 0124 filesize: 4096125 maxprot: 5126 initprot: 5127 nsects: 1128 flags: 0129 Sections:130 - sectname: __text131 segname: __TEXT132 addr: 0x0000000100000B70133 size: 845134 offset: 0x00000B70135 align: 4136 reloff: 0x00000000137 nreloc: 0138 flags: 0x80000400139 reserved1: 0x00000000140 reserved2: 0x00000000141 reserved3: 0x00000000142 - cmd: LC_SEGMENT_64143 cmdsize: 152144 segname: [[SEGMENT_NAME]]145 vmaddr: 4294971392146 vmsize: 4096147 fileoff: 4096148 filesize: 4096149 maxprot: 3150 initprot: 3151 nsects: 1152 flags: 0153 Sections:154 - sectname: [[SECTION_NAME]]155 segname: [[SEGMENT_NAME]]156 addr: 0x0000000100001090157 size: [[SECTION_SIZE]]158 offset: 0x00001090159 align: 2160 reloff: 0x00000000161 nreloc: 0162 flags: 0x00000000163 reserved1: 0x00000000164 reserved2: 0x00000000165 reserved3: 0x00000000166 content: "[[SECTION_CONTENT]]"167 - cmd: LC_SEGMENT_64168 cmdsize: 72169 segname: __LINKEDIT170 vmaddr: 4294975488171 vmsize: 4096172 fileoff: 8192173 filesize: 188174 maxprot: 1175 initprot: 1176 nsects: 0177 flags: 0178 - cmd: LC_SYMTAB179 cmdsize: 24180 symoff: 8192181 nsyms: 5182 stroff: 8272183 strsize: 108184LinkEditData:185 NameList:186 - n_strx: 50187 n_type: 0x1E188 n_sect: 1189 n_desc: 0190 n_value: 4294971760191 - n_strx: 1192 n_type: 0x1E193 n_sect: 1194 n_desc: 0195 n_value: 4294971768196 - n_strx: 74197 n_type: 0x0F198 n_sect: 1199 n_desc: 0200 n_value: 4294971744201 - n_strx: 25202 n_type: 0x0F203 n_sect: 1204 n_desc: 0205 n_value: 4294971752206 - n_strx: 99207 n_type: 0x0F208 n_sect: 1209 n_desc: 0210 n_value: 4294970224211 StringTable:212 - ''213 - '_$s1a12LocalSymbol2Sivp'214 - '_$s1a13PublicSymbol2Sivp'215 - '_$S1a12LocalSymbol1Sivp'216 - '_$S1a13PublicSymbol1Sivp'217 - _main218 - ''219 - ''220 - ''221...222