# This tests functionality of --start-group, --end-group # This link should fail with unresolve symbol RUN: not lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o \ RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a -o x 2> %t.err # Test group RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o --start-group \ RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a --end-group -o %t1 # Mix object files in group RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o --start-group \ RUN: %p/Inputs/group/fn.o %p/Inputs/group/fn2.o \ RUN: %p/Inputs/group/fn1.o --end-group -o %t2 # Mix Whole archive input, the group should not iterate the file libfn.a RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o --start-group \ RUN: --whole-archive %p/Inputs/group/libfn.a --no-whole-archive \ RUN: %p/Inputs/group/libfn1.a --end-group -o %t3 # Defined symbols in a shared library. RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o --start-group \ RUN: %p/Inputs/group/libfn2.so %p/Inputs/group/fn1.o %p/Inputs/group/fn.o \ RUN: --end-group -o %t4 # Test alias options too, as they are more widely used # Test group RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o '-(' \ RUN: %p/Inputs/group/libfn.a %p/Inputs/group/libfn1.a '-)' -o %t1.alias # Mix object files in group RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o '-(' \ RUN: %p/Inputs/group/fn.o %p/Inputs/group/fn2.o \ RUN: %p/Inputs/group/fn1.o '-)' -o %t2.alias # Mix Whole archive input, the group should not iterate the file libfn.a RUN: lld -flavor old-gnu -target x86_64 %p/Inputs/group/1.o '-(' \ RUN: --whole-archive %p/Inputs/group/libfn.a --no-whole-archive \ RUN: %p/Inputs/group/libfn1.a '-)' -o %t3.alias RUN: llvm-nm %t1 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RUN: llvm-nm %t2 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RUN: llvm-nm %t3 | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RUN: llvm-nm %t1.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RUN: llvm-nm %t2.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RUN: llvm-nm %t3.alias | FileCheck -check-prefix=RESOLVEDEXTERNAL %s RESOLVEDEXTERNAL: {{[0-9a-z]+}} T fn2