brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.3 KiB · c25491e Raw
285 lines · plain
1# RUN: yaml2obj %s -o %t2 3# RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-ORIGINAL4 5## Check offset, size and index of text segment command6# CHECK-ORIGINAL:      Load command 17# CHECK-ORIGINAL-NEXT  cmdsize8# CHECK-ORIGINAL-NEXT  segname __TEXT9# CHECK-ORIGINAL-NEXT  vmaddr10# CHECK-ORIGINAL-NEXT  vmsize11# CHECK-ORIGINAL-NEXT  fileoff 012# CHECK-ORIGINAL-NEXT  filesize 1638413 14## Check offset and index of code signature command15# CHECK-ORIGINAL:      Load command 1416# CHECK-ORIGINAL-NEXT: cmd LC_CODE_SIGNATURE17# CHECK-ORIGINAL-NEXT: cmdsize 1618# CHECK-ORIGINAL-NEXT: dataoff 1654419# CHECK-ORIGINAL-NEXT: datasize 28020 21# RUN: llvm-install-name-tool -prepend_rpath abcd %t22 23# RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-PREPEND24## Verify that the binary contains the new RPATH command, as the first command25# CHECK-PREPEND:         Load command 026# CHECK-PREPEND-NEXT:    cmd LC_RPATH27# CHECK-PREPEND-NEXT:    cmdsize28# CHECK-PREPEND-NEXT:    path abcd29 30## Verify the text segment command index increased by 131# CHECK-PREPEND:      Load command 232# CHECK-PREPEND-NEXT  cmdsize33# CHECK-PREPEND-NEXT  segname __TEXT34# CHECK-PREPEND-NEXT  vmaddr35# CHECK-PREPEND-NEXT  vmsize36# CHECK-PREPEND-NEXT  fileoff 037# CHECK-PREPEND-NEXT  filesize 1638438 39## Verify the code signature command index increased by 140# CHECK-PREPEND:        Load command 1541# CHECK-PREPEND-NEXT:   cmd LC_CODE_SIGNATURE42# CHECK-PREPEND-NEXT:   cmdsize 1643# CHECK-PREPEND-NEXT:   dataoff 1654444# CHECK-PREPEND-NEXT:   datasize 32045 46## Verify the new signature is valid47# RUN: %python %p/Inputs/code-signature-check.py %t 16544 320 0 16544 | FileCheck %s --check-prefix=CHECK-TEXT-SEGMENT48## Verify the text segment offset and text segment size values included in the signature header are accurate49# CHECK-TEXT-SEGMENT: execSegBase=0, execSegLimit=1638450 51# RUN: llvm-install-name-tool -delete_rpath abcd %t52 53# RUN: llvm-objdump --private-headers %t | FileCheck %s --check-prefix=CHECK-REMOVE54 55## Verify text segment command index returned to orignal56# CHECK-REMOVE:      Load command 157# CHECK-REMOVE-NEXT  cmdsize58# CHECK-REMOVE-NEXT  segname __TEXT59# CHECK-REMOVE-NEXT  vmaddr60# CHECK-REMOVE-NEXT  vmsize61# CHECK-REMOVE-NEXT  fileoff 062# CHECK-REMOVE-NEXT  filesize 1638463 64## Verify text segment command index returned to original65# CHECK-REMOVE:      Load command 1466# CHECK-REMOVE-NEXT: cmd LC_CODE_SIGNATURE67# CHECK-REMOVE-NEXT: cmdsize 1668# CHECK-REMOVE-NEXT: dataoff 1654469# CHECK-REMOVE-NEXT: datasize 32070 71## Verify the new signature is valid and text segment values are accurate72# RUN: %python %p/Inputs/code-signature-check.py %t 16544 320 0 16544 | FileCheck %s --check-prefix=CHECK-TEXT-SEGMENT73 74--- !mach-o75FileHeader:76  magic:           0xFEEDFACF77  cputype:         0x100000778  cpusubtype:      0x379  filetype:        0x280  ncmds:           1581  sizeofcmds:      76082  flags:           0x20008583  reserved:        0x084LoadCommands:85  - cmd:             LC_SEGMENT_6486    cmdsize:         7287    segname:         __PAGEZERO88    vmaddr:          089    vmsize:          429496729690    fileoff:         091    filesize:        092    maxprot:         093    initprot:        094    nsects:          095    flags:           096  - cmd:             LC_SEGMENT_6497    cmdsize:         23298    segname:         __TEXT99    vmaddr:          4294967296100    vmsize:          16384101    fileoff:         0102    filesize:        16384103    maxprot:         5104    initprot:        5105    nsects:          2106    flags:           0107    Sections:108      - sectname:        __text109        segname:         __TEXT110        addr:            0x100003FA0111        size:            15112        offset:          0x3FA0113        align:           4114        reloff:          0x0115        nreloc:          0116        flags:           0x80000400117        reserved1:       0x0118        reserved2:       0x0119        reserved3:       0x0120        content:         554889E531C0C745FC000000005DC3121      - sectname:        __unwind_info122        segname:         __TEXT123        addr:            0x100003FB0124        size:            72125        offset:          0x3FB0126        align:           2127        reloff:          0x0128        nreloc:          0129        flags:           0x0130        reserved1:       0x0131        reserved2:       0x0132        reserved3:       0x0133        content:         010000001C000000000000001C000000000000001C00000002000000A03F00003400000034000000B03F00000000000034000000030000000C000100100001000000000000000001134  - cmd:             LC_SEGMENT_64135    cmdsize:         72136    segname:         __LINKEDIT137    vmaddr:          4294983680138    vmsize:          16384139    fileoff:         16384140    filesize:        440141    maxprot:         1142    initprot:        1143    nsects:          0144    flags:           0145  - cmd:             LC_DYLD_INFO_ONLY146    cmdsize:         48147    rebase_off:      0148    rebase_size:     0149    bind_off:        0150    bind_size:       0151    weak_bind_off:   0152    weak_bind_size:  0153    lazy_bind_off:   0154    lazy_bind_size:  0155    export_off:      16384156    export_size:     48157  - cmd:             LC_SYMTAB158    cmdsize:         24159    symoff:          16440160    nsyms:           3161    stroff:          16488162    strsize:         48163  - cmd:             LC_DYSYMTAB164    cmdsize:         80165    ilocalsym:       0166    nlocalsym:       0167    iextdefsym:      0168    nextdefsym:      2169    iundefsym:       2170    nundefsym:       1171    tocoff:          0172    ntoc:            0173    modtaboff:       0174    nmodtab:         0175    extrefsymoff:    0176    nextrefsyms:     0177    indirectsymoff:  0178    nindirectsyms:   0179    extreloff:       0180    nextrel:         0181    locreloff:       0182    nlocrel:         0183  - cmd:             LC_LOAD_DYLINKER184    cmdsize:         32185    name:            12186    Content:         '/usr/lib/dyld'187    ZeroPadBytes:    7188  - cmd:             LC_UUID189    cmdsize:         24190    uuid:            42759668-1CBA-3094-8E2D-F01E1A66E815191  - cmd:             LC_BUILD_VERSION192    cmdsize:         32193    platform:        1194    minos:           720896195    sdk:             721664196    ntools:          1197    Tools:198      - tool:            3199        version:         42600704200  - cmd:             LC_SOURCE_VERSION201    cmdsize:         16202    version:         0203  - cmd:             LC_MAIN204    cmdsize:         24205    entryoff:        16288206    stacksize:       0207  - cmd:             LC_LOAD_DYLIB208    cmdsize:         56209    dylib:210      name:            24211      timestamp:       2212      current_version: 84698117213      compatibility_version: 65536214    Content:         '/usr/lib/libSystem.B.dylib'215    ZeroPadBytes:    6216  - cmd:             LC_FUNCTION_STARTS217    cmdsize:         16218    dataoff:         16432219    datasize:        8220  - cmd:             LC_DATA_IN_CODE221    cmdsize:         16222    dataoff:         16440223    datasize:        0224  - cmd:             LC_CODE_SIGNATURE225    cmdsize:         16226    dataoff:         16544227    datasize:        280228LinkEditData:229  ExportTrie:230    TerminalSize:    0231    NodeOffset:      0232    Name:            ''233    Flags:           0x0234    Address:         0x0235    Other:           0x0236    ImportName:      ''237    Children:238      - TerminalSize:    0239        NodeOffset:      5240        Name:            _241        Flags:           0x0242        Address:         0x0243        Other:           0x0244        ImportName:      ''245        Children:246          - TerminalSize:    2247            NodeOffset:      33248            Name:            _mh_execute_header249            Flags:           0x0250            Address:         0x0251            Other:           0x0252            ImportName:      ''253          - TerminalSize:    3254            NodeOffset:      37255            Name:            main256            Flags:           0x0257            Address:         0x3FA0258            Other:           0x0259            ImportName:      ''260  NameList:261    - n_strx:          2262      n_type:          0xF263      n_sect:          1264      n_desc:          16265      n_value:         4294967296266    - n_strx:          22267      n_type:          0xF268      n_sect:          1269      n_desc:          0270      n_value:         4294983584271    - n_strx:          28272      n_type:          0x1273      n_sect:          0274      n_desc:          256275      n_value:         0276  StringTable:277    - ' '278    - __mh_execute_header279    - _main280    - dyld_stub_binder281    - ''282    - ''283    - ''284...285