115 lines · plain
1## Show that llvm-objcopy adds a new section into a 32-bit object file if2## --add-section is given.3 4# RUN: yaml2obj %s -o %t5# RUN: echo -n abcdefg > %t.data6 7## Case 1: Add a new section into an existing segment.8# RUN: llvm-objcopy --add-section __TEXT,__bar=%t.data %t %t.out19# RUN: llvm-readobj --sections --section-data %t.out1 \10# RUN: | FileCheck %s --check-prefixes=COMMON,CASE111 12## Case 2: Add a new section into a nonexistent segment.13# RUN: llvm-objcopy --add-section __FOO,__bar=%t.data %t %t.out214# RUN: llvm-readobj --sections --section-data %t.out2 \15# RUN: | FileCheck %s --check-prefixes=COMMON,CASE216 17## Case 3: Add a new section into an existing segment using /dev/null as an input.18# RUN: llvm-objcopy --add-section __TEXT,__bar=/dev/null %t %t.out319# RUN: llvm-readobj --sections --section-data %t.out3 \20# RUN: | FileCheck %s --check-prefixes=COMMON,CASE321 22--- !mach-o23FileHeader:24 magic: 0xFEEDFACE25 cputype: 0x0000000726 cpusubtype: 0x0000000327 filetype: 0x0000000128 ncmds: 129 sizeofcmds: 12430 flags: 0x0000200031LoadCommands:32 - cmd: LC_SEGMENT33 cmdsize: 12434 segname: __TEXT35 vmaddr: 036 vmsize: 437 fileoff: 18438 filesize: 439 maxprot: 740 initprot: 741 nsects: 142 flags: 043 Sections:44 - sectname: __text45 segname: __TEXT46 addr: 0x000000000000000047 content: 'AABBCCDD'48 size: 449 offset: 18450 align: 051 reloff: 0x0000000052 nreloc: 053 flags: 0x8000040054 reserved1: 0x0000000055 reserved2: 0x0000000056 reserved3: 0x0000000057 58# COMMON: Index: 059# COMMON-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)60# COMMON-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)61# COMMON-NEXT: Address: 0x062# COMMON-NEXT: Size: 0x463# COMMON-NEXT: Offset:64# COMMON-NEXT: Alignment: 065# COMMON-NEXT: RelocationOffset: 0x066# COMMON-NEXT: RelocationCount: 067# COMMON-NEXT: Type: Regular (0x0)68# COMMON-NEXT: Attributes [ (0x800004)69# COMMON-NEXT: PureInstructions (0x800000)70# COMMON-NEXT: SomeInstructions (0x4)71# COMMON-NEXT: ]72# COMMON-NEXT: Reserved1: 0x073# COMMON-NEXT: Reserved2: 0x074# COMMON-NEXT: SectionData (75# COMMON-NEXT: 0000: AABBCCDD |....|76# COMMON-NEXT: )77 78# COMMON: Index: 179# COMMON-NEXT: Name: __bar (5F 5F 62 61 72 00 00 00 00 00 00 00 00 00 00 00)80 81# CASE1-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)82# CASE1-NEXT: Address: 0x483# CASE1-NEXT: Size: 0x784# CASE1-NEXT: Offset: 22485 86# CASE2-NEXT: Segment: __FOO (5F 5F 46 4F 4F 00 00 00 00 00 00 00 00 00 00 00)87# CASE2-NEXT: Address: 0x9888# CASE2-NEXT: Size: 0x789# CASE2-NEXT: Offset: 28090 91# CASE3-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)92# CASE3-NEXT: Address: 0x493# CASE3-NEXT: Size: 0x094# CASE3-NEXT: Offset: 22495 96# COMMON-NEXT: Alignment: 097# COMMON-NEXT: RelocationOffset: 0x098# COMMON-NEXT: RelocationCount: 099# COMMON-NEXT: Type: Regular (0x0)100# COMMON-NEXT: Attributes [ (0x0)101# COMMON-NEXT: ]102# COMMON-NEXT: Reserved1: 0x0103# COMMON-NEXT: Reserved2: 0x0104 105# CASE1-NEXT: SectionData (106# CASE1-NEXT: 0000: 61626364 656667 |abcdefg|107# CASE1-NEXT: )108 109# CASE2-NEXT: SectionData (110# CASE2-NEXT: 0000: 61626364 656667 |abcdefg|111# CASE2-NEXT: )112 113# CASE3-NEXT: SectionData (114# CASE3-NEXT: )115