| ; RUN: rm -rf %t |
| ; RUN: split-file %s %t |
| ; RUN: cp -r %S/Inputs/Foundation/Foundation.framework %t/System/Library/Frameworks/ |
| ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json |
| ; RUN: yaml2obj %t/Mismatch.yaml -o %t/System/Library/Frameworks/Mismatch.framework/Mismatch |
| |
| ; RUN: not clang-installapi --target=arm64-apple-macos13 \ |
| ; RUN: --target=x86_64-apple-macos13 -darwin-target-variant x86_64-apple-ios16.0-macabi \ |
| ; RUN: -darwin-target-variant arm64-apple-ios16.0-macabi \ |
| ; RUN: -F %t/System/Library/Frameworks -isysroot %S/Inputs/MacOSX13.0.sdk \ |
| ; RUN: -install_name /System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch \ |
| ; RUN: -current_version 1 -compatibility_version 1 %t/inputs.json -o %t/Mismatch.tbd \ |
| ; RUN: --verify-against=%t/System/Library/Frameworks/Mismatch.framework/Mismatch \ |
| ; RUN: --verify-mode=Pedantic 2>&1 | FileCheck %s |
| |
| ; CHECK: warning: violations found for x86_64-apple-macos13 |
| ; CHECK: error: declaration has external linkage, but dynamic library doesn't have symbol 'foo_arch_x86' |
| ; CHECK-NEXT: extern int foo_arch_x86(); |
| |
| ; CHECK: error: symbol exported in dynamic library, but marked hidden in declaration 'baz' |
| ; CHECK-NEXT: int baz() __attribute__((visibility("hidden"))); |
| |
| ; CHECK-NOT: inlinedFunc |
| |
| ; CHECK: error: declaration has external linkage, but symbol has internal linkage in dynamic library 'bar' |
| ; CHECK-NEXT: extern int bar(); |
| |
| ; CHECK: error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFoo' |
| ; CHECK-NEXT: @interface NSFoo |
| |
| ; CHECK: error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFoo.nsint' |
| ; CHECK-NEXT: int nsint; |
| |
| ; CHECK: error: declaration has external linkage, but dynamic library doesn't have symbol 'NSFooExcept' |
| ; CHECK-NEXT: @interface NSFooExcept |
| |
| ; CHECK: warning: violations found for arm64-apple-macos13 |
| ; CHECK: error: declaration has external linkage, but dynamic library doesn't have symbol 'foo_arch_arm' |
| ; CHECK-NEXT: extern int foo_arch_arm(); |
| |
| ; CHECK: warning: violations found for x86_64 |
| ; CHECK-NEXT: error: no declaration found for exported symbol '_fooBar' in dynamic library |
| |
| ; CHECK: warning: violations found for arm64 |
| ; CHECK-NEXT: error: no declaration found for exported symbol '_fooBar' in dynamic library |
| ; CHECK: warning: violations found for arm64-apple-macos13 |
| ; CHECK-NEXT: error: declaration 'unavailableSymbol' is marked unavailable, but symbol is exported in dynamic library |
| ; CHECK-NEXT: extern int unavailableSymbol |
| ; CHECK: warning: violations found for arm64-apple-ios16.0-macabi |
| ; CHECK-NEXT: error: declaration 'unavailableSymbol' is marked unavailable, but symbol is exported in dynamic library |
| ; CHECK-NEXT: extern int unavailableSymbol |
| |
| |
| ;--- System/Library/Frameworks/Mismatch.framework/Headers/Mismatch.h |
| #if defined(__x86_64__) |
| extern int foo_arch_x86(); |
| #else |
| extern int foo_arch_arm(); |
| #endif |
| |
| int foo(); |
| int baz() __attribute__((visibility("hidden"))); |
| |
| __attribute__((visibility("hidden"))) inline int inlinedFunc() { return 1; } |
| |
| ;--- System/Library/Frameworks/Mismatch.framework/PrivateHeaders/Mismatch_Private.h |
| #include <Foundation/Foundation.h> |
| extern int bar(); |
| |
| @interface NSFoo : NSObject { |
| int nsint; |
| } |
| @end |
| |
| __attribute__((objc_exception)) |
| @interface NSFooExcept : NSObject |
| @end |
| |
| extern int unavailableSymbol __attribute__(( |
| availability(macosx, unavailable), availability(macCatalyst, unavailable))); |
| |
| |
| // Generated from source: |
| // *** |
| // int inlinedFunc() { return 1; } |
| // int foo() { return 1; } |
| // __attribute__((visibility("hidden"))) int bar() { return 1; } |
| // int baz() { return 1; } |
| // int fooBar = 1; |
| // int unavailableSymbol = 1; |
| // *** |
| // xcrun -sdk macosx clang -target x86_64-apple-macos13 --target-variant=x86_64-apple-ios16-macabi -dynamiclib |
| // xcrun -sdk macosx clang -target arm64-apple-macos13 --target-variant=arm64-apple-ios16-macabi -dynamiclib |
| // then lipo'ed together. |
| |
| ;--- Mismatch.yaml |
| --- !fat-mach-o |
| FatHeader: |
| magic: 0xCAFEBABE |
| nfat_arch: 2 |
| FatArchs: |
| - cputype: 0x1000007 |
| cpusubtype: 0x3 |
| offset: 0x1000 |
| size: 20768 |
| align: 12 |
| - cputype: 0x100000C |
| cpusubtype: 0x0 |
| offset: 0x8000 |
| size: 49984 |
| align: 14 |
| Slices: |
| - !mach-o |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x1000007 |
| cpusubtype: 0x3 |
| filetype: 0x6 |
| ncmds: 15 |
| sizeofcmds: 1584 |
| flags: 0x100085 |
| reserved: 0x0 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 312 |
| segname: __TEXT |
| vmaddr: 0 |
| vmsize: 12288 |
| fileoff: 0 |
| filesize: 12288 |
| maxprot: 5 |
| initprot: 5 |
| nsects: 3 |
| flags: 0 |
| Sections: |
| - sectname: __text |
| segname: __TEXT |
| addr: 0x1090 |
| size: 59 |
| offset: 0x1090 |
| align: 4 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x80000400 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 554889E5B8010000005DC30F1F440000554889E5B8010000005DC30F1F440000554889E5B8010000005DC30F1F440000554889E5B8010000005DC3 |
| - sectname: __unwind_info |
| segname: __TEXT |
| addr: 0x10CC |
| size: 4152 |
| offset: 0x10CC |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 010000001C000000010000002000000000000000200000000200000000000001901000003800000038000000CB1000000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
| - sectname: __eh_frame |
| segname: __TEXT |
| addr: 0x2108 |
| size: 24 |
| offset: 0x2108 |
| align: 3 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x6000000B |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 1400000000000000017A520001781001100C070890010000 |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 152 |
| segname: __DATA_CONST |
| vmaddr: 12288 |
| vmsize: 4096 |
| fileoff: 12288 |
| filesize: 4096 |
| maxprot: 3 |
| initprot: 3 |
| nsects: 1 |
| flags: 16 |
| Sections: |
| - sectname: __objc_imageinfo |
| segname: __DATA_CONST |
| addr: 0x3000 |
| size: 8 |
| offset: 0x3000 |
| align: 0 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '0000000040000000' |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 152 |
| segname: __DATA |
| vmaddr: 16384 |
| vmsize: 4096 |
| fileoff: 16384 |
| filesize: 4096 |
| maxprot: 3 |
| initprot: 3 |
| nsects: 1 |
| flags: 0 |
| Sections: |
| - sectname: __data |
| segname: __DATA |
| addr: 0x4000 |
| size: 8 |
| offset: 0x4000 |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '0100000001000000' |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 72 |
| segname: __LINKEDIT |
| vmaddr: 20480 |
| vmsize: 288 |
| fileoff: 20480 |
| filesize: 288 |
| maxprot: 1 |
| initprot: 1 |
| nsects: 0 |
| flags: 0 |
| - cmd: LC_DYLD_INFO_ONLY |
| cmdsize: 48 |
| rebase_off: 0 |
| rebase_size: 0 |
| bind_off: 0 |
| bind_size: 0 |
| weak_bind_off: 0 |
| weak_bind_size: 0 |
| lazy_bind_off: 0 |
| lazy_bind_size: 0 |
| export_off: 20480 |
| export_size: 88 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 20576 |
| nsyms: 7 |
| stroff: 20688 |
| strsize: 80 |
| - cmd: LC_DYSYMTAB |
| cmdsize: 80 |
| ilocalsym: 0 |
| nlocalsym: 1 |
| iextdefsym: 1 |
| nextdefsym: 5 |
| iundefsym: 6 |
| nundefsym: 1 |
| tocoff: 0 |
| ntoc: 0 |
| modtaboff: 0 |
| nmodtab: 0 |
| extrefsymoff: 0 |
| nextrefsyms: 0 |
| indirectsymoff: 0 |
| nindirectsyms: 0 |
| extreloff: 0 |
| nextrel: 0 |
| locreloff: 0 |
| nlocrel: 0 |
| - cmd: LC_ID_DYLIB |
| cmdsize: 96 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 65536 |
| compatibility_version: 65536 |
| Content: '/System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch' |
| ZeroPadBytes: 7 |
| - cmd: LC_UUID |
| cmdsize: 24 |
| uuid: 4C4C4421-5555-3144-A16C-E4AA63D66775 |
| - cmd: LC_BUILD_VERSION |
| cmdsize: 32 |
| platform: 1 |
| minos: 851968 |
| sdk: 983040 |
| ntools: 1 |
| Tools: |
| - tool: 4 |
| version: 1245184 |
| - cmd: LC_BUILD_VERSION |
| cmdsize: 32 |
| platform: 6 |
| minos: 1048576 |
| sdk: 1048576 |
| ntools: 1 |
| Tools: |
| - tool: 4 |
| version: 1245184 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 56 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 14942208 |
| compatibility_version: 65536 |
| Content: '/usr/lib/libobjc.A.dylib' |
| ZeroPadBytes: 8 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 56 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 88539136 |
| compatibility_version: 65536 |
| Content: '/usr/lib/libSystem.B.dylib' |
| ZeroPadBytes: 6 |
| - cmd: LC_FUNCTION_STARTS |
| cmdsize: 16 |
| dataoff: 20568 |
| datasize: 8 |
| - cmd: LC_DATA_IN_CODE |
| cmdsize: 16 |
| dataoff: 20576 |
| datasize: 0 |
| LinkEditData: |
| ExportTrie: |
| TerminalSize: 0 |
| NodeOffset: 0 |
| Name: '' |
| Flags: 0x0 |
| Address: 0x0 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 0 |
| NodeOffset: 5 |
| Name: _ |
| Flags: 0x0 |
| Address: 0x0 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 3 |
| NodeOffset: 49 |
| Name: inlinedFunc |
| Flags: 0x0 |
| Address: 0x1090 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 3 |
| NodeOffset: 54 |
| Name: foo |
| Flags: 0x0 |
| Address: 0x10A0 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 4 |
| NodeOffset: 64 |
| Name: Bar |
| Flags: 0x0 |
| Address: 0x4000 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 4 |
| NodeOffset: 70 |
| Name: unavailableSymbol |
| Flags: 0x0 |
| Address: 0x4004 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 3 |
| NodeOffset: 76 |
| Name: baz |
| Flags: 0x0 |
| Address: 0x10C0 |
| Other: 0x0 |
| ImportName: '' |
| NameList: |
| - n_strx: 20 |
| n_type: 0x1E |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4272 |
| - n_strx: 2 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4240 |
| - n_strx: 15 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4256 |
| - n_strx: 25 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4288 |
| - n_strx: 30 |
| n_type: 0xF |
| n_sect: 5 |
| n_desc: 0 |
| n_value: 16384 |
| - n_strx: 38 |
| n_type: 0xF |
| n_sect: 5 |
| n_desc: 0 |
| n_value: 16388 |
| - n_strx: 57 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 512 |
| n_value: 0 |
| StringTable: |
| - ' ' |
| - _inlinedFunc |
| - _foo |
| - _bar |
| - _baz |
| - _fooBar |
| - _unavailableSymbol |
| - dyld_stub_binder |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| FunctionStarts: [ 0x1090, 0x10A0, 0x10B0, 0x10C0 ] |
| - !mach-o |
| FileHeader: |
| magic: 0xFEEDFACF |
| cputype: 0x100000C |
| cpusubtype: 0x0 |
| filetype: 0x6 |
| ncmds: 16 |
| sizeofcmds: 1104 |
| flags: 0x100085 |
| reserved: 0x0 |
| LoadCommands: |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 232 |
| segname: __TEXT |
| vmaddr: 0 |
| vmsize: 16384 |
| fileoff: 0 |
| filesize: 16384 |
| maxprot: 5 |
| initprot: 5 |
| nsects: 2 |
| flags: 0 |
| Sections: |
| - sectname: __text |
| segname: __TEXT |
| addr: 0x1050 |
| size: 32 |
| offset: 0x1050 |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x80000400 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 20008052C0035FD620008052C0035FD620008052C0035FD620008052C0035FD6 |
| - sectname: __unwind_info |
| segname: __TEXT |
| addr: 0x1070 |
| size: 4152 |
| offset: 0x1070 |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: 010000001C000000010000002000000000000000200000000200000000000002501000003800000038000000701000000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 152 |
| segname: __DATA_CONST |
| vmaddr: 16384 |
| vmsize: 16384 |
| fileoff: 16384 |
| filesize: 16384 |
| maxprot: 3 |
| initprot: 3 |
| nsects: 1 |
| flags: 16 |
| Sections: |
| - sectname: __objc_imageinfo |
| segname: __DATA_CONST |
| addr: 0x4000 |
| size: 8 |
| offset: 0x4000 |
| align: 0 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '0000000040000000' |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 152 |
| segname: __DATA |
| vmaddr: 32768 |
| vmsize: 16384 |
| fileoff: 32768 |
| filesize: 16384 |
| maxprot: 3 |
| initprot: 3 |
| nsects: 1 |
| flags: 0 |
| Sections: |
| - sectname: __data |
| segname: __DATA |
| addr: 0x8000 |
| size: 8 |
| offset: 0x8000 |
| align: 2 |
| reloff: 0x0 |
| nreloc: 0 |
| flags: 0x0 |
| reserved1: 0x0 |
| reserved2: 0x0 |
| reserved3: 0x0 |
| content: '0100000001000000' |
| - cmd: LC_SEGMENT_64 |
| cmdsize: 72 |
| segname: __LINKEDIT |
| vmaddr: 49152 |
| vmsize: 832 |
| fileoff: 49152 |
| filesize: 832 |
| maxprot: 1 |
| initprot: 1 |
| nsects: 0 |
| flags: 0 |
| - cmd: LC_DYLD_INFO_ONLY |
| cmdsize: 48 |
| rebase_off: 0 |
| rebase_size: 0 |
| bind_off: 0 |
| bind_size: 0 |
| weak_bind_off: 0 |
| weak_bind_size: 0 |
| lazy_bind_off: 0 |
| lazy_bind_size: 0 |
| export_off: 49152 |
| export_size: 88 |
| - cmd: LC_SYMTAB |
| cmdsize: 24 |
| symoff: 49248 |
| nsyms: 7 |
| stroff: 49360 |
| strsize: 80 |
| - cmd: LC_DYSYMTAB |
| cmdsize: 80 |
| ilocalsym: 0 |
| nlocalsym: 1 |
| iextdefsym: 1 |
| nextdefsym: 5 |
| iundefsym: 6 |
| nundefsym: 1 |
| tocoff: 0 |
| ntoc: 0 |
| modtaboff: 0 |
| nmodtab: 0 |
| extrefsymoff: 0 |
| nextrefsyms: 0 |
| indirectsymoff: 0 |
| nindirectsyms: 0 |
| extreloff: 0 |
| nextrel: 0 |
| locreloff: 0 |
| nlocrel: 0 |
| - cmd: LC_ID_DYLIB |
| cmdsize: 96 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 65536 |
| compatibility_version: 65536 |
| Content: '/System/Library/Frameworks/Mismatch.framework/Versions/A/Mismatch' |
| ZeroPadBytes: 7 |
| - cmd: LC_UUID |
| cmdsize: 24 |
| uuid: 4C4C4428-5555-3144-A12B-7130A3C946D2 |
| - cmd: LC_BUILD_VERSION |
| cmdsize: 32 |
| platform: 1 |
| minos: 851968 |
| sdk: 983040 |
| ntools: 1 |
| Tools: |
| - tool: 4 |
| version: 1245184 |
| - cmd: LC_BUILD_VERSION |
| cmdsize: 32 |
| platform: 6 |
| minos: 1048576 |
| sdk: 1048576 |
| ntools: 1 |
| Tools: |
| - tool: 4 |
| version: 1245184 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 56 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 14942208 |
| compatibility_version: 65536 |
| Content: '/usr/lib/libobjc.A.dylib' |
| ZeroPadBytes: 8 |
| - cmd: LC_LOAD_DYLIB |
| cmdsize: 56 |
| dylib: |
| name: 24 |
| timestamp: 0 |
| current_version: 88539136 |
| compatibility_version: 65536 |
| Content: '/usr/lib/libSystem.B.dylib' |
| ZeroPadBytes: 6 |
| - cmd: LC_FUNCTION_STARTS |
| cmdsize: 16 |
| dataoff: 49240 |
| datasize: 8 |
| - cmd: LC_DATA_IN_CODE |
| cmdsize: 16 |
| dataoff: 49248 |
| datasize: 0 |
| - cmd: LC_CODE_SIGNATURE |
| cmdsize: 16 |
| dataoff: 49440 |
| datasize: 544 |
| LinkEditData: |
| ExportTrie: |
| TerminalSize: 0 |
| NodeOffset: 0 |
| Name: '' |
| Flags: 0x0 |
| Address: 0x0 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 0 |
| NodeOffset: 5 |
| Name: _ |
| Flags: 0x0 |
| Address: 0x0 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 3 |
| NodeOffset: 49 |
| Name: inlinedFunc |
| Flags: 0x0 |
| Address: 0x1050 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 3 |
| NodeOffset: 54 |
| Name: foo |
| Flags: 0x0 |
| Address: 0x1058 |
| Other: 0x0 |
| ImportName: '' |
| Children: |
| - TerminalSize: 4 |
| NodeOffset: 64 |
| Name: Bar |
| Flags: 0x0 |
| Address: 0x8000 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 4 |
| NodeOffset: 70 |
| Name: unavailableSymbol |
| Flags: 0x0 |
| Address: 0x8004 |
| Other: 0x0 |
| ImportName: '' |
| - TerminalSize: 3 |
| NodeOffset: 76 |
| Name: baz |
| Flags: 0x0 |
| Address: 0x1068 |
| Other: 0x0 |
| ImportName: '' |
| NameList: |
| - n_strx: 20 |
| n_type: 0x1E |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4192 |
| - n_strx: 2 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4176 |
| - n_strx: 15 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4184 |
| - n_strx: 25 |
| n_type: 0xF |
| n_sect: 1 |
| n_desc: 0 |
| n_value: 4200 |
| - n_strx: 30 |
| n_type: 0xF |
| n_sect: 4 |
| n_desc: 0 |
| n_value: 32768 |
| - n_strx: 38 |
| n_type: 0xF |
| n_sect: 4 |
| n_desc: 0 |
| n_value: 32772 |
| - n_strx: 57 |
| n_type: 0x1 |
| n_sect: 0 |
| n_desc: 512 |
| n_value: 0 |
| StringTable: |
| - ' ' |
| - _inlinedFunc |
| - _foo |
| - _bar |
| - _baz |
| - _fooBar |
| - _unavailableSymbol |
| - dyld_stub_binder |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| - '' |
| FunctionStarts: [ 0x1050, 0x1058, 0x1060, 0x1068 ] |
| ... |
| |
| ;--- inputs.json.in |
| { |
| "headers": [ |
| { |
| "path" : "DSTROOT/System/Library/Frameworks/Mismatch.framework/PrivateHeaders/Mismatch_Private.h", |
| "type" : "private" |
| }, |
| { |
| "path" : "DSTROOT/System/Library/Frameworks/Mismatch.framework/Headers/Mismatch.h", |
| "type" : "public" |
| } |
| ], |
| "version": "3" |
| } |