# Check we accept -install_name correctly: # RUN: ld64.lld -arch x86_64 -install_name libwibble.dylib -dylib \ # RUN: -compatibility_version 2.0 -current_version 5.3 \ # RUN: %p/Inputs/x86_64/libSystem.yaml %s -o %t.dylib # RUN: llvm-objdump --private-headers %t.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE # Check we read LC_ID_DYLIB correctly: # RUN: ld64.lld -arch x86_64 %p/Inputs/use-dylib-install-names.yaml \ # RUN: %p/Inputs/x86_64/libSystem.yaml %t.dylib -dylib -o %t2.dylib # RUN: llvm-objdump --private-headers %t2.dylib | FileCheck %s --check-prefix=CHECK-BINARY-READ # Check we default the install-name to the output file: # RUN: ld64.lld -arch x86_64 -dylib %s -o libwibble.dylib \ # RUN: -compatibility_version 2.0 -current_version 5.3 \ # RUN: %p/Inputs/x86_64/libSystem.yaml # RUN: llvm-objdump --private-headers libwibble.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE # RUN: rm -f libwibble.dylib # Check -single_module does nothing # RUN: ld64.lld -arch x86_64 -dylib %s -install_name libwibble.dylib \ # RUN: -compatibility_version 2.0 -current_version 5.3 \ # RUN: -single_module -o %t2.dylib %p/Inputs/x86_64/libSystem.yaml # RUN: llvm-objdump --private-headers %t2.dylib | FileCheck %s --check-prefix=CHECK-BINARY-WRITE --- !mach-o arch: x86_64 file-type: MH_OBJECT flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ] has-UUID: false OS: unknown sections: - segment: __TEXT section: __text type: S_REGULAR attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ] alignment: 4 address: 0x0000000000000000 content: [ 0xCC, 0xC3, 0x90, 0xC3, 0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0x90, 0xC3, 0x31, 0xC0, 0xC3 ] local-symbols: - name: _myStatic type: N_SECT sect: 1 value: 0x000000000000000B global-symbols: - name: _myGlobal type: N_SECT scope: [ N_EXT ] sect: 1 value: 0x0000000000000001 ... # CHECK-BINARY-WRITE: cmd LC_ID_DYLIB # CHECK-BINARY-WRITE-NEXT: cmdsize 40 # CHECK-BINARY-WRITE-NEXT: name libwibble.dylib (offset 24) # CHECK-BINARY-WRITE-NEXT: time stamp 1 # CHECK-BINARY-WRITE-NEXT: current version 5.3.0 # CHECK-BINARY-WRITE-NEXT: compatibility version 2.0.0 # CHECK-BINARY-READ: cmd LC_LOAD_DYLIB # CHECK-BINARY-READ-NEXT: cmdsize 56 # CHECK-BINARY-READ-NEXT: name /usr/lib/libSystem.B.dylib (offset 24) # CHECK-BINARY-READ-NEXT: time stamp 2 # CHECK-BINARY-READ-NEXT: current version 1.0.0 # CHECK-BINARY-READ-NEXT: compatibility version 1.0.0 # CHECK-BINARY-READ: cmd LC_LOAD_DYLIB # CHECK-BINARY-READ-NEXT: cmdsize 40 # CHECK-BINARY-READ-NEXT: name libwibble.dylib (offset 24) # CHECK-BINARY-READ-NEXT: time stamp 2 # CHECK-BINARY-READ-NEXT: current version 5.3.0 # CHECK-BINARY-READ-NEXT: compatibility version 2.0.0