brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 1cab9e2 Raw
150 lines · plain
1// Test merging of __objc_imageinfo flags and ensure we can run mixed objc and2// swift code in a single jit dylib.3 4// REQUIRES: system-darwin && asserts5 6// RUN: rm -rf %t7// RUN: split-file %s %t8// RUN: pushd %t9// RUN: %clang -c *.S10// RUN: popd11 12// Check individual versions are loadable.13 14// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o \15// RUN:               %t/objc_old.o 2>&1 \16// RUN:               | FileCheck %s -check-prefix=OLD17// OLD: MachOPlatform: Registered __objc_imageinfo for main18// OLD-SAME: flags = 0x000019// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o \20// RUN:               %t/objc_new.o 2>&1 \21// RUN:               | FileCheck %s -check-prefix=NEW22// NEW: MachOPlatform: Registered __objc_imageinfo for main23// NEW-SAME: flags = 0x004024// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o \25// RUN:               %t/swift_4.o 2>&1 \26// RUN:               | FileCheck %s -check-prefix=SWIFT_427// SWIFT_4: MachOPlatform: Registered __objc_imageinfo for main28// SWIFT_4-SAME: flags = 0x064029// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o \30// RUN:               %t/swift_5.o 2>&1 \31// RUN:               | FileCheck %s -check-prefix=SWIFT_532// SWIFT_5: MachOPlatform: Registered __objc_imageinfo for main33// SWIFT_5-SAME: flags = 0x500074034// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o \35// RUN:               %t/swift_59.o 2>&1 \36// RUN:               | FileCheck %s -check-prefix=SWIFT_5937// SWIFT_59: MachOPlatform: Registered __objc_imageinfo for main38// SWIFT_59-SAME: flags = 0x509074039 40// Check error conditions.41 42// RUN: not %llvm_jitlink %t/main.o %t/swift_4.o %t/swift_5.o 2>&1 | FileCheck %s -check-prefix=SWIFT_ABI43// SWIFT_ABI: Swift ABI version in {{.*}} does not match first registered flags44 45// Check merging.46 47// Take the lowest swift version.48// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o %t/swift_59.o \49// RUN:               %t/swift_5.o 2>&1 \50// RUN:               | FileCheck %s -check-prefix=SWIFT_MIX151// SWIFT_MIX1: MachOPlatform: Merging __objc_imageinfo flags for main {{.*}} -> 0x500074052 53// Add swift to objc.54// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o %t/swift_59.o \55// RUN:               %t/objc_new.o 2>&1 \56// RUN:               | FileCheck %s -check-prefix=SWIFT_MIX257// SWIFT_MIX2: MachOPlatform: Merging __objc_imageinfo flags for main {{.*}} -> 0x509074058 59// Add multiple swift to objc.60// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o %t/swift_59.o \61// RUN:               %t/swift_5.o %t/objc_new.o 2>&1 \62// RUN:               | FileCheck %s -check-prefix=SWIFT_MIX363// SWIFT_MIX3: MachOPlatform: Merging __objc_imageinfo flags for main {{.*}} -> 0x500074064 65// Disable categories.66// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o %t/objc_old.o \67// RUN:               %t/objc_new.o 2>&1 \68// RUN:               | FileCheck %s -check-prefix=SWIFT_MIX469// SWIFT_MIX4: MachOPlatform: Merging __objc_imageinfo flags for main {{.*}} -> 0x000070 71// Disable signed class_ro.72// RUN: %llvm_jitlink -num-threads=0 -debug-only=orc %t/main.o %t/objc_new.o \73// RUN:               %t/objc_new_signed_ro.o 2>&1 \74// RUN:               | FileCheck %s -check-prefix=SWIFT_MIX575// SWIFT_MIX5: MachOPlatform: Merging __objc_imageinfo flags for main {{.*}} -> 0x004076 77//--- main.S78.section  __TEXT,__text,regular,pure_instructions79.globl _main80_main:81  xorl %eax, %eax82  ret83 84//--- objc_old.S85.section  __TEXT,__text,regular,pure_instructions86.globl _objc187_objc1:88  ret89 90  .section  __DATA,__objc_imageinfo,regular,no_dead_strip91L_OBJC_IMAGE_INFO:92  .long 093  .long 094 95//--- objc_new.S96.section  __TEXT,__text,regular,pure_instructions97.globl _objc298_objc2:99  ret100 101  .section  __DATA,__objc_imageinfo,regular,no_dead_strip102L_OBJC_IMAGE_INFO:103  .long 0104  .long 64105 106//--- objc_new_signed_ro.S107.section  __TEXT,__text,regular,pure_instructions108.globl _objc3109_objc3:110  ret111 112  .section  __DATA,__objc_imageinfo,regular,no_dead_strip113L_OBJC_IMAGE_INFO:114  .long 0115  .long 80116 117//--- swift_4.S118.section  __TEXT,__text,regular,pure_instructions119.globl _swift4120_swift4:121  ret122 123  .section  __DATA,__objc_imageinfo,regular,no_dead_strip124L_OBJC_IMAGE_INFO:125  .long 0126  .long 1600127 128//--- swift_5.S129.section  __TEXT,__text,regular,pure_instructions130.globl _swift5131_swift5:132  ret133 134  .section  __DATA,__objc_imageinfo,regular,no_dead_strip135L_OBJC_IMAGE_INFO:136  .long 0137  .long 83887936138 139//--- swift_59.S140.section  __TEXT,__text,regular,pure_instructions141.globl _swift59142_swift59:143  ret144 145  .section  __DATA,__objc_imageinfo,regular,no_dead_strip146L_OBJC_IMAGE_INFO:147  .long 0148  .long 84477760149 150