; RUN: rm -rf %t ; RUN: split-file %s %t ; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json ; RUN: yaml2obj %t/MagicSymbols.yaml -o %t/MagicSymbols ; RUN: not clang-installapi -target x86_64-apple-macosx13 \ ; RUN: -install_name \ ; RUN: /System/Library/Frameworks/SpecialLinkerSymbols.framework/Versions/A/SpecialLinkerSymbols \ ; RUN: -current_version 1 -compatibility_version 1 \ ; RUN: %t/inputs.json -o %t/output.tbd \ ; RUN: --verify-mode=ErrorsOnly \ ; RUN: --verify-against=%t/MagicSymbols 2>&1 | FileCheck %s CHECK: warning: violations found for x86_64 CHECK: error: no declaration found for exported symbol '$ld$add$os10.4$_symbol2' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$add$os10.5$_symbol2' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$hide$os10.6$_symbol1' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$hide$os10.7$_symbol1' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$weak$os10.5$_symbol3' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$weak$os10.4$_symbol3' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$install_name$os10.4$/System/Library/Frameworks/A.framework/Versions/A/A' in dynamic library CHECK: error: no declaration found for exported symbol '$ld$install_name$os10.5$/System/Library/Frameworks/B.framework/Versions/A/B' in dynamic library ;--- MagicSymbols.h #ifndef SPECIAL_LINKER_SYMBOLS_H #define SPECIAL_LINKER_SYMBOLS_H extern const int SpecialLinkerSymbolsVersion; extern int symbol1; extern int symbol3; #endif // SPECIAL_LINKER_SYMBOLS_H ;--- inputs.json.in { "headers": [ { "path" : "DSTROOT/MagicSymbols.h", "type" : "project" } ], "version": "3" } ;--- MagicSymbols.yaml --- !mach-o FileHeader: magic: 0xFEEDFACF cputype: 0x1000007 cpusubtype: 0x3 filetype: 0x6 ncmds: 12 sizeofcmds: 952 flags: 0x100085 reserved: 0x0 LoadCommands: - cmd: LC_SEGMENT_64 cmdsize: 232 segname: __TEXT vmaddr: 0 vmsize: 4096 fileoff: 0 filesize: 4096 maxprot: 5 initprot: 5 nsects: 2 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0xBD8 size: 0 offset: 0xBD8 align: 0 reloff: 0x0 nreloc: 0 flags: 0x80000000 reserved1: 0x0 reserved2: 0x0 reserved3: 0x0 content: '' - sectname: __const segname: __TEXT addr: 0xBD8 size: 4 offset: 0xBD8 align: 2 reloff: 0x0 nreloc: 0 flags: 0x0 reserved1: 0x0 reserved2: 0x0 reserved3: 0x0 content: '07000000' - cmd: LC_SEGMENT_64 cmdsize: 232 segname: __DATA vmaddr: 4096 vmsize: 4096 fileoff: 4096 filesize: 4096 maxprot: 3 initprot: 3 nsects: 2 flags: 0 Sections: - sectname: __data segname: __DATA addr: 0x1000 size: 8 offset: 0x1000 align: 2 reloff: 0x0 nreloc: 0 flags: 0x0 reserved1: 0x0 reserved2: 0x0 reserved3: 0x0 content: 4D00000009030000 - sectname: __common segname: __DATA addr: 0x1008 size: 8 offset: 0x0 align: 0 reloff: 0x0 nreloc: 0 flags: 0x1 reserved1: 0x0 reserved2: 0x0 reserved3: 0x0 - cmd: LC_SEGMENT_64 cmdsize: 72 segname: __LINKEDIT vmaddr: 8192 vmsize: 944 fileoff: 8192 filesize: 944 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: 8192 export_size: 376 - cmd: LC_SYMTAB cmdsize: 24 symoff: 8576 nsyms: 12 stroff: 8768 strsize: 368 - cmd: LC_DYSYMTAB cmdsize: 80 ilocalsym: 0 nlocalsym: 0 iextdefsym: 0 nextdefsym: 11 iundefsym: 11 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: 120 dylib: name: 24 timestamp: 0 current_version: 65536 compatibility_version: 65536 Content: '/System/Library/Frameworks/SpecialLinkerSymbols.framework/Versions/A/SpecialLinkerSymbols' ZeroPadBytes: 7 - cmd: LC_UUID cmdsize: 24 uuid: 4C4C4478-5555-3144-A106-356C3C9DACA3 - cmd: LC_BUILD_VERSION cmdsize: 32 platform: 1 minos: 851968 sdk: 983040 ntools: 1 Tools: - tool: 4 version: 1245184 - 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: 8568 datasize: 8 - cmd: LC_DATA_IN_CODE cmdsize: 16 dataoff: 8576 datasize: 0 LinkEditData: ExportTrie: TerminalSize: 0 NodeOffset: 0 Name: '' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 0 NodeOffset: 11 Name: _ Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 50 Name: SpecialLinkerSymbolsVersion Flags: 0x0 Address: 0xBD8 Other: 0x0 ImportName: '' - TerminalSize: 0 NodeOffset: 55 Name: symbol Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 63 Name: '3' Flags: 0x0 Address: 0x1004 Other: 0x0 ImportName: '' - TerminalSize: 3 NodeOffset: 68 Name: '1' Flags: 0x0 Address: 0x1000 Other: 0x0 ImportName: '' - TerminalSize: 0 NodeOffset: 73 Name: '$ld$' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 0 NodeOffset: 134 Name: 'add$os10.' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 162 Name: '4$_symbol2' Flags: 0x0 Address: 0x1008 Other: 0x0 ImportName: '' - TerminalSize: 3 NodeOffset: 167 Name: '5$_symbol2' Flags: 0x0 Address: 0x1009 Other: 0x0 ImportName: '' - TerminalSize: 0 NodeOffset: 172 Name: 'hide$os10.' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 200 Name: '6$_symbol1' Flags: 0x0 Address: 0x100A Other: 0x0 ImportName: '' - TerminalSize: 3 NodeOffset: 205 Name: '7$_symbol1' Flags: 0x0 Address: 0x100B Other: 0x0 ImportName: '' - TerminalSize: 0 NodeOffset: 210 Name: 'weak$os10.' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 238 Name: '5$_symbol3' Flags: 0x0 Address: 0x100F Other: 0x0 ImportName: '' - TerminalSize: 3 NodeOffset: 243 Name: '4$_symbol3' Flags: 0x0 Address: 0x100E Other: 0x0 ImportName: '' - TerminalSize: 0 NodeOffset: 248 Name: 'install_name$os10.' Flags: 0x0 Address: 0x0 Other: 0x0 ImportName: '' Children: - TerminalSize: 3 NodeOffset: 362 Name: '4$/System/Library/Frameworks/A.framework/Versions/A/A' Flags: 0x0 Address: 0x100C Other: 0x0 ImportName: '' - TerminalSize: 3 NodeOffset: 367 Name: '5$/System/Library/Frameworks/B.framework/Versions/A/B' Flags: 0x0 Address: 0x100D Other: 0x0 ImportName: '' NameList: - n_strx: 2 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4104 - n_strx: 26 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4105 - n_strx: 50 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4106 - n_strx: 75 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4107 - n_strx: 100 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4108 - n_strx: 176 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4109 - n_strx: 252 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4110 - n_strx: 277 n_type: 0xF n_sect: 4 n_desc: 0 n_value: 4111 - n_strx: 302 n_type: 0xF n_sect: 2 n_desc: 0 n_value: 3032 - n_strx: 331 n_type: 0xF n_sect: 3 n_desc: 0 n_value: 4096 - n_strx: 340 n_type: 0xF n_sect: 3 n_desc: 0 n_value: 4100 - n_strx: 349 n_type: 0x1 n_sect: 0 n_desc: 256 n_value: 0 StringTable: - ' ' - '$ld$add$os10.4$_symbol2' - '$ld$add$os10.5$_symbol2' - '$ld$hide$os10.6$_symbol1' - '$ld$hide$os10.7$_symbol1' - '$ld$install_name$os10.4$/System/Library/Frameworks/A.framework/Versions/A/A' - '$ld$install_name$os10.5$/System/Library/Frameworks/B.framework/Versions/A/B' - '$ld$weak$os10.4$_symbol3' - '$ld$weak$os10.5$_symbol3' - _SpecialLinkerSymbolsVersion - _symbol1 - _symbol3 - dyld_stub_binder - '' - '' ...