1 // UNSUPPORTED: system-windows 2 3 // ----------------------------------------------------------------------------- 4 // Passing --musl 5 // ----------------------------------------------------------------------------- 6 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 7 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 8 // RUN: -mcpu=hexagonv60 \ 9 // RUN: -fuse-ld=lld \ 10 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 11 // RUN: %s 2>&1 \ 12 // RUN: | FileCheck -check-prefix=CHECK000 %s 13 // CHECK000-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o 14 // CHECK000: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" 15 // CHECK000: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" 16 // CHECK000: "-lclang_rt.builtins-hexagon" "-lc" 17 // ----------------------------------------------------------------------------- 18 // Passing --musl --shared 19 // ----------------------------------------------------------------------------- 20 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 21 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 22 // RUN: -mcpu=hexagonv60 \ 23 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -shared \ 24 // RUN: %s 2>&1 \ 25 // RUN: | FileCheck -check-prefix=CHECK001 %s 26 // CHECK001-NOT: -dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1 27 // CHECK001: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o" 28 // CHECK001: "-lclang_rt.builtins-hexagon" "-lc" 29 // CHECK001-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o 30 // ----------------------------------------------------------------------------- 31 // Passing --musl -nostdlib 32 // ----------------------------------------------------------------------------- 33 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 34 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 35 // RUN: -mcpu=hexagonv60 \ 36 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostdlib \ 37 // RUN: %s 2>&1 \ 38 // RUN: | FileCheck -check-prefix=CHECK002 %s 39 // CHECK002: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" 40 // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o 41 // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o 42 // CHECK002-NOT: "-lclang_rt.builtins-hexagon" 43 // CHECK002-NOT: "-lc" 44 // ----------------------------------------------------------------------------- 45 // Passing --musl -nostartfiles 46 // ----------------------------------------------------------------------------- 47 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 48 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 49 // RUN: -mcpu=hexagonv60 \ 50 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostartfiles \ 51 // RUN: %s 2>&1 \ 52 // RUN: | FileCheck -check-prefix=CHECK003 %s 53 // CHECK003: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" 54 // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}Scrt1.o 55 // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o 56 // CHECK003: "-lclang_rt.builtins-hexagon" "-lc" 57 // ----------------------------------------------------------------------------- 58 // Passing --musl -nodefaultlibs 59 // ----------------------------------------------------------------------------- 60 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 61 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 62 // RUN: -mcpu=hexagonv60 \ 63 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nodefaultlibs \ 64 // RUN: %s 2>&1 \ 65 // RUN: | FileCheck -check-prefix=CHECK004 %s 66 // CHECK004: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" 67 // CHECK004: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" 68 // CHECK004-NOT: "-lclang_rt.builtins-hexagon" 69 // CHECK004-NOT: "-lc" 70 // ----------------------------------------------------------------------------- 71 // Not Passing -fno-use-init-array when musl is selected 72 // ----------------------------------------------------------------------------- 73 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 74 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 75 // RUN: -mcpu=hexagonv60 \ 76 // RUN: %s 2>&1 \ 77 // RUN: | FileCheck -check-prefix=CHECK005 %s 78 // CHECK005-NOT: -fno-use-init-array 79 // ----------------------------------------------------------------------------- 80 // ----------------------------------------------------------------------------- 81 // c++ when musl is selected 82 // ----------------------------------------------------------------------------- 83 // RUN: %clangxx -### -target hexagon-unknown-linux-musl \ 84 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 85 // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 86 // RUN: -mcpu=hexagonv60 \ 87 // RUN: %s 2>&1 \ 88 // RUN: | FileCheck -check-prefix=CHECK006 %s 89 // CHECK006: "-internal-isystem" "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1" 90 // ----------------------------------------------------------------------------- 91 // c++ when musl is selected 92 // ----------------------------------------------------------------------------- 93 // RUN: %clangxx -### -target hexagon-unknown-elf \ 94 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 95 // RUN: -stdlib=libc++ \ 96 // RUN: -mcpu=hexagonv60 \ 97 // RUN: %s 2>&1 \ 98 // RUN: | FileCheck -check-prefix=CHECK007 %s 99 // CHECK007: "-internal-isystem" "{{.*}}hexagon{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1" 100 // ----------------------------------------------------------------------------- 101 // internal-isystem for linux with and without musl 102 // ----------------------------------------------------------------------------- 103 // RUN: %clang -### -target hexagon-unknown-linux-musl \ 104 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 105 // RUN: -resource-dir=%S/Inputs/resource_dir \ 106 // RUN: %s 2>&1 \ 107 // RUN: | FileCheck -check-prefix=CHECK008 %s 108 // CHECK008: InstalledDir: [[INSTALLED_DIR:.+]] 109 // CHECK008: "-resource-dir" "[[RESOURCE:[^"]+]]" 110 // CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include" 111 // CHECK008-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include" 112 113 // RUN: %clang -### -target hexagon-unknown-linux \ 114 // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 115 // RUN: -resource-dir=%S/Inputs/resource_dir \ 116 // RUN: %s 2>&1 \ 117 // RUN: | FileCheck -check-prefix=CHECK009 %s 118 // CHECK009: InstalledDir: [[INSTALLED_DIR:.+]] 119 // CHECK009: "-resource-dir" "[[RESOURCE:[^"]+]]" 120 // CHECK009-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include" 121 // CHECK009-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include" 122