brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.2 KiB · 052c66f Raw
343 lines · yaml
1## This file contains test cases for generating sections in Mach-O object files.2 3## a) Test that yaml2obj emits sections and obj2yaml converts them back.4 5# RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s6 7--- !mach-o8FileHeader:      9  magic:           0xFEEDFACF10  cputype:         0x0100000711  cpusubtype:      0x8000000312  filetype:        0x0000000213  ncmds:           1614  sizeofcmds:      140815  flags:           0x0021808516  reserved:        0x0000000017LoadCommands:    18  - cmd:             LC_SEGMENT_6419    cmdsize:         7220    segname:         __PAGEZERO21    vmaddr:          022    vmsize:          429496729623    fileoff:         024    filesize:        025    maxprot:         026    initprot:        027    nsects:          028    flags:           029  - cmd:             LC_SEGMENT_6430    cmdsize:         55231    segname:         __TEXT32    vmaddr:          429496729633    vmsize:          819234    fileoff:         035    filesize:        819236    maxprot:         737    initprot:        538    nsects:          639    flags:           040    Sections:        41      - sectname:        __text42        segname:         __TEXT43        addr:            0x000000010000116044        size:            309945        offset:          0x0000116046        align:           447        reloff:          0x0000000048        nreloc:          049        flags:           0x8000040050        reserved1:       0x0000000051        reserved2:       0x0000000052        reserved3:       0x0000000053      - sectname:        __stubs54        segname:         __TEXT55        addr:            0x0000000100001D7C56        size:            9057        offset:          0x00001D7C58        align:           159        reloff:          0x0000000060        nreloc:          061        flags:           0x8000040862        reserved1:       0x0000000063        reserved2:       0x0000000664        reserved3:       0x0000000065      - sectname:        __stub_helper66        segname:         __TEXT67        addr:            0x0000000100001DD868        size:            16669        offset:          0x00001DD870        align:           271        reloff:          0x0000000072        nreloc:          073        flags:           0x8000040074        reserved1:       0x0000000075        reserved2:       0x0000000076        reserved3:       0x0000000077      - sectname:        __gcc_except_tab78        segname:         __TEXT79        addr:            0x0000000100001E8080        size:            24081        offset:          0x00001E8082        align:           283        reloff:          0x0000000084        nreloc:          085        flags:           0x0000000086        reserved1:       0x0000000087        reserved2:       0x0000000088        reserved3:       0x0000000089      - sectname:        __cstring90        segname:         __TEXT91        addr:            0x0000000100001F7092        size:            1593        offset:          0x00001F7094        align:           095        reloff:          0x0000000096        nreloc:          097        flags:           0x0000000298        reserved1:       0x0000000099        reserved2:       0x00000000100        reserved3:       0x00000000101      - sectname:        __unwind_info102        segname:         __TEXT103        addr:            0x0000000100001F80104        size:            120105        offset:          0x00001F80106        align:           2107        reloff:          0x00000000108        nreloc:          0109        flags:           0x00000000110        reserved1:       0x00000000111        reserved2:       0x00000000112        reserved3:       0x00000000113  - cmd:             LC_SEGMENT_64114    cmdsize:         312115    segname:         __DATA116    vmaddr:          4294975488117    vmsize:          4096118    fileoff:         8192119    filesize:        4096120    maxprot:         7121    initprot:        3122    nsects:          3123    flags:           0124    Sections:        125      - sectname:        __got126        segname:         __DATA127        addr:            0x0000000100002000128        size:            24129        offset:          0x00002000130        align:           3131        reloff:          0x00000000132        nreloc:          0133        flags:           0x00000006134        reserved1:       0x0000000F135        reserved2:       0x00000000136        reserved3:       0x00000000137      - sectname:        __nl_symbol_ptr138        segname:         __DATA139        addr:            0x0000000100002018140        size:            16141        offset:          0x00002018142        align:           3143        reloff:          0x00000000144        nreloc:          0145        flags:           0x00000006146        reserved1:       0x00000012147        reserved2:       0x00000000148        reserved3:       0x00000000149      - sectname:        __la_symbol_ptr150        segname:         __DATA151        addr:            0x0000000100002028152        size:            120153        offset:          0x00002028154        align:           3155        reloff:          0x00000000156        nreloc:          0157        flags:           0x00000007158        reserved1:       0x00000014159        reserved2:       0x00000000160        reserved3:       0x00000000161  - cmd:             LC_SEGMENT_64162    cmdsize:         72163    segname:         __LINKEDIT164    vmaddr:          4294979584165    vmsize:          4096166    fileoff:         12288167    filesize:        2508168    maxprot:         7169    initprot:        1170    nsects:          0171    flags:           0172  - cmd:             LC_DYLD_INFO_ONLY173    cmdsize:         48174    rebase_off:      12288175    rebase_size:     8176    bind_off:        12296177    bind_size:       96178    weak_bind_off:   0179    weak_bind_size:  0180    lazy_bind_off:   12392181    lazy_bind_size:  624182    export_off:      13016183    export_size:     48184  - cmd:             LC_SYMTAB185    cmdsize:         24186    symoff:          13080187    nsyms:           30188    stroff:          13700189    strsize:         1096190  - cmd:             LC_DYSYMTAB191    cmdsize:         80192    ilocalsym:       0193    nlocalsym:       9194    iextdefsym:      9195    nextdefsym:      2196    iundefsym:       11197    nundefsym:       19198    tocoff:          0199    ntoc:            0200    modtaboff:       0201    nmodtab:         0202    extrefsymoff:    0203    nextrefsyms:     0204    indirectsymoff:  13560205    nindirectsyms:   35206    extreloff:       0207    nextrel:         0208    locreloff:       0209    nlocrel:         0210  - cmd:             LC_LOAD_DYLINKER211    cmdsize:         32212    name:            12213  - cmd:             LC_UUID214    cmdsize:         24215    uuid:            461A1B28-822F-3F38-B670-645419E636F5216  - cmd:             LC_VERSION_MIN_MACOSX217    cmdsize:         16218    version:         658176219    sdk:             658176220  - cmd:             LC_SOURCE_VERSION221    cmdsize:         16222    version:         0223  - cmd:             LC_MAIN224    cmdsize:         24225    entryoff:        4448226    stacksize:       0227  - cmd:             LC_LOAD_DYLIB228    cmdsize:         48229    dylib:           230      name:            24231      timestamp:       2232      current_version: 7864576233      compatibility_version: 65536234  - cmd:             LC_LOAD_DYLIB235    cmdsize:         56236    dylib:           237      name:            24238      timestamp:       2239      current_version: 80349697240      compatibility_version: 65536241  - cmd:             LC_FUNCTION_STARTS242    cmdsize:         16243    dataoff:         13064244    datasize:        16245  - cmd:             LC_DATA_IN_CODE246    cmdsize:         16247    dataoff:         13080248    datasize:        0249...250 251 252#CHECK:   - cmd:             LC_SEGMENT_64253#CHECK:     segname:         __PAGEZERO254#CHECK:   - cmd:             LC_SEGMENT_64255#CHECK:     segname:         __TEXT256#CHECK:     Sections:        257#CHECK:       - sectname:        __text258#CHECK:         segname:         __TEXT259#CHECK:         addr:            0x100001160260#CHECK:         size:            3099261#CHECK:         offset:          0x1160262#CHECK:         align:           4263#CHECK:         reloff:          0x0264#CHECK:         nreloc:          0265#CHECK:         flags:           0x80000400266#CHECK:         reserved1:       0x0267#CHECK:         reserved2:       0x0268#CHECK:         reserved3:       0x0269#CHECK:       - sectname:        __stubs270#CHECK:         segname:         __TEXT271#CHECK:       - sectname:        __stub_helper272#CHECK:         segname:         __TEXT273#CHECK:       - sectname:        __gcc_except_tab274#CHECK:         segname:         __TEXT275#CHECK:       - sectname:        __cstring276#CHECK:         segname:         __TEXT277#CHECK:       - sectname:        __unwind_info278#CHECK:         segname:         __TEXT279#CHECK:   - cmd:             LC_SEGMENT_64280#CHECK:     segname:         __DATA281#CHECK:     Sections:        282#CHECK:       - sectname:        __got283#CHECK:         segname:         __DATA284#CHECK:       - sectname:        __nl_symbol_ptr285#CHECK:         segname:         __DATA286#CHECK:       - sectname:        __la_symbol_ptr287#CHECK:         segname:         __DATA288 289## b) Test that yaml2obj emits an error message if we specify an offset that290## makes the current section and the previous one overlap.291 292# RUN: not yaml2obj --docnum=2 %s -o %t2.macho 2>&1 | FileCheck %s --check-prefix=OVERLAP293 294# OVERLAP: yaml2obj: error: wrote too much data somewhere, section offsets in section __sec2 for segment __SEC don't line up: [cursor=0x121], [fileStart=0x0], [sectionOffset=0x1]295 296--- !mach-o297FileHeader:298  magic:      0xFEEDFACF299  cputype:    0x01000007300  cpusubtype: 0x80000003301  filetype:   0x00000002302  ncmds:      1303  sizeofcmds: 1024304  flags:      0x00000000305  reserved:   0x00000000306LoadCommands:307  - cmd:      LC_SEGMENT_64308    cmdsize:  0xff309    segname:  __SEC310    vmaddr:   0311    vmsize:   0312    fileoff:  0313    filesize: 0314    maxprot:  0315    initprot: 0316    nsects:   2317    flags:    0318    Sections:319      - sectname:  __sec1320        segname:   __SEC321        addr:      0x0000000000000000322        size:      2323        offset:    0x00000000324        align:     0325        reloff:    0x00000000326        nreloc:    0327        flags:     0x00000000328        reserved1: 0x00000000329        reserved2: 0x00000000330        reserved3: 0x00000000331      - sectname:  __sec2332        segname:   __SEC333        addr:      0x0000000000000000334        size:      2335        offset:    0x00000001 ## Specify an offset that makes __sec1 and __sec2 overlap.336        align:     1337        reloff:    0x00000000338        nreloc:    0339        flags:     0x00000000340        reserved1: 0x00000000341        reserved2: 0x00000000342        reserved3: 0x00000000343