reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
# 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