| 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 |