| // Test clang changes for PNaCl Support including: |
| // include paths, library paths, emulation, default static |
| |
| // RUN: %clang -no-canonical-prefixes -### -o %t.o %s \ |
| // RUN: -target le32-unknown-nacl -resource-dir foo 2>&1 \ |
| // RUN: | FileCheck --check-prefix=CHECK-LE32 %s |
| // CHECK-LE32: {{.*}}clang{{.*}}" "-cc1" |
| // CHECK-LE32: "-triple" "le32-unknown-nacl" |
| // CHECK-LE32: "-emit-llvm-bc" |
| // CHECK-LE32: "-fuse-init-array" |
| // CHECK-LE32: "-fno-gnu-inline-asm" |
| // CHECK-LE32: "-resource-dir" "foo" |
| // CHECK-LE32: "-internal-isystem" "foo{{/|\\\\}}include" |
| // CHECK-LE32: "-internal-externc-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}include" |
| // CHECK-LE32: "-internal-externc-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}usr{{/|\\\\}}include" |
| // CHECK-LE32: le32-nacl-ld.gold{{(.exe)?}}" |
| // CHECK-LE32: "-static" |
| // CHECK-LE32: "--undef-sym-check" |
| // CHECK-LE32: "--allow-unresolved=memcpy" |
| // CHECK-LE32: "--allow-unresolved=memset" |
| // CHECK-LE32: "--allow-unresolved=memmove" |
| // CHECK-LE32: "--allow-unresolved=setjmp" |
| // CHECK-LE32: "--allow-unresolved=longjmp" |
| // CHECK-LE32: "--allow-unresolved=__nacl_tp_tls_offset" |
| // CHECK-LE32: "--allow-unresolved=__nacl_tp_tdb_offset" |
| // CHECK-LE32: "crt1.x" |
| // CHECK-LE32: "crti.bc" |
| // CHECK-LE32: "crtbegin.bc" |
| // CHECK-LE32: "unwind_stubs.bc" |
| // CHECK-LE32: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}lib" |
| // CHECK-LE32: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}usr{{/|\\\\}}lib" |
| // CHECK-LE32: "-Lfoo{{/|\\\\}}lib{{/|\\\\}}le32-nacl" |
| // CHECK-LE32: "-plugin" "{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}LLVMgold.so" |
| // CHECK-LE32: "-plugin-opt=emit-llvm" |
| // CHECK-LE32: "-plugin-opt=mtriple=le32-unknown-nacl" |
| // CHECK-LE32-NOT: -lpthread |
| |
| // RUN: %clangxx -no-canonical-prefixes -### -o %t.o %s \ |
| // RUN: -target le32-unknown-nacl -fexceptions -resource-dir foo 2>&1 \ |
| // RUN: | FileCheck --check-prefix=CHECK-LE32-CXX %s |
| // CHECK-LE32-CXX: {{.*}}clang{{.*}}" "-cc1" |
| // CHECK-LE32-CXX: "-triple" "le32-unknown-nacl" |
| // CHECK-LE32-CXX: "-emit-llvm-bc" |
| // CHECK-LE32-CXX: "-fuse-init-array" |
| // CHECK-LE32-CXX: "-fno-gnu-inline-asm" |
| // CHECK-LE32-CXX: "-resource-dir" "foo" |
| // CHECK-LE32-CXX: "-internal-isystem" "foo{{/|\\\\}}include" |
| // CHECK-LE32-CXX: "-internal-externc-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}include" |
| // CHECK-LE32-CXX: "-internal-externc-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}usr{{/|\\\\}}include" |
| // CHECK-LE32-CXX: le32-nacl-ld.gold{{(.exe)?}}" |
| // CHECK-LE32-CXX: "-static" |
| // CHECK-LE32-CXX: "--undef-sym-check" |
| // CHECK-LE32-CXX: "--allow-unresolved=memcpy" |
| // CHECK-LE32-CXX: "--allow-unresolved=memset" |
| // CHECK-LE32-CXX: "--allow-unresolved=memmove" |
| // CHECK-LE32-CXX: "--allow-unresolved=setjmp" |
| // CHECK-LE32-CXX: "--allow-unresolved=longjmp" |
| // CHECK-LE32-CXX: "--allow-unresolved=__nacl_tp_tls_offset" |
| // CHECK-LE32-CXX: "--allow-unresolved=__nacl_tp_tdb_offset" |
| // CHECK-LE32-CXX: "--undefined=__pnacl_eh_stack" |
| // CHECK-LE32-CXX: "--undefined=__pnacl_eh_resume" |
| // CHECK-LE32-CXX: "--allow-unresolved=__pnacl_eh_type_table" |
| // CHECK-LE32-CXX: "--allow-unresolved=__pnacl_eh_action_table" |
| // CHECK-LE32-CXX: "crt1.x" |
| // CHECK-LE32-CXX: "crti.bc" |
| // CHECK-LE32-CXX: "crtbegin.bc" |
| // CHECK-LE32-CXX: "sjlj_eh_redirect.bc" |
| // CHECK-LE32-CXX: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}lib" |
| // CHECK-LE32-CXX: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}le32-nacl{{/|\\\\}}usr{{/|\\\\}}lib" |
| // CHECK-LE32-CXX: "-plugin" "{{.*}}{{/|\\\\}}..{{/|\\\\}}lib{{/|\\\\}}LLVMgold.so" |
| // CHECK-LE32-CXX: "-plugin-opt=emit-llvm" |
| // CHECK-LE32-CXX: "-plugin-opt=mtriple=le32-unknown-nacl" |
| // CHECK-LE32-CXX: "-plugin-opt=-enable-pnacl-sjlj-eh" |
| // CHECK-LE32-CXX: -lpthread |