OLD | NEW |
1 # The following variables will likely need to be modified, depending on where | 1 # The following variables will likely need to be modified, depending on where |
2 # and how you built LLVM & Clang. They can be overridden in a command-line | 2 # and how you built LLVM & Clang. They can be overridden in a command-line |
3 # invocation of make, like: | 3 # invocation of make, like: |
4 # | 4 # |
5 # make LLVM_SRC_PATH=<path> LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> \ | 5 # make LLVM_SRC_PATH=<path> LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> \ |
6 # PNACL_BIN_PATH=<path> ... | 6 # PNACL_BIN_PATH=<path> ... |
7 # | 7 # |
8 | 8 |
9 # LLVM_SRC_PATH is the path to the root of the checked out source code. This | 9 # LLVM_SRC_PATH is the path to the root of the checked out source code. This |
10 # directory should contain the configure script, the include/ and lib/ | 10 # directory should contain the configure script, the include/ and lib/ |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 LD_EXTRA += -fsanitize=address | 120 LD_EXTRA += -fsanitize=address |
121 endif | 121 endif |
122 | 122 |
123 ifdef MSAN | 123 ifdef MSAN |
124 # TODO(ascull): this has an as yet undiagnosed uninitialized memory access | 124 # TODO(ascull): this has an as yet undiagnosed uninitialized memory access |
125 OBJDIR := $(OBJDIR)+MSan | 125 OBJDIR := $(OBJDIR)+MSan |
126 CXX_EXTRA += -fsanitize=memory | 126 CXX_EXTRA += -fsanitize=memory |
127 LD_EXTRA += -fsanitize=memory | 127 LD_EXTRA += -fsanitize=memory |
128 endif | 128 endif |
129 | 129 |
| 130 ifdef FORCEASM |
| 131 FORCEASM_FLAG = --filetype=asm |
| 132 # With --filetype=asm and --sandbox, the llvm-mc assembler emits the lock and |
| 133 # 16-bit prefixes in the "wrong" order, causing the validator to reject the |
| 134 # resulting nexe. So we just disable those tests for now. |
| 135 FORCEASM_XTEST_EXCLUDES = -e x8632,sandbox,test_sync_atomic |
| 136 FORCEASM_LIT_PARAM = --param=FORCEASM |
| 137 else |
| 138 FORCEASM_FLAG = |
| 139 FORCEASM_XTEST_EXCLUDES = |
| 140 FORCEASM_LIT_PARAM = |
| 141 endif |
| 142 |
130 SB_OBJDIR := $(OBJDIR)+Sandboxed | 143 SB_OBJDIR := $(OBJDIR)+Sandboxed |
131 | 144 |
132 $(info -----------------------------------------------) | 145 $(info -----------------------------------------------) |
133 $(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) | 146 $(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) |
134 $(info Using SB_LLVM_PATH = $(SB_LLVM_PATH)) | 147 $(info Using SB_LLVM_PATH = $(SB_LLVM_PATH)) |
135 $(info Using NACL_ROOT = $(NACL_ROOT)) | 148 $(info Using NACL_ROOT = $(NACL_ROOT)) |
136 $(info Using TOOLCHAIN_ROOT = $(TOOLCHAIN_ROOT)) | 149 $(info Using TOOLCHAIN_ROOT = $(TOOLCHAIN_ROOT)) |
137 $(info Using PNACL_TOOLCHAIN_ROOT = $(PNACL_TOOLCHAIN_ROOT)) | 150 $(info Using PNACL_TOOLCHAIN_ROOT = $(PNACL_TOOLCHAIN_ROOT)) |
138 $(info Using PNACL_BIN_PATH = $(PNACL_BIN_PATH)) | 151 $(info Using PNACL_BIN_PATH = $(PNACL_BIN_PATH)) |
139 $(info Using CLANG_PATH = $(CLANG_PATH)) | 152 $(info Using CLANG_PATH = $(CLANG_PATH)) |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 # Use runtime.is.built so that build-runtime.py is invoked only once | 398 # Use runtime.is.built so that build-runtime.py is invoked only once |
386 # even in a parallel build. | 399 # even in a parallel build. |
387 .INTERMEDIATE: runtime.is.built | 400 .INTERMEDIATE: runtime.is.built |
388 $(RT_OBJ): runtime.is.built | 401 $(RT_OBJ): runtime.is.built |
389 runtime.is.built: $(RT_SRC) pydir/build-runtime.py | 402 runtime.is.built: $(RT_SRC) pydir/build-runtime.py |
390 @echo ================ Building Subzero runtime ================ | 403 @echo ================ Building Subzero runtime ================ |
391 ./pydir/build-runtime.py -v --pnacl-root $(PNACL_TOOLCHAIN_ROOT) | 404 ./pydir/build-runtime.py -v --pnacl-root $(PNACL_TOOLCHAIN_ROOT) |
392 | 405 |
393 check-lit: $(OBJDIR)/pnacl-sz make_symlink | 406 check-lit: $(OBJDIR)/pnacl-sz make_symlink |
394 PNACL_BIN_PATH=$(PNACL_BIN_PATH) \ | 407 PNACL_BIN_PATH=$(PNACL_BIN_PATH) \ |
395 » $(LLVM_SRC_PATH)/utils/lit/lit.py -sv tests_lit | 408 » $(LLVM_SRC_PATH)/utils/lit/lit.py -sv tests_lit $(FORCEASM_LIT_PARAM) |
396 | 409 |
397 ifdef MINIMAL | 410 ifdef MINIMAL |
398 check-xtest: $(OBJDIR)/pnacl-sz make_symlink runtime | 411 check-xtest: $(OBJDIR)/pnacl-sz make_symlink runtime |
399 @echo "Crosstests disabled, minimal build" | 412 @echo "Crosstests disabled, minimal build" |
400 else | 413 else |
401 check-xtest: $(OBJDIR)/pnacl-sz make_symlink runtime | 414 check-xtest: $(OBJDIR)/pnacl-sz make_symlink runtime |
402 # Do all native/sse2 tests, but only test_vector_ops for native/sse4.1. | 415 # Do all native/sse2 tests, but only test_vector_ops for native/sse4.1. |
403 # For (slow) sandboxed tests, limit to Om1/sse4.1. | 416 # For (slow) sandboxed tests, limit to Om1/sse4.1. |
404 # TODO(jpp): implement x8664 sandbox, then enable xtests. | 417 # TODO(jpp): implement x8664 sandbox, then enable xtests. |
405 # TODO(jpp): reenable the x86-64 tests. | 418 # TODO(jpp): reenable the x86-64 tests. |
406 ./pydir/crosstest_generator.py -v --lit \ | 419 ./pydir/crosstest_generator.py -v --lit \ |
407 --toolchain-root $(TOOLCHAIN_ROOT) \ | 420 --toolchain-root $(TOOLCHAIN_ROOT) \ |
| 421 $(FORCEASM_FLAG) \ |
| 422 $(FORCEASM_XTEST_EXCLUDES) \ |
408 -i x8632,native,sse2 \ | 423 -i x8632,native,sse2 \ |
409 -i x8632,native,sse4.1,test_vector_ops \ | 424 -i x8632,native,sse4.1,test_vector_ops \ |
410 -i x8632,sandbox,sse4.1,Om1 \ | 425 -i x8632,sandbox,sse4.1,Om1 \ |
411 -i x8632,nonsfi,sse2,O2 \ | 426 -i x8632,nonsfi,sse2,O2 \ |
412 -i x8664,native,sse2 \ | 427 -i x8664,native,sse2 \ |
413 -i x8664,native,sse4.1,test_vector_ops \ | 428 -i x8664,native,sse4.1,test_vector_ops \ |
414 -e x8664,sandbox,sse4.1,Om1 \ | 429 -e x8664,sandbox,sse4.1,Om1 \ |
415 -i arm32,neon \ | 430 -i arm32,neon \ |
416 -e arm32,nonsfi \ | 431 -e arm32,nonsfi \ |
417 -e arm32,neon,test_vector_ops \ | 432 -e arm32,neon,test_vector_ops \ |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 +make -f Makefile.standalone format | 478 +make -f Makefile.standalone format |
464 # Verify MINIMAL build, plus proper usage of REQUIRES in lit tests. | 479 # Verify MINIMAL build, plus proper usage of REQUIRES in lit tests. |
465 +make -f Makefile.standalone \ | 480 +make -f Makefile.standalone \ |
466 MINIMAL=1 check | 481 MINIMAL=1 check |
467 # Check that there are no g++ build errors or warnings. | 482 # Check that there are no g++ build errors or warnings. |
468 +make -f Makefile.standalone \ | 483 +make -f Makefile.standalone \ |
469 GPLUSPLUS=1 compile_only | 484 GPLUSPLUS=1 compile_only |
470 # Check the x86 assembler unit tests. | 485 # Check the x86 assembler unit tests. |
471 +make -f Makefile.standalone \ | 486 +make -f Makefile.standalone \ |
472 DEBUG=1 CHECK_X86_ASM=1 check-unit | 487 DEBUG=1 CHECK_X86_ASM=1 check-unit |
473 # Run spec2k for x86-32. | 488 # Run lit tests, cross tests, unit tests, and spec2k/x86-32. |
474 +make -f Makefile.standalone \ | 489 +make -f Makefile.standalone \ |
475 check check-spec | 490 check check-spec |
476 # Build spec2k under -Om1/x86-32, to check for liveness errors. | 491 # Build spec2k under -Om1/x86-32, to check for liveness errors. |
477 +make -f Makefile.standalone \ | 492 +make -f Makefile.standalone \ |
478 SPECFLAGS='-Om1' SPECBUILDONLY=true check-spec | 493 SPECFLAGS='-Om1' SPECBUILDONLY=true check-spec |
479 # Run spec2k for x86-32 without advanced phi lowering. | 494 # Run spec2k for x86-32 without advanced phi lowering. |
480 +make -f Makefile.standalone \ | 495 +make -f Makefile.standalone \ |
481 SPECFLAGS='--sz=--phi-edge-split=0' check-spec | 496 SPECFLAGS='--sz=--phi-edge-split=0' check-spec |
| 497 # Run cross tests and lit tests to validate filetype=asm output. |
| 498 +make -f Makefile.standalone \ |
| 499 FORCEASM=1 check-xtest check-lit |
482 # Build spec2k for arm32. | 500 # Build spec2k for arm32. |
483 +make -f Makefile.standalone \ | 501 +make -f Makefile.standalone \ |
484 TARGET=arm32 SPECBUILDONLY=true check-spec | 502 TARGET=arm32 SPECBUILDONLY=true check-spec |
485 # Build spec2k under -Om1/arm32. | 503 # Build spec2k under -Om1/arm32. |
486 +make -f Makefile.standalone \ | 504 +make -f Makefile.standalone \ |
487 TARGET=arm32 SPECFLAGS='-Om1' SPECBUILDONLY=true check-spec | 505 TARGET=arm32 SPECFLAGS='-Om1' SPECBUILDONLY=true check-spec |
488 # Run a few spec2k tests for arm32 using qemu. | 506 # Run a few spec2k tests for arm32 using qemu. |
489 +make -f Makefile.standalone \ | 507 +make -f Makefile.standalone \ |
490 TARGET=arm32 ALLSPEC='176.gcc 181.mcf 254.gap' check-spec | 508 TARGET=arm32 ALLSPEC='176.gcc 181.mcf 254.gap' check-spec |
491 # Provide validation of user awesomeness! | 509 # Provide validation of user awesomeness! |
(...skipping 21 matching lines...) Expand all Loading... |
513 @echo See Subzero size breakdown in bloat/pnacl-sz.bloat.html | 531 @echo See Subzero size breakdown in bloat/pnacl-sz.bloat.html |
514 | 532 |
515 docs: | 533 docs: |
516 make -C docs -f Makefile.standalone | 534 make -C docs -f Makefile.standalone |
517 | 535 |
518 clean: | 536 clean: |
519 rm -rf pnacl-sz *.o $(OBJDIR) $(SB_OBJDIR) build/pnacl-sz.bloat.json | 537 rm -rf pnacl-sz *.o $(OBJDIR) $(SB_OBJDIR) build/pnacl-sz.bloat.json |
520 | 538 |
521 clean-all: clean | 539 clean-all: clean |
522 rm -rf build/ crosstest/Output/ | 540 rm -rf build/ crosstest/Output/ |
OLD | NEW |