blob: 375c454d892e733a30fa08d4b80e1951a50b034a [file] [log] [blame]
// 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