120 lines · plain
1## Show that llvm-objcopy adds a new section into a 64-bit object 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# RUN: llvm-readobj --sections --section-data %t.out2 \17# RUN: | FileCheck %s --check-prefixes=COMMON,CASE218 19## Case 3: Add a new section into an existing segment using /dev/null as an input.20# RUN: llvm-objcopy --add-section __TEXT,__bar=/dev/null %t %t.out321# RUN: llvm-readobj --sections --section-data %t.out3 \22# RUN: | FileCheck %s --check-prefixes=COMMON,CASE323 24--- !mach-o25FileHeader:26 magic: 0xFEEDFACF27 cputype: 0x0100000728 cpusubtype: 0x0000000329 filetype: 0x0000000130 ncmds: 131 sizeofcmds: 15232 flags: 0x0000200033 reserved: 0x0000000034LoadCommands:35 - cmd: LC_SEGMENT_6436 cmdsize: 15237 segname: __TEXT38 vmaddr: 039 vmsize: 440 fileoff: 18441 filesize: 442 maxprot: 743 initprot: 744 nsects: 145 flags: 046 Sections:47 - sectname: __text48 segname: __TEXT49 addr: 0x000000000000000050 content: 'AABBCCDD'51 size: 452 offset: 18453 align: 054 reloff: 0x0000000055 nreloc: 056 flags: 0x8000040057 reserved1: 0x0000000058 reserved2: 0x0000000059 reserved3: 0x0000000060 61# COMMON: Index: 062# COMMON-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)63# COMMON-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)64# COMMON-NEXT: Address: 0x065# COMMON-NEXT: Size: 0x466# COMMON-NEXT: Offset:67# COMMON-NEXT: Alignment: 068# COMMON-NEXT: RelocationOffset: 0x069# COMMON-NEXT: RelocationCount: 070# COMMON-NEXT: Type: Regular (0x0)71# COMMON-NEXT: Attributes [ (0x800004)72# COMMON-NEXT: PureInstructions (0x800000)73# COMMON-NEXT: SomeInstructions (0x4)74# COMMON-NEXT: ]75# COMMON-NEXT: Reserved1: 0x076# COMMON-NEXT: Reserved2: 0x077# COMMON-NEXT: Reserved3: 0x078# COMMON-NEXT: SectionData (79# COMMON-NEXT: 0000: AABBCCDD |....|80# COMMON-NEXT: )81 82# COMMON: Index: 183# COMMON-NEXT: Name: __bar (5F 5F 62 61 72 00 00 00 00 00 00 00 00 00 00 00)84 85# CASE1-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)86# CASE1-NEXT: Address: 0x487# CASE1-NEXT: Size: 0x788# CASE1-NEXT: Offset: 26889 90# CASE2: Segment: __FOO (5F 5F 46 4F 4F 00 00 00 00 00 00 00 00 00 00 00)91# CASE2-NEXT: Address: 0xB892# CASE2-NEXT: Size: 0x793# CASE2-NEXT: Offset: 34094 95# CASE3-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)96# CASE3-NEXT: Address: 0x497# CASE3-NEXT: Size: 0x098# CASE3-NEXT: Offset: 26899 100# COMMON-NEXT: Alignment: 0101# COMMON-NEXT: RelocationOffset: 0x0102# COMMON-NEXT: RelocationCount: 0103# COMMON-NEXT: Type: Regular (0x0)104# COMMON-NEXT: Attributes [ (0x0)105# COMMON-NEXT: ]106# COMMON-NEXT: Reserved1: 0x0107# COMMON-NEXT: Reserved2: 0x0108# COMMON-NEXT: Reserved3: 0x0109 110# CASE1-NEXT: SectionData (111# CASE1-NEXT: 0000: 61626364 656667 |abcdefg|112# CASE1-NEXT: )113 114# CASE2-NEXT: SectionData (115# CASE2-NEXT: 0000: 61626364 656667 |abcdefg|116# CASE2-NEXT: )117 118# CASE3-NEXT: SectionData (119# CASE3-NEXT: )120