// UNSUPPORTED: system-windows // ----------------------------------------------------------------------------- // Passing --musl // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: -fuse-ld=lld \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree %s 2>&1 | FileCheck -check-prefix=CHECK000 %s // CHECK000-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o // CHECK000: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK000: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" // CHECK000: "-lc" "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl --shared // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -shared %s 2>&1 | FileCheck -check-prefix=CHECK001 %s // CHECK001-NOT: -dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1 // CHECK001: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o" // CHECK001: "-lc" "-lclang_rt.builtins-hexagon" // CHECK001-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o // ----------------------------------------------------------------------------- // Passing --musl -nostdlib // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostdlib %s 2>&1 | FileCheck -check-prefix=CHECK002 %s // CHECK002: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o // CHECK002-NOT: "-lc" // CHECK002-NOT: "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nostartfiles // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostartfiles %s 2>&1 | FileCheck -check-prefix=CHECK003 %s // CHECK003: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}Scrt1.o // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o // CHECK003: "-lc" "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nodefaultlibs // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=CHECK004 %s // CHECK004: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK004: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" // CHECK004-NOT: "-lc" // CHECK004-NOT: "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nolibc // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 --sysroot=%S/Inputs/basic_linux_libcxx_tree \ // RUN: -nolibc %s 2>&1 | FileCheck -check-prefix=CHECK-NOLIBC %s // CHECK-NOLIBC: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK-NOLIBC-SAME: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" // CHECK-NOLIBC-NOT: "-lc" // ----------------------------------------------------------------------------- // Not Passing -fno-use-init-array when musl is selected // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 %s 2>&1 | FileCheck -check-prefix=CHECK005 %s // CHECK005-NOT: -fno-use-init-array // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // c++ when musl is selected // ----------------------------------------------------------------------------- // RUN: %clangxx -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ // RUN: -mcpu=hexagonv60 %s 2>&1 | FileCheck -check-prefix=CHECK006 %s // CHECK006: "-internal-isystem" "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1" // ----------------------------------------------------------------------------- // c++ when musl is selected // ----------------------------------------------------------------------------- // RUN: %clangxx -### --target=hexagon-unknown-elf \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -stdlib=libc++ \ // RUN: -mcpu=hexagonv60 %s 2>&1 | FileCheck -check-prefix=CHECK007 %s // CHECK007: "-internal-isystem" "{{.*}}hexagon{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1" // ----------------------------------------------------------------------------- // internal-isystem for linux with and without musl // ----------------------------------------------------------------------------- // RUN: %clang -### --target=hexagon-unknown-linux-musl \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -resource-dir=%S/Inputs/resource_dir %s 2>&1 | FileCheck -check-prefix=CHECK008 %s // CHECK008: InstalledDir: [[INSTALLED_DIR:.+]] // CHECK008: "-resource-dir" "[[RESOURCE:[^"]+]]" // CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include" // CHECK008-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include" // RUN: %clang -### --target=hexagon-unknown-linux \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -resource-dir=%S/Inputs/resource_dir %s 2>&1 | FileCheck -check-prefix=CHECK009 %s // CHECK009: InstalledDir: [[INSTALLED_DIR:.+]] // CHECK009: "-resource-dir" "[[RESOURCE:[^"]+]]" // CHECK009-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include" // CHECK009-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include" // RUN: %clang -Werror -L/tmp \ // RUN: --target=hexagon-unknown-linux-musl %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK010 %s // CHECK010: InstalledDir: [[INSTALLED_DIR:.+]] // CHECK010-NOT: "-lstandalone" // CHECK010-NOT: crt0_standalone.o // CHECK010: crt1.o // CHECK010: "-L/tmp" // CHECK010-NOT: "-lstandalone" // ----------------------------------------------------------------------------- // unwindlib // ----------------------------------------------------------------------------- // RUN: %clangxx --unwindlib=none \ // RUN: --target=hexagon-unknown-linux-musl %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK011 %s // CHECK011: InstalledDir: [[INSTALLED_DIR:.+]] // CHECK011: "--eh-frame-hdr" // CHECK011: crt1.o // CHECK011-NOT: "-lunwind" // CHECK011-NOT: "-lgcc_eh" // CHECK012-NOT: "-lgcc_s" // RUN: %clangxx --rtlib=compiler-rt --unwindlib=libunwind \ // RUN: --target=hexagon-unknown-linux-musl %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK012 %s // RUN: %clangxx \ // RUN: --target=hexagon-unknown-linux-musl %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK012 %s // CHECK012: InstalledDir: [[INSTALLED_DIR:.+]] // CHECK012: crt1.o // CHECK012: "-lunwind" // CHECK012-NOT: "-lgcc_eh" // CHECK012-NOT: "-lgcc_s" // RUN: not %clangxx --rtlib=compiler-rt --unwindlib=libgcc \ // RUN: --target=hexagon-unknown-linux-musl %s -### 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK013 %s // CHECK013: error: unsupported unwind library 'libgcc' for platform 'hexagon-unknown-linux-musl' // CHECK013-NOT: "-lgcc_eh" // CHECK013-NOT: "-lgcc_s" // CHECK013-NOT: "-lunwind"