diff --git a/.gitignore b/.gitignore index 28ee19c0f..cfd4c0383 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,13 @@ /nuclide /build +/subbuild +Makefile.config tools/profiler/tmp +third-party/pcre/src/* +third-party/icu/src/* +third-party/jemalloc/src/* npm-debug.log diff --git a/.gitmodules b/.gitmodules index b7d6d4d62..6358970b6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,3 @@ -[submodule "third-party/double_conversion/src"] - path = third-party/double_conversion/src - url = https://github.com/google/double-conversion -[submodule "third-party/folly/src"] - path = third-party/folly/src - url = https://github.com/facebook/folly.git [submodule "third-party/gflags/src"] path = third-party/gflags/src url = https://github.com/gflags/gflags.git @@ -20,3 +14,6 @@ [submodule "third-party/googletest/src"] path = third-party/googletest/src url = https://github.com/google/googletest.git +[submodule "third-party/libunwind"] + path = third-party/libunwind + url = https://github.com/libunwind/libunwind.git diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..816aaa820 --- /dev/null +++ b/Makefile @@ -0,0 +1,435 @@ +-include Makefile.config + +default: build/lkg/bin/skip_to_llvm build/lkg/bin/skip_server build/lkg/bin/skip_printer + +clean: + rm -Rf build + +# INSTALLING SK + +install: build/lkg/bin/skip_to_llvm build/lkg/bin/skip_server build/lkg/bin/skip_printer + mkdir -p $(PREFIX)/lib/skip/ + mkdir -p $(PREFIX)/bin/ + + cp build/lkg/bin/skip_server $(PREFIX)/bin/skip_server + cp build/lkg/bin/skip_printer $(PREFIX)/bin/skip_printer + + cp -R src/runtime/prelude $(PREFIX)/lib/skip/prelude + + cp build/lkg/tmp/preamble.ll $(PREFIX)/lib/skip + cp build/lkg/runtime/native/libskip_runtime.a $(PREFIX)/lib/skip + cp build/lkg/CMakeFiles/skip_to_llvm.lkg.dir/runtime/native/src/sk_standalone.cpp.o $(PREFIX)/lib/skip + cp subbuild/lib/libicuuc.a $(PREFIX)/lib/skip + cp subbuild/lib/libicudata.a $(PREFIX)/lib/skip + cp subbuild/lib/libpcre.a $(PREFIX)/lib/skip + cp subbuild/lib/libjemalloc_pic.a $(PREFIX)/lib/skip + cp subbuild/lib/libunwind.a $(PREFIX)/lib/skip 2> /dev/null || : + cp sk $(PREFIX)/bin/sk + chmod 755 $(PREFIX)/bin/sk + + +# CREATING VERSION.CPP + +build/lkg/runtime/native/src/version.cpp: + mkdir -p build/lkg/runtime/native/src + echo '#include "skip/String.h"' > build/lkg/runtime/native/src/version.cpp + echo '#include "skip/System-extc.h"' >> build/lkg/runtime/native/src/version.cpp + echo 'skip::String SKIP_getBuildVersion() { std::string version_info = "'`date`'"; return skip::String(version_info);}' >> build/lkg/runtime/native/src/version.cpp + +# BUILDING THE OBJECTS OF THE RUNTIME + +INCLUDES:=-I./lkg/runtime/native/include -I./subbuild/include -I ./lkg/runtime/native/src/ $(INCLUDEPATH) +CCWARNINGS=-Wno-sign-compare -Wvla -Wmissing-declarations -Wno-return-type-c-linkage -Wno-format -Wno-defaulted-function-deleted -Wno-unknown-warning-option +CCOPTS:=-DPIC -DUSE_JEMALLOC -g -DNDEBUG -fPIC -msse4.2 -std=c++17 -fdata-sections -ffunction-sections -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -faligned-new +COMPILE_ROBJECT:=$(CXX) $(INCLUDES) $(CCWARNINGS) $(CCOPTS) + +# BUILDING LKG RUNTIME OBJECTS + +build/lkg/CMakeFiles/skip_to_llvm.lkg.dir/runtime/native/src/sk_standalone.cpp.o: lkg/runtime/native/src/sk_standalone.cpp subbuild/lib + mkdir -p build/lkg/CMakeFiles/skip_to_llvm.lkg.dir/runtime/native/src + $(COMPILE_ROBJECT) -o build/lkg/CMakeFiles/skip_to_llvm.lkg.dir/runtime/native/src/sk_standalone.cpp.o -c lkg/runtime/native/src/sk_standalone.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/AllocProfiler.cpp.o: lkg/runtime/native/src/AllocProfiler.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/AllocProfiler.cpp.o -c lkg/runtime/native/src/AllocProfiler.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena-malloc.cpp.o: lkg/runtime/native/src/Arena-malloc.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena-malloc.cpp.o -c lkg/runtime/native/src/Arena-malloc.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena.cpp.o: lkg/runtime/native/src/Arena.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena.cpp.o -c lkg/runtime/native/src/Arena.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Async.cpp.o: lkg/runtime/native/src/Async.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Async.cpp.o -c lkg/runtime/native/src/Async.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/File.cpp.o: lkg/runtime/native/src/File.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/File.cpp.o -c lkg/runtime/native/src/File.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/InternTable.cpp.o: lkg/runtime/native/src/InternTable.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/InternTable.cpp.o -c lkg/runtime/native/src/InternTable.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/LockManager.cpp.o: lkg/runtime/native/src/LockManager.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/LockManager.cpp.o -c lkg/runtime/native/src/LockManager.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Math.cpp.o: lkg/runtime/native/src/Math.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Math.cpp.o -c lkg/runtime/native/src/Math.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Obstack.cpp.o: lkg/runtime/native/src/Obstack.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Obstack.cpp.o -c lkg/runtime/native/src/Obstack.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Process.cpp.o: lkg/runtime/native/src/Process.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Process.cpp.o -c lkg/runtime/native/src/Process.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Reactive.cpp.o: lkg/runtime/native/src/Reactive.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Reactive.cpp.o -c lkg/runtime/native/src/Reactive.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Refcount.cpp.o: lkg/runtime/native/src/Refcount.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Refcount.cpp.o -c lkg/runtime/native/src/Refcount.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Regex.cpp.o: lkg/runtime/native/src/Regex.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Regex.cpp.o -c lkg/runtime/native/src/Regex.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/String.cpp.o: lkg/runtime/native/src/String.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/String.cpp.o -c lkg/runtime/native/src/String.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/System.cpp.o: lkg/runtime/native/src/System.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/System.cpp.o -c lkg/runtime/native/src/System.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Task.cpp.o: lkg/runtime/native/src/Task.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Task.cpp.o -c lkg/runtime/native/src/Task.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Type.cpp.o: lkg/runtime/native/src/Type.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Type.cpp.o -c lkg/runtime/native/src/Type.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/intern.cpp.o: lkg/runtime/native/src/intern.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/intern.cpp.o -c lkg/runtime/native/src/intern.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/leak.cpp.o: lkg/runtime/native/src/leak.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/leak.cpp.o -c lkg/runtime/native/src/leak.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memoize.cpp.o: lkg/runtime/native/src/memoize.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memoize.cpp.o -c lkg/runtime/native/src/memoize.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memory.cpp.o: lkg/runtime/native/src/memory.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memory.cpp.o -c lkg/runtime/native/src/memory.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/objects.cpp.o: lkg/runtime/native/src/objects.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/objects.cpp.o -c lkg/runtime/native/src/objects.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/parallel.cpp.o: lkg/runtime/native/src/parallel.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/parallel.cpp.o -c lkg/runtime/native/src/parallel.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/stats.cpp.o: lkg/runtime/native/src/stats.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/stats.cpp.o -c lkg/runtime/native/src/stats.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/util.cpp.o: lkg/runtime/native/src/util.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/util.cpp.o -c lkg/runtime/native/src/util.cpp + +build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/version.cpp.o: build/lkg/runtime/native/src/version.cpp subbuild/lib + mkdir -p build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/ + $(COMPILE_ROBJECT) -o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/version.cpp.o -c build/lkg/runtime/native/src/version.cpp + +# BUILDING SRC RUNTIME OBJECTS + +build/src/runtime/native/CMakeFiles/sk_standalone.src.dir/src/sk_standalone.cpp.o: src/runtime/native/src/sk_standalone.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/sk_standalone.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/sk_standalone.src.dir/src/sk_standalone.cpp.o -c src/runtime/native/src/sk_standalone.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/AllocProfiler.cpp.o: src/runtime/native/src/AllocProfiler.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/AllocProfiler.cpp.o -c src/runtime/native/src/AllocProfiler.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena-malloc.cpp.o: src/runtime/native/src/Arena-malloc.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena-malloc.cpp.o -c src/runtime/native/src/Arena-malloc.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena.cpp.o: src/runtime/native/src/Arena.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena.cpp.o -c src/runtime/native/src/Arena.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Async.cpp.o: src/runtime/native/src/Async.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Async.cpp.o -c src/runtime/native/src/Async.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/File.cpp.o: src/runtime/native/src/File.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/File.cpp.o -c src/runtime/native/src/File.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/InternTable.cpp.o: src/runtime/native/src/InternTable.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/InternTable.cpp.o -c src/runtime/native/src/InternTable.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/LockManager.cpp.o: src/runtime/native/src/LockManager.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/LockManager.cpp.o -c src/runtime/native/src/LockManager.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Math.cpp.o: src/runtime/native/src/Math.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Math.cpp.o -c src/runtime/native/src/Math.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Obstack.cpp.o: src/runtime/native/src/Obstack.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Obstack.cpp.o -c src/runtime/native/src/Obstack.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Process.cpp.o: src/runtime/native/src/Process.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Process.cpp.o -c src/runtime/native/src/Process.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Reactive.cpp.o: src/runtime/native/src/Reactive.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Reactive.cpp.o -c src/runtime/native/src/Reactive.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Refcount.cpp.o: src/runtime/native/src/Refcount.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Refcount.cpp.o -c src/runtime/native/src/Refcount.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Regex.cpp.o: src/runtime/native/src/Regex.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Regex.cpp.o -c src/runtime/native/src/Regex.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/String.cpp.o: src/runtime/native/src/String.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/String.cpp.o -c src/runtime/native/src/String.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/System.cpp.o: src/runtime/native/src/System.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/System.cpp.o -c src/runtime/native/src/System.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Task.cpp.o: src/runtime/native/src/Task.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Task.cpp.o -c src/runtime/native/src/Task.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Type.cpp.o: src/runtime/native/src/Type.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Type.cpp.o -c src/runtime/native/src/Type.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/intern.cpp.o: src/runtime/native/src/intern.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/intern.cpp.o -c src/runtime/native/src/intern.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/leak.cpp.o: src/runtime/native/src/leak.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/leak.cpp.o -c src/runtime/native/src/leak.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/memory.cpp.o: src/runtime/native/src/memory.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/memory.cpp.o -c src/runtime/native/src/memory.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/objects.cpp.o: src/runtime/native/src/objects.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/objects.cpp.o -c src/runtime/native/src/objects.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/parallel.cpp.o: src/runtime/native/src/parallel.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/parallel.cpp.o -c src/runtime/native/src/parallel.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/stats.cpp.o: src/runtime/native/src/stats.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/stats.cpp.o -c src/runtime/native/src/stats.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/util.cpp.o: src/runtime/native/src/util.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/util.cpp.o -c src/runtime/native/src/util.cpp + +build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/version.cpp.o: build/src/runtime/native/src/version.cpp subbuild/lib + mkdir -p build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/ + $(COMPILE_ROBJECT) -o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/version.cpp.o -c build/src/runtime/native/src/version.cpp + +# BUILDING TEST RUNTIME OBJECTS + +build/tests/runtime/native/CMakeFiles/sk_standalone.tests.dir/src/sk_standalone.cpp.o: tests/runtime/native/src/sk_standalone.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/sk_standalone.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/sk_standalone.tests.dir/src/sk_standalone.cpp.o -c tests/runtime/native/src/sk_standalone.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Arena-malloc.cpp.o: tests/runtime/native/src/Arena-malloc.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Arena-malloc.cpp.o -c tests/runtime/native/src/Arena-malloc.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/InternTable.cpp.o: tests/runtime/native/src/InternTable.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/InternTable.cpp.o -c tests/runtime/native/src/InternTable.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/LockManager.cpp.o: tests/runtime/native/src/LockManager.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/LockManager.cpp.o -c tests/runtime/native/src/LockManager.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Math.cpp.o: tests/runtime/native/src/Math.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Math.cpp.o -c tests/runtime/native/src/Math.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Process.cpp.o: tests/runtime/native/src/Process.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Process.cpp.o -c tests/runtime/native/src/Process.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Refcount.cpp.o: tests/runtime/native/src/Refcount.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Refcount.cpp.o -c tests/runtime/native/src/Refcount.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Regex.cpp.o: tests/runtime/native/src/Regex.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Regex.cpp.o -c tests/runtime/native/src/Regex.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/String.cpp.o: tests/runtime/native/src/String.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/String.cpp.o -c tests/runtime/native/src/String.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/System.cpp.o: tests/runtime/native/src/System.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/System.cpp.o -c tests/runtime/native/src/System.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Task.cpp.o: tests/runtime/native/src/Task.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Task.cpp.o -c tests/runtime/native/src/Task.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Type.cpp.o: tests/runtime/native/src/Type.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/Type.cpp.o -c tests/runtime/native/src/Type.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/leak.cpp.o: tests/runtime/native/src/leak.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/leak.cpp.o -c tests/runtime/native/src/leak.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/memory.cpp.o: tests/runtime/native/src/memory.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/memory.cpp.o -c tests/runtime/native/src/memory.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/objects.cpp.o: tests/runtime/native/src/objects.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/objects.cpp.o -c tests/runtime/native/src/objects.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/parallel.cpp.o: tests/runtime/native/src/parallel.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/parallel.cpp.o -c tests/runtime/native/src/parallel.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/stats.cpp.o: tests/runtime/native/src/stats.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/stats.cpp.o -c tests/runtime/native/src/stats.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/util.cpp.o: tests/runtime/native/src/util.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/util.cpp.o -c tests/runtime/native/src/util.cpp + +build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/version.cpp.o: build/tests/runtime/native/src/version.cpp subbuild/lib + mkdir -p build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/ + $(COMPILE_ROBJECT) -o build/tests/runtime/native/CMakeFiles/skip_runtime.tests.dir/src/version.cpp.o -c build/tests/runtime/native/src/version.cpp + +# BUILDING THE LKG RUNTIME + +LKG_RUNTIME_OBJECTS:=build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/AllocProfiler.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena-malloc.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Arena.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Async.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/File.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/InternTable.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/LockManager.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Math.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Obstack.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Process.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Reactive.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Refcount.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Regex.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/String.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/System.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Task.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/Type.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/intern.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/leak.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memoize.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/memory.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/objects.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/parallel.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/stats.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/util.cpp.o build/lkg/runtime/native/CMakeFiles/skip_runtime.lkg.dir/src/version.cpp.o + + +build/lkg/runtime/native/libskip_runtime.a: subbuild/lib $(LKG_RUNTIME_OBJECTS) + mkdir -p build/lkg/runtime/native/ + $(AR) qc build/lkg/runtime/native/libskip_runtime.a $(LKG_RUNTIME_OBJECTS) && $(RANLIB) build/lkg/runtime/native/libskip_runtime.a + +# BUILDING THE SRC RUNTIME + +SRC_RUNTIME_OBJECTS:=build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/AllocProfiler.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena-malloc.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Arena.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Async.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/File.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/InternTable.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/LockManager.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Math.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Obstack.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Process.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Reactive.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Refcount.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Regex.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/String.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/System.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Task.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/Type.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/intern.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/leak.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/memoize.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/memory.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/objects.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/parallel.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/stats.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/util.cpp.o build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/version.cpp.o + + +build/src/runtime/native/libskip_runtime.a: subbuild/lib $(SRC_RUNTIME_OBJECTS) + mkdir -p build/src/runtime/native/ + $(AR) qc build/src/runtime/native/libskip_runtime.a $(SRC_RUNTIME_OBJECTS) && $(RANLIB) build/src/runtime/native/libskip_runtime.a + +# BUILDING THE LKG BINARIES +LKG_STANDALONE:=build/lkg/CMakeFiles/skip_to_llvm.lkg.dir/runtime/native/src/sk_standalone.cpp.o +LKG_CCOPTS:=-O2 -g -DNDEBUG +LKG_LIBS:=subbuild/lib/libicuuc.a subbuild/lib/libicudata.a subbuild/lib/libpcre.a subbuild/lib/libjemalloc_pic.a -lpthread $(LIBUNWIND) -ldl + +# BUILDING THE LKG PREAMBLE + +build/lkg/tmp/preamble.ll: lkg/runtime/tools/gen_preamble + mkdir -p build/lkg/tmp/ + lkg/runtime/tools/gen_preamble preamble --compiler $(CLANGXX) -o build/lkg/tmp/preamble.ll --ndebug + +# BUILDING LKG SKIP_TO_LLVM + +build/lkg/tmp/skip_to_llvm.gen.ll: build/lkg/tmp/preamble.ll lkg/skip_to_llvm.ll.bz2 + mkdir -p build/lkg/tmp/ + bzcat lkg/skip_to_llvm.ll.bz2 > build/lkg/tmp/skip_to_llvm.gen.body.ll + cat build/lkg/tmp/preamble.ll > build/lkg/tmp/skip_to_llvm.gen.ll + cat build/lkg/tmp/skip_to_llvm.gen.body.ll >> build/lkg/tmp/skip_to_llvm.gen.ll + +build/lkg/tmp/skip_to_llvm.gen.o: build/lkg/tmp/skip_to_llvm.gen.ll + mkdir -p build/lkg/tmp/ + $(CLANGXX) -fPIC -c -o build/lkg/tmp/skip_to_llvm.gen.o build/lkg/tmp/skip_to_llvm.gen.ll + +build/lkg/bin/skip_to_llvm: build/lkg/tmp/skip_to_llvm.gen.o $(LKG_STANDALONE) build/lkg/runtime/native/libskip_runtime.a + mkdir -p build/lkg/bin/ + $(CXX) $(LKG_CCOPTS) build/lkg/tmp/skip_to_llvm.gen.o $(LKG_STANDALONE) -o build/lkg/bin/skip_to_llvm build/lkg/runtime/native/libskip_runtime.a $(LKG_LIBS) + +# BUILDING LKG SKIP_SERVER + +build/lkg/tmp/skip_server.gen.ll: build/lkg/tmp/preamble.ll lkg/skip_server.ll.bz2 + mkdir -p build/lkg/tmp/ + bzcat lkg/skip_server.ll.bz2 > build/lkg/tmp/skip_server.gen.body.ll + cat build/lkg/tmp/preamble.ll > build/lkg/tmp/skip_server.gen.ll + cat build/lkg/tmp/skip_server.gen.body.ll >> build/lkg/tmp/skip_server.gen.ll + +build/lkg/tmp/skip_server.gen.o: build/lkg/tmp/skip_server.gen.ll + mkdir -p build/lkg/tmp/ + $(CLANGXX) -fPIC -c -o build/lkg/tmp/skip_server.gen.o build/lkg/tmp/skip_server.gen.ll + +build/lkg/bin/skip_server: build/lkg/tmp/skip_server.gen.o $(LKG_STANDALONE) build/lkg/runtime/native/libskip_runtime.a + mkdir -p build/lkg/bin/ + $(CXX) $(LKG_CCOPTS) build/lkg/tmp/skip_server.gen.o $(LKG_STANDALONE) -o build/lkg/bin/skip_server build/lkg/runtime/native/libskip_runtime.a $(LKG_LIBS) + +# BUILDING LKG SKIP_PRINTER + +build/lkg/tmp/skip_printer.gen.ll: build/lkg/tmp/preamble.ll lkg/skip_printer.ll.bz2 + mkdir -p build/lkg/tmp/ + bzcat lkg/skip_printer.ll.bz2 > build/lkg/tmp/skip_printer.gen.body.ll + cat build/lkg/tmp/preamble.ll > build/lkg/tmp/skip_printer.gen.ll + cat build/lkg/tmp/skip_printer.gen.body.ll >> build/lkg/tmp/skip_printer.gen.ll + +build/lkg/tmp/skip_printer.gen.o: build/lkg/tmp/skip_printer.gen.ll + mkdir -p build/lkg/tmp/ + $(CLANGXX) -fPIC -c -o build/lkg/tmp/skip_printer.gen.o build/lkg/tmp/skip_printer.gen.ll + +build/lkg/bin/skip_printer: build/lkg/tmp/skip_printer.gen.o $(LKG_STANDALONE) build/lkg/runtime/native/libskip_runtime.a + mkdir -p build/lkg/bin/ + $(CXX) $(LKG_CCOPTS) build/lkg/tmp/skip_printer.gen.o $(LKG_STANDALONE) -o build/lkg/bin/skip_printer build/lkg/runtime/native/libskip_runtime.a $(LKG_LIBS) + +# UPDATE LKG + +build/src/skip_to_llvm.ll: build/lkg/bin/skip_to_llvm $(shell find src/ -type f) + mkdir -p build/src + build/lkg/bin/skip_to_llvm --output build/src/skip_to_llvm.ll src/native:skip_to_llvm --export-function-as main=skip_main --nogoto + +build/src/skip_server.ll: build/lkg/bin/skip_to_llvm $(shell find src/ -type f) + mkdir -p build/src + build/lkg/bin/skip_to_llvm --output build/src/skip_server.ll src/server:skip_server --export-function-as main=skip_main --nogoto + +build/src/skip_printer.ll: build/lkg/bin/skip_to_llvm $(shell find src/ -type f) + mkdir -p build/src + build/lkg/bin/skip_to_llvm --output build/src/skip_printer.ll src/tools:skip_printer --export-function-as main=skip_main --nogoto + +update_lkg: build/src/skip_to_llvm.ll build/src/skip_server.ll build/src/skip_printer.ll + tools/check_lkg_file --update build/src/skip_to_llvm.ll lkg/skip_to_llvm.ll.bz2 + tools/check_lkg_file --update build/src/skip_server.ll lkg/skip_server.ll.bz2 + tools/check_lkg_file --update build/src/skip_printer.ll lkg/skip_printer.ll.bz2 + rsync -r lkg/ src diff --git a/README.md b/README.md index ce9dc698b..e20070006 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,50 @@ [![CircleCI](https://circleci.com/gh/skiplang/skip.svg?style=svg)](https://circleci.com/gh/skiplang/skip) +## Getting started + +### Ubuntu/Debian + +``` +sudo apt-get install git clang make python3 autoconf libtool gcc g++ bzip2 libunwind-dev +git clone http://github.com/skiplang/skip.git +cd skip/ +git submodule update --init --recursive +./build_submodules.sh +./configure +make -j 16 +sudo make install +``` + +### Centos + +``` +yum install -y git which clang make autoconf automake libtool python3 bzip2 +git clone http://github.com/skiplang/skip.git +cd skip/ +git submodule update --init --recursive +./build_submodules.sh +./configure +make -j 16 +sudo make install +``` + +### Mac + +``` +git clone http://github.com/skiplang/skip.git +cd skip/ +git submodule update --init --recursive +./build_submodules.sh +./configure +make -j 16 +sudo make install +``` + +If you don't have clang installed (unlikely): +``` +xcode-select --install +``` + ## Skip Overview Skip is a general-purpose programming language that tracks side effects to provide caching with reactive invalidation, ergonomic and safe parallelism, and efficient garbage collection. Skip is statically typed and ahead-of-time compiled using LLVM to produce highly optimized executables. diff --git a/build-static-binaries.sh b/build-static-binaries.sh deleted file mode 100755 index 04a58dee5..000000000 --- a/build-static-binaries.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - -############################################################################### -# This scripts builds a static version of skip_server and skip_printer. -# Static in the sense that the resulting binaries will not attempt to load -# any dynamic library (cf -static option of clang). -# -# The only reason to build those binaries is that they will be much easier -# to distribute. When you link with a dynamic library, you need the same -# library to be available on the system that will run the binary. -# -# That can be difficult to get right, especially when you have quite a few -# of them. -############################################################################### - -buildStatic() { - - echo "Building: /tmp/$1.ll" - rm -Rf "/tmp/$1.ll" - - cat ./build/src/runtime/native/lib/preamble.ll > "/tmp/$1.ll" - ./build/lkg/bin/skip_to_llvm --export-function-as main=skip_main "$2" >> "/tmp/$1.ll" - - if [ -f "/tmp/$1.ll" ]; then - echo "Written: /tmp/$1.ll" - else - exit 2 - fi - - echo "Building: /tmp/$1.o" - rm -Rf "/tmp/$1.o" - - clang++ -c -O3 "/tmp/$1.ll" -o "/tmp/$1_full.o" - strip --strip-symbol=exit "/tmp/$1_full.o" -o "/tmp/$1.o" - - if [ -f "/tmp/$1.o" ]; then - echo "Written: /tmp/$1.o" - else - exit 2 - fi - - echo "Building: ./build/bin/static_skip_server" - rm -rf "./build/bin/$1" - - clang++ -static -s -o "build/bin/$1" -g ./build/src/runtime/native/CMakeFiles/skip_runtime.src.dir/src/String.cpp.o "/tmp/$1.o" ./build/src/runtime/native/CMakeFiles/sk_standalone.src.dir/src/sk_standalone.cpp.o -L./build/third-party/install/lib/ -L/usr/lib/x86_64-linux-gnu ./build/src/runtime/native/libskip_runtime.a -fPIC -DPIC -Wl,-rpath,/usr/lib/x86_64-linux-gnu -lboost_thread -lboost_context -lboost_atomic -lrt -Wl,--gc-sections -DUSE_JEMALLOC -msse4.2 -std=c++14 -O3 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdata-sections -ffunction-sections -DFOLLY_HAVE_MALLOC_H -lfolly -lglog -lgflags -ldouble-conversion -licuuc -licui18n -licuio -licutu -licudata -ljemalloc_pic -lpcre -lboost_system -lboost_filesystem -lboost_chrono -lboost_date_time -levent -ldl -lpthread -lunwind -static -lboost_context - - if [ -f "./build/bin/$1" ]; then - echo "Written: $PWD/build/bin/$1" - fi -} - -if ! [ -f build/bin/skip_server ]; then - 2>&1 echo "Could not find ./build/bin/skip_server" - 2>&1 echo "1- This script only works when run from the root skip dir" - 2>&1 echo "2- skip_server must be built, $ cd build && ninja skip_server" - exit 2 -fi - -if ! [ -f build/bin/skip_printer ]; then - 2>&1 echo "Could not find ./build/bin/skip_printer" - 2>&1 echo "1- This script only works when run from the root skip dir" - 2>&1 echo "2- skip_printer must be built, $ cd build && ninja skip_printer" - exit 2 -fi - -buildStatic static_skip_server src/server -buildStatic static_skip_printer src/tools:skip_printer diff --git a/build_submodules.sh b/build_submodules.sh new file mode 100755 index 000000000..1f73ecfb4 --- /dev/null +++ b/build_submodules.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +echo "-------------------------------------------------------------------------------" +echo "- BUILDING SUBMODULES FOR SKIP -" +echo "-------------------------------------------------------------------------------" + +export TPDIR="$PWD/subbuild" +mkdir -p $TPDIR + +rm -f Makefile.config +touch Makefile.config + +echo "-------------------------------------------------------------------------------" +echo "- Checking that the files are there -" +echo "-------------------------------------------------------------------------------" + +if [ ! -f "third-party/jemalloc/src/README" ]; then + echo "ERROR: looks like the git submodules have not been checked out" + echo "Try running: git submodule update --init --recursive" + exit 2 +fi + +echo "-------------------------------------------------------------------------------" +echo "- Building JEMALLOC -" +echo "-------------------------------------------------------------------------------" + +(cd ./third-party/jemalloc/src && autoconf) +(cd ./third-party/jemalloc/src && ./configure --prefix=$TPDIR --with-mangling) +(cd ./third-party/jemalloc/src && make -j 16 build_lib_static) +(cd ./third-party/jemalloc/src && make install_bin install_include install_lib) +cat $TPDIR/include/jemalloc/jemalloc.h | grep -v "define je_posix_memalign posix_memalign" > $TPDIR/include/jemalloc/jemalloc_hack.h +cp $TPDIR/include/jemalloc/jemalloc_hack.h $TPDIR/include/jemalloc/jemalloc.h + +echo "-------------------------------------------------------------------------------" +echo "- Building ICU -" +echo "-------------------------------------------------------------------------------" + +export ICUFLAGS="-DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_USING_ICU_NAMESPACE=0 -DU_CHARSET_IS_UTF8=1" +(cd third-party/icu/src/icu4c/source/ && \ + CPPFLAGS="$ICUFLAGS" CFLAGS="$ICUFLAGS" ./runConfigureICU Linux --disable-shared --enable-static --disable-tests --disable-samples --prefix="$TPDIR") +(cd third-party/icu/src/icu4c/source/ && make -j 16 && make install) +(cd third-party/icu/src/icu4c/source/tools/escapesrc/ && rm -f *.o) + +echo "-------------------------------------------------------------------------------" +echo "- Building PCRE -" +echo "-------------------------------------------------------------------------------" + +# Unfortunately, we have to modify those files for the configuration step to succeed. +# So we just make a copy and then, copy them back after we are done ... +cp third-party/pcre/src/INSTALL third-party/pcre/src/INSTALL.back +cp third-party/pcre/src/Makefile.in third-party/pcre/src/Makefile.in.back +cp third-party/pcre/src/aclocal.m4 third-party/pcre/src/aclocal.m4.back +cp third-party/pcre/src/ar-lib third-party/pcre/src/ar-lib.back +cp third-party/pcre/src/compile third-party/pcre/src/compile.back +cp third-party/pcre/src/config.guess third-party/pcre/src/config.guess.back +cp third-party/pcre/src/config.sub third-party/pcre/src/config.sub.back +cp third-party/pcre/src/configure third-party/pcre/src/configure.back +cp third-party/pcre/src/depcomp third-party/pcre/src/depcomp.back +cp third-party/pcre/src/install-sh third-party/pcre/src/install-sh.back +cp third-party/pcre/src/ltmain.sh third-party/pcre/src/ltmain.sh.back +cp third-party/pcre/src/m4/libtool.m4 third-party/pcre/src/m4/libtool.m4.back +cp third-party/pcre/src/missing third-party/pcre/src/missing.back +cp third-party/pcre/src/test-driver third-party/pcre/src/test-driver.back + +(cd third-party/pcre/src/ && autoreconf -f -i && ./configure --prefix="$TPDIR" --enable-static --disable-shared --enable-utf && make -j 16 && make install) + + +cp third-party/pcre/src/INSTALL.back third-party/pcre/src/INSTALL +cp third-party/pcre/src/Makefile.in.back third-party/pcre/src/Makefile.in +cp third-party/pcre/src/aclocal.m4.back third-party/pcre/src/aclocal.m4 +cp third-party/pcre/src/ar-lib.back third-party/pcre/src/ar-lib +cp third-party/pcre/src/compile.back third-party/pcre/src/compile +cp third-party/pcre/src/config.guess.back third-party/pcre/src/config.guess +cp third-party/pcre/src/config.sub.back third-party/pcre/src/config.sub +cp third-party/pcre/src/configure.back third-party/pcre/src/configure +cp third-party/pcre/src/depcomp.back third-party/pcre/src/depcomp +cp third-party/pcre/src/install-sh.back third-party/pcre/src/install-sh +cp third-party/pcre/src/ltmain.sh.back third-party/pcre/src/ltmain.sh +cp third-party/pcre/src/m4/libtool.m4.back third-party/pcre/src/m4/libtool.m4 +cp third-party/pcre/src/missing.back third-party/pcre/src/missing +cp third-party/pcre/src/test-driver.back third-party/pcre/src/test-driver + diff --git a/configure b/configure new file mode 100755 index 000000000..e07c57c2c --- /dev/null +++ b/configure @@ -0,0 +1,79 @@ +#!/bin/bash + +echo "-------------------------------------------------------------------------------" +echo "- CONFIGURE BUILD FOR SKIP -" +echo "-------------------------------------------------------------------------------" + +rm -f Makefile.config +touch Makefile.config + +CLANG=`which clang` +EXPVERSION=5 + +if [ -f $CLANG ]; then + VERSION=`$CLANG --version | grep version | sed 's/[^0-9]*\([0-9]*\).*/\1/'` + if [ $((VERSION)) -lt $((EXPVERSION)) ]; then + echo "ERROR: clang compiler version is too old!" + echo "ERROR: SKIP needs at least version $EXPVERSION" + echo "ERROR: your version is $VERSION" + exit 2 + fi + echo "clang compiler found: $CLANG" +else + echo "ERROR: clang compiler not found" + exit 2 +fi + +CLANGXX=`which clang++` + +if [ -f $CLANGXX ]; then + VERSION=`$CLANGXX --version | grep version | sed 's/[^0-9]*\([0-9]*\).*/\1/'` + if [ $((VERSION)) -lt $((EXPVERSION)) ]; then + echo "ERROR: clang compiler version is too old!" + echo "ERROR: SKIP needs at least version $EXPVERSION" + echo "ERROR: your version is $VERSION" + exit 2 + fi + echo "clang++ compiler found: $CLANGXX" +else + echo "ERROR: clang++ compiler not found" + exit 2 +fi + +RANLIB=`which ranlib` + +if [ -f $RANLIB ]; then + echo "ranlib found: $RANLIB" +else + echo "ERROR: ranlib not found" + exit 2 +fi + +AR=`which ar` + +if [ -f $AR ]; then + echo "ar found: $AR" +else + echo "ERROR: ar not found" + exit 2 +fi + +echo "CC:=$CLANG" >> Makefile.config +echo "CXX:=$CLANGXX" >> Makefile.config +echo "CLANGXX:=$CLANGXX" >> Makefile.config +echo "RANLIB:=$RANLIB" >> Makefile.config +echo "AR:=$AR" >> Makefile.config + +if [ "$(uname)" == "Darwin" ]; then + echo "LIBUNWIND:=" >> Makefile.config +else + echo "LIBUNWIND:=-lunwind" >> Makefile.config +fi + +echo "INCLUDEPATH:= -I$ICUDIR" >> Makefile.config + +if [ -z "$PREFIX" ]; then + echo "PREFIX:=/usr/local" >> Makefile.config +else + echo "PREFIX:=$PREFIX" +fi diff --git a/install.sh b/install.sh index 4547467ba..99057f4d0 100755 --- a/install.sh +++ b/install.sh @@ -27,11 +27,8 @@ cp -R src/runtime/prelude "$installDir/lib/skip/prelude" cp "$pathToSkip/build/src/runtime/native/lib/preamble.ll" "$installDir/lib/skip" cp "$pathToSkip/build/src/runtime/native/libskip_runtime.a" "$installDir/lib/skip" cp "$pathToSkip/build/src/runtime/native/CMakeFiles/sk_standalone.src.dir/src/sk_standalone.cpp.o" "$installDir/lib/skip" -cp "$pathToSkip/build/third-party/install/lib/libfolly.a" "$installDir/lib/skip" if [ $distrib == Linux ]; then - cp "$pathToSkip/build/third-party/install/lib/libunwind.a" "$installDir/lib/skip" - cp "$pathToSkip/build/third-party/install/lib/libdouble-conversion.a" "$installDir/lib/skip" cp "$pathToSkip/build/third-party/install/lib/libjemalloc_pic.a" "$installDir/lib/skip" fi diff --git a/lkg/runtime/native/include/skip/detail/jemalloc_common.h b/lkg/runtime/native/include/skip/detail/jemalloc_common.h index 244d624f5..453d7f143 100644 --- a/lkg/runtime/native/include/skip/detail/jemalloc_common.h +++ b/lkg/runtime/native/include/skip/detail/jemalloc_common.h @@ -11,9 +11,17 @@ #error Only include this file from within Arena.cpp #endif +#ifndef __APPLE__ +#define je_mallctlnametomib mallctlnametomib +#define je_mallctlbymib mallctlbymib +#define je_dallocx dallocx +#define je_mallocx mallocx +#endif + #include #include +#define posix_memalign posix_memalign2 #include "jemalloc/jemalloc.h" #if (JEMALLOC_VERSION_MAJOR < 4) || \ @@ -35,7 +43,7 @@ struct Mib { explicit Mib(const char* name) : m_name(name) { count_parts(name); assert(m_size <= MAX_MIB_SIZE); - int res = ::mallctlnametomib(name, &m_parts[0], &m_size); + int res = ::je_mallctlnametomib(name, &m_parts[0], &m_size); if (res) { std::string nameStr(name); throw std::runtime_error("mallctlnametomib(" + nameStr + ") failed"); @@ -80,7 +88,7 @@ void mallctl_by_mib( size_t* oldlenp, const void* newp, size_t newlen) { - int res = ::mallctlbymib( + int res = ::je_mallctlbymib( mibx.m_parts.data(), mibx.m_size, oldp, oldlenp, (void*)newp, newlen); if (res) { std::string nameStr(mibx.m_name); diff --git a/lkg/runtime/native/src/Arena.cpp b/lkg/runtime/native/src/Arena.cpp index e4176cc37..15ce89648 100644 --- a/lkg/runtime/native/src/Arena.cpp +++ b/lkg/runtime/native/src/Arena.cpp @@ -83,7 +83,7 @@ struct ArenaData : private je::ChunkHooks { // All obstack allocations must be exactly an obstack chunk. assert((kind() != Arena::Kind::obstack) || (sz == Obstack::kChunkSize)); - void* p = ::mallocx( + void* p = ::je_mallocx( sz, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id) | MALLOCX_ALIGN(align)); @@ -93,7 +93,7 @@ struct ArenaData : private je::ChunkHooks { } void free(void* p) { - ::dallocx( + ::je_dallocx( p, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id)); } diff --git a/lkg/runtime/native/src/Obstack.cpp b/lkg/runtime/native/src/Obstack.cpp index ba3aa0bf4..5bcffa95e 100644 --- a/lkg/runtime/native/src/Obstack.cpp +++ b/lkg/runtime/native/src/Obstack.cpp @@ -272,10 +272,6 @@ struct LargeObjHeader final : private skip::noncopyable { const size_t numAlignBits = 14; -#if !defined(__APPLE__) -static_assert(std::log2(kChunkSize) == numAlignBits); -#endif - struct Chunk; struct ChunkHeader { explicit ChunkHeader(Chunk* prev, size_t startingGeneration) diff --git a/lkg/runtime/native/src/util.cpp b/lkg/runtime/native/src/util.cpp index b27a3fa80..45ff492d9 100644 --- a/lkg/runtime/native/src/util.cpp +++ b/lkg/runtime/native/src/util.cpp @@ -225,7 +225,7 @@ void SpinLock::unlock() { uint8_t oldBits = m_bits.load(); const uint8_t newBits = oldBits & ~1; - if (oldBits & 1 == 0) { + if ((oldBits & 1) == 0) { fprintf(stderr, "Internal error: spinlock double unlock\n"); exit(70); } @@ -238,7 +238,7 @@ void SpinLock::unlock() { fprintf( stderr, "Internal error: spinlock in an impossible state %d\n", - (int)m_bits.load() & 2 != 0); + ((unsigned int)m_bits.load() & 2) != 0); exit(70); } } diff --git a/lkg/skip_printer.ll.bz2 b/lkg/skip_printer.ll.bz2 new file mode 100644 index 000000000..862c67b5e Binary files /dev/null and b/lkg/skip_printer.ll.bz2 differ diff --git a/lkg/skip_server.ll.bz2 b/lkg/skip_server.ll.bz2 new file mode 100644 index 000000000..fdc8b13e6 Binary files /dev/null and b/lkg/skip_server.ll.bz2 differ diff --git a/lkg/skip_to_llvm.ll.bz2 b/lkg/skip_to_llvm.ll.bz2 index 2df0d98b8..1f94815e3 100644 Binary files a/lkg/skip_to_llvm.ll.bz2 and b/lkg/skip_to_llvm.ll.bz2 differ diff --git a/sk b/sk index f1c318ccf..e611bb42c 100755 --- a/sk +++ b/sk @@ -8,7 +8,7 @@ # installDir=$(dirname "${BASH_SOURCE[0]}") -clangpp=clang++-6.0 +clangpp=clang++ preamble="$installDir/../lib/skip/preamble.ll" standalone="$installDir/../lib/skip/sk_standalone.cpp.o" prelude="$installDir/../lib/skip/prelude" @@ -42,8 +42,6 @@ else fi fi -root=`realpath "$root"` - if [ "$1" == "--args" ]; then shift fi @@ -191,7 +189,15 @@ start() { readPid=$! nohup "$skip_server" "$root" --export-function-as main=skip_main \ - --output "$skdir/out.ll" < "$fifo_command" > "$fifo_response" \ + --no-inline --no-use-specialized-names \ + --preamble "$preamble" \ + --output "$skdir/out1.ll" \ + --output "$skdir/out2.ll" \ + --output "$skdir/out3.ll" \ + --output "$skdir/out4.ll" \ + --output "$skdir/out5.ll" \ + --output "$skdir/out6.ll" \ + < "$fifo_command" > "$fifo_response" \ 2> "$skdir/server_errors" & echo $! >> "$skdir/pids" @@ -281,13 +287,18 @@ if [ $command == "build" ]; then # and so the server was responding to that other process. # These races are rare enough that we are just going to wait for # the file to be written. - while [ ! -f "$skdir/out.ll" ]; + while [ ! -f "$skdir/out1.ll" ]; do sleep 1 done; - # Adding the preamble to the .ll file - cat "$preamble" "$skdir/out.ll" > "$skdir/preamble_and_out.ll" + "$clangpp" -c "$skdir/out1.ll" -o "$skdir/out1.o" & + "$clangpp" -c "$skdir/out2.ll" -o "$skdir/out2.o" & + "$clangpp" -c "$skdir/out3.ll" -o "$skdir/out3.o" & + "$clangpp" -c "$skdir/out4.ll" -o "$skdir/out4.o" & + "$clangpp" -c "$skdir/out5.ll" -o "$skdir/out5.o" & + "$clangpp" -c "$skdir/out6.ll" -o "$skdir/out6.o" & + wait system=$(uname -s) @@ -297,60 +308,38 @@ if [ $command == "build" ]; then ccopts=`cat "$root/.ccopts"` fi - "$clangpp" -O2 -g -c "$skdir/preamble_and_out.ll" -o "$skdir/preamble_and_out.o" - if [ "$system" == "Linux" ]; then + if [ "$(uname)" == "Darwin" ]; then + LIBUNWIND="" + else + LIBUNWIND="-lunwind" + fi + - # Linking it all together - "$clangpp" -s -o "$skdir/bin.out" -g \ - "$skdir/preamble_and_out.o" "$standalone" \ - -L"$thirdPartyLibDir/" \ + "$clangpp" -o "$skdir/bin.out" -g \ + "$skdir/out1.o" \ + "$skdir/out2.o" \ + "$skdir/out3.o" \ + "$skdir/out4.o" \ + "$skdir/out5.o" \ + "$skdir/out6.o" \ + "$standalone" \ "$skipRuntimeLib" \ -fPIC -DPIC \ - -lrt \ - -Wl,--gc-sections \ -DUSE_JEMALLOC -msse4.2 -std=c++14 \ - -O3 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer \ + -O1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer \ -fdata-sections -ffunction-sections \ - -lglog -lgflags \ - -licuuc -licui18n -licuio -licutu -licudata -ljemalloc_pic \ - -lpcre -lboost_system \ - -lboost_filesystem -lboost_chrono -lboost_date_time \ - -levent \ + "$installDir/../lib/skip/libicuuc.a" \ + "$installDir/../lib/skip/libicudata.a" \ + "$installDir/../lib/skip/libpcre.a" \ + "$installDir/../lib/skip/libjemalloc_pic.a" \ -lpthread \ - -lunwind \ - -lboost_thread \ - -lboost_context \ - -lboost_atomic \ + $LIBUNWIND \ -ldl \ $ccopts - else - if [ "$system" == "Darwin" ]; then - "$clangpp" -o "$skdir/bin.out" -g \ - "$skdir/preamble_and_out.o" "$standalone" \ - -L"$thirdPartyLibDir/" \ - "$skipRuntimeLib" \ - -fPIC -DPIC -Wl,-rpath,"$linuxGnuLibDir" \ - -lboost_thread-mt \ - -lboost_context-mt \ - -lboost_atomic-mt \ - -DUSE_JEMALLOC -msse4.2 -std=c++14 \ - -O3 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer \ - -fdata-sections -ffunction-sections \ - -lglog -lgflags \ - -licuuc -licui18n -licuio -licutu -licudata -ljemalloc_pic \ - -lpcre -lboost_system \ - -lboost_filesystem -lboost_chrono -lboost_date_time \ - -levent -ldl \ - -lpthread \ - $ccopts - else - 2>&1 echo "Unknown system" - exit 2 - fi - fi - - echo "Written: $skdir/bin.out" + if [ -f "$skdir/bin.out" ]; then + echo "Written: $skdir/bin.out" + fi fi if [ $runAfterBuild ]; then diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c7e830a26..22840e35e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,80 +1,102 @@ -set(RUNTIME_PATH ${CMAKE_CURRENT_SOURCE_DIR}/runtime) -set(RUNTIME_TOOLS_PATH ${RUNTIME_PATH}/tools) -set(RUNTIME_NATIVE_PATH ${RUNTIME_PATH}/native) -set(PREAMBLE ${CMAKE_CURRENT_BINARY_DIR}/runtime/native/lib/preamble.ll) - -set(PHASE src) - -add_subdirectory(runtime) # Sets PRELUDE_SOURCES.${PHASE}. -add_subdirectory(frontend) # Sets FRONTEND_SOURCES. -add_subdirectory(utils) # Sets UTILS_SOURCES. -add_subdirectory(project) # Sets PROJECT_SOURCES. -add_subdirectory(native) # Sets COMPILER_SOURCES. -add_subdirectory(server) -add_subdirectory(tools) -add_subdirectory(nuclide) +if(EXTERN_LKG) + message("************************************************************************") + message("************************************************************************") + message("** Using external LKG: ${EXTERN_LKG} **") + message("************************************************************************") + message("************************************************************************") -set(PHASE) -# ------------------------------------------------------------------------------ + if(NOT EXISTS ${EXTERN_LKG}/bin/skip_to_llvm) + message(FATAL_ERROR "${EXTERN_LKG}/bin/skip_to_llvm not found. Did you already build skip_to_llvm in your external LKG?") + endif() -# Bootstrap takes the current src/ code and promotes it to lkg/ + # When using an external LKG we don't want to actually depend on it - just use + # it. It's up to the user to rebuild it properly. -set(CHECK_LKG_COMMANDS) -set(UPDATE_LKG_COMMANDS) + add_executable(skip_to_llvm.lkg IMPORTED GLOBAL) + set_target_properties(skip_to_llvm.lkg PROPERTIES + IMPORTED_LOCATION ${EXTERN_LKG}/bin/skip_to_llvm + OUTPUT_NAME skip_to_llvm + RUNTIME_OUTPUT_DIRECTORY ${EXTERN_LKG}/bin + ) -set(src_ll ${CMAKE_CURRENT_BINARY_DIR}/native/lkg_prep_skip_to_llvm.ll) -set(stage_ll ${CMAKE_CURRENT_BINARY_DIR}/skip_to_llvm.ll) -set(lkg_ll ${LKG_DIR}/skip_to_llvm.ll.bz2) -set(cmd awk '{print >out}; /; -* END OF PREAMBLE -*/{out=\"${stage_ll}\"}' out=/dev/null ${src_ll}) -add_command_target( - stage_skip_to_llvm_ll - OUTPUT ${stage_ll} - COMMAND "${cmd}" - DEPENDS ${src_ll} -) + return() +endif() -set(SRC_RUNTIME ${CMAKE_SOURCE_DIR}/src/runtime) -set(TESTS_RUNTIME ${CMAKE_SOURCE_DIR}/tests/runtime) -set(LKG_RUNTIME ${CMAKE_SOURCE_DIR}/lkg/runtime) +set(PHASE lkg) +add_subdirectory(runtime/native) +set(PHASE) -add_custom_target(build_lkg - DEPENDS stage_skip_to_llvm_ll +# This is needed for the cxx targets defined in this file. +if(CMAKE_COMPILER_IS_GNUCXX AND + CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) + add_compile_options(-faligned-new) +endif() + +recursiveGlobSources(EXTC_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/*-extc.h + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/plugin/skip_plugin.h + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/rvmi/rvmi.h ) -add_custom_target(check_lkg - COMMAND ${TOOLS_DIR}/check_lkg_file ${stage_ll} ${lkg_ll} - COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/CMakeLists.txt ${LKG_RUNTIME}/CMakeLists.txt - COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/native ${LKG_RUNTIME}/native - COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/tools ${LKG_RUNTIME}/tools - DEPENDS stage_skip_to_llvm_ll +set(preamble_ll ${CMAKE_CURRENT_BINARY_DIR}/tmp/preamble.ll) + +add_custom_command( + OUTPUT ${preamble_ll} + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/runtime/tools/gen_preamble + preamble + --compiler ${CLANG_EXECUTABLE} + -o ${preamble_ll} + $<$,$,$>:--ndebug> + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/runtime/tools/gen_preamble ${EXTC_FILES} ) -add_custom_target(update_lkg_compiler - COMMAND ${TOOLS_DIR}/check_lkg_file --update ${stage_ll} ${lkg_ll} - # Using rsync like this copies only if changed - COMMAND rsync -rc ${SRC_RUNTIME}/CMakeLists.txt ${LKG_RUNTIME}/CMakeLists.txt - COMMAND rsync -rc --delete ${SRC_RUNTIME}/native/ ${LKG_RUNTIME}/native - COMMAND rsync -rc --delete ${SRC_RUNTIME}/tools/ ${LKG_RUNTIME}/tools - DEPENDS stage_skip_to_llvm_ll + +add_custom_target(lkg) + +set(ll ${CMAKE_CURRENT_SOURCE_DIR}/skip_to_llvm.ll.bz2) +set(gen_ll ${CMAKE_CURRENT_BINARY_DIR}/tmp/skip_to_llvm.gen.ll) +set(gen_o ${CMAKE_CURRENT_BINARY_DIR}/tmp/skip_to_llvm.gen.o) + +add_custom_command( + OUTPUT ${gen_ll} + COMMAND cat ${preamble_ll} > ${gen_ll} + COMMAND bzcat ${ll} >> ${gen_ll} + DEPENDS ${preamble_ll} ${ll} ) -add_custom_target(update_lkg - DEPENDS update_lkg_compiler +add_custom_command( + OUTPUT ${gen_o} + COMMAND echo Building LKG skip_to_llvm.o + COMMAND ${CLANG_EXECUTABLE} -fPIC -c -o ${gen_o} ${gen_ll} + DEPENDS ${gen_ll} ) -add_custom_target(check_runtimes - COMMAND ${TOOLS_DIR}/check_runtime_file ${SRC_RUNTIME} ${TESTS_RUNTIME} -) -add_dependencies(test check_runtimes) +add_executable(skip_to_llvm.lkg + ${gen_o} + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp + ) +set_target_properties(skip_to_llvm.lkg + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin + OUTPUT_NAME skip_to_llvm + ) +target_link_libraries(skip_to_llvm.lkg skip_runtime.lkg) -add_custom_target(check_pretty_printed - COMMAND ${TOOLS_DIR}/check_pretty_printed ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/pretty_printed.testok - DEPENDS skip_printer -) -add_dependencies(test check_pretty_printed) +#add_command_target( +# skip_to_llvm.lkg +# OUTPUT ${binary_name} +# COMMAND echo Building LKG skip_to_llvm +# COMMAND +# ${CLANG_EXECUTABLE} +# -o ${binary_name} +# ${gen_ll} +# ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp +# `pkg-config --cflags --libs ${CMAKE_CURRENT_BINARY_DIR}/runtime/native/native_cc.pc` +# -pthread +# DEPENDS +# skip_runtime.lkg ${gen_ll} native_cc.lkg +# ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp +# ) -add_custom_target(check_cpp_format - COMMAND ${CMAKE_SOURCE_DIR}/tools/check_cpp_format ${CMAKE_SOURCE_DIR} ${CLANG_EXECUTABLE} -) -add_dependencies(test check_cpp_format) +add_dependencies(lkg skip_to_llvm.lkg) diff --git a/src/runtime/native/include/skip/String.h b/src/runtime/native/include/skip/String.h index 10bc270b2..cce123c4a 100644 --- a/src/runtime/native/include/skip/String.h +++ b/src/runtime/native/include/skip/String.h @@ -33,6 +33,11 @@ struct LongString final : RObj { void verifyInvariants() const; static Type& static_type(); + + private: + // In opt mode the compiler complains about m_data[] if we don't have a + // constructor. + LongString() = default; }; /** diff --git a/src/runtime/native/include/skip/VTable.h b/src/runtime/native/include/skip/VTable.h index 525d205dc..5fa16c7b2 100644 --- a/src/runtime/native/include/skip/VTable.h +++ b/src/runtime/native/include/skip/VTable.h @@ -56,6 +56,9 @@ struct alignas(128) VTable { static constexpr size_t kFrozenBit = 8; static constexpr uintptr_t kFrozenMask = 1ULL << kFrozenBit; + protected: + VTable() = default; + private: // A function pointer - closures put their code pointer here and are // passed their RObj. Normal objects are free to use this as they diff --git a/src/runtime/native/include/skip/detail/jemalloc_common.h b/src/runtime/native/include/skip/detail/jemalloc_common.h index 244d624f5..453d7f143 100644 --- a/src/runtime/native/include/skip/detail/jemalloc_common.h +++ b/src/runtime/native/include/skip/detail/jemalloc_common.h @@ -11,9 +11,17 @@ #error Only include this file from within Arena.cpp #endif +#ifndef __APPLE__ +#define je_mallctlnametomib mallctlnametomib +#define je_mallctlbymib mallctlbymib +#define je_dallocx dallocx +#define je_mallocx mallocx +#endif + #include #include +#define posix_memalign posix_memalign2 #include "jemalloc/jemalloc.h" #if (JEMALLOC_VERSION_MAJOR < 4) || \ @@ -35,7 +43,7 @@ struct Mib { explicit Mib(const char* name) : m_name(name) { count_parts(name); assert(m_size <= MAX_MIB_SIZE); - int res = ::mallctlnametomib(name, &m_parts[0], &m_size); + int res = ::je_mallctlnametomib(name, &m_parts[0], &m_size); if (res) { std::string nameStr(name); throw std::runtime_error("mallctlnametomib(" + nameStr + ") failed"); @@ -80,7 +88,7 @@ void mallctl_by_mib( size_t* oldlenp, const void* newp, size_t newlen) { - int res = ::mallctlbymib( + int res = ::je_mallctlbymib( mibx.m_parts.data(), mibx.m_size, oldp, oldlenp, (void*)newp, newlen); if (res) { std::string nameStr(mibx.m_name); diff --git a/src/runtime/native/include/skip/objects.h b/src/runtime/native/include/skip/objects.h index 001bbd27b..af7a1c061 100644 --- a/src/runtime/native/include/skip/objects.h +++ b/src/runtime/native/include/skip/objects.h @@ -104,6 +104,7 @@ struct RObjMetadata { } protected: + RObjMetadata() = default; RObjMetadata(const RObjMetadata&) = default; }; @@ -408,6 +409,7 @@ struct AObjMetadata { explicit AObjMetadata(const VTableRef vtable) : m_vtable(vtable) {} protected: + AObjMetadata() = default; AObjMetadata(const AObjMetadata&) = default; }; diff --git a/src/runtime/native/src/Arena.cpp b/src/runtime/native/src/Arena.cpp index e4176cc37..15ce89648 100644 --- a/src/runtime/native/src/Arena.cpp +++ b/src/runtime/native/src/Arena.cpp @@ -83,7 +83,7 @@ struct ArenaData : private je::ChunkHooks { // All obstack allocations must be exactly an obstack chunk. assert((kind() != Arena::Kind::obstack) || (sz == Obstack::kChunkSize)); - void* p = ::mallocx( + void* p = ::je_mallocx( sz, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id) | MALLOCX_ALIGN(align)); @@ -93,7 +93,7 @@ struct ArenaData : private je::ChunkHooks { } void free(void* p) { - ::dallocx( + ::je_dallocx( p, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id)); } diff --git a/src/runtime/native/src/Obstack.cpp b/src/runtime/native/src/Obstack.cpp index ba3aa0bf4..5bcffa95e 100644 --- a/src/runtime/native/src/Obstack.cpp +++ b/src/runtime/native/src/Obstack.cpp @@ -272,10 +272,6 @@ struct LargeObjHeader final : private skip::noncopyable { const size_t numAlignBits = 14; -#if !defined(__APPLE__) -static_assert(std::log2(kChunkSize) == numAlignBits); -#endif - struct Chunk; struct ChunkHeader { explicit ChunkHeader(Chunk* prev, size_t startingGeneration) diff --git a/src/runtime/native/src/sk_standalone.cpp b/src/runtime/native/src/sk_standalone.cpp index 010832afe..15cbc8869 100644 --- a/src/runtime/native/src/sk_standalone.cpp +++ b/src/runtime/native/src/sk_standalone.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -28,8 +29,9 @@ #include "skip/memoize.h" #include "skip/parallel.h" +#ifdef __APPLE__ namespace { -void terminate() { +void osxTerminate() { try { std::exception_ptr eptr = std::current_exception(); if (eptr) { @@ -41,8 +43,15 @@ void terminate() { } std::cerr << "*** Stack trace:" << std::endl; skip::printStackTrace(); + // We used to call abort(), but Folly installs the Google glog fatal handler, + // which dumps a less-than-useful stack trace on OS/X. + // Let's just exit explicitly with a failure exit code here to reduce + // confusion. + std::cerr << "*** PID " << getpid() << " exiting" << std::endl; + exit(1); } } // namespace +#endif // __APPLE__ extern "C" { extern void skip_main(void); @@ -56,7 +65,10 @@ size_t WEAK_LINKAGE SKIPC_buildHash(void) { } // extern "C" int main(int argc, char** argv) { - std::set_terminate(terminate); +#ifdef __APPLE__ + std::set_terminate(osxTerminate); +#endif + skip::initializeSkip(argc, argv); auto process = skip::Process::make(); diff --git a/src/runtime/native/src/util.cpp b/src/runtime/native/src/util.cpp index f0f0bccf6..45ff492d9 100644 --- a/src/runtime/native/src/util.cpp +++ b/src/runtime/native/src/util.cpp @@ -46,9 +46,11 @@ void printStackTrace() { if (pc == 0) { break; } + fprintf(stderr, " 0x%.16lu:", pc); + char sym[256]; if (unw_get_proc_name(&cursor, sym, sizeof(sym), &offset) == 0) { - fprintf(stderr, " %s\n", sym); + fprintf(stderr, " %s + 0x%lu\n", sym, offset); } else { fprintf( stderr, " -- error: unable to obtain symbol name for this frame\n"); @@ -223,7 +225,7 @@ void SpinLock::unlock() { uint8_t oldBits = m_bits.load(); const uint8_t newBits = oldBits & ~1; - if (oldBits & 1 == 0) { + if ((oldBits & 1) == 0) { fprintf(stderr, "Internal error: spinlock double unlock\n"); exit(70); } @@ -236,7 +238,7 @@ void SpinLock::unlock() { fprintf( stderr, "Internal error: spinlock in an impossible state %d\n", - (int)m_bits.load() & 2 != 0); + ((unsigned int)m_bits.load() & 2) != 0); exit(70); } } diff --git a/src/runtime/tools/common.py b/src/runtime/tools/common.py index 4d68b25ff..16f37c71d 100644 --- a/src/runtime/tools/common.py +++ b/src/runtime/tools/common.py @@ -77,7 +77,6 @@ def commonArguments(needsBackend=True, backend=None): parser.add_argument('--profile', help='Turn on profiling metrics and dump' + ' them to a file') parser.add_argument('--update-baseline', action='store_true') - parser.add_argument('--embedded64', action='store_true') parser.add_argument('--keep-temp', action='store_true', default=os.environ.get('KEEP_TEMP', '') != '') parser.add_argument('--print-skip-to-llvm', @@ -582,7 +581,7 @@ def write_file(self, name, data, limit=None): if data: print(' %s%s:%s' % (RED, name, NORMAL)) if limit: - lines = data.encode().split('\n') + lines = data.split('\n') if len(lines) > limit[0]: lines = [''] + lines[-limit[0]:] lines = map(lambda x: x if (len(x) < limit[1]) else (x[:limit[1] - 3] + '...'), lines) diff --git a/src/runtime/tools/skip_native_compile.py b/src/runtime/tools/skip_native_compile.py index 097a91fdb..1bf154ac9 100755 --- a/src/runtime/tools/skip_native_compile.py +++ b/src/runtime/tools/skip_native_compile.py @@ -41,8 +41,6 @@ def compile(stack, args): PROFILE_FLAGS = ('--profile', args.profile) if args.profile else () - EMBEDDED_FLAGS = ('--embedded64',) if args.embedded64 else () - PARALLEL_FLAGS = (('--parallel', str(args.parallel)) if args.parallel is not None else ()) @@ -53,7 +51,7 @@ def compile(stack, args): '--preamble', args.preamble, '--output', objFile.name, '--via-backend', args.via_backend, - ) + PROFILE_FLAGS + EMBEDDED_FLAGS + PARALLEL_FLAGS + tuple(args.srcs) + SKFLAGS + PRINT_SKIP_TO_LLVM + ) + PROFILE_FLAGS + PARALLEL_FLAGS + tuple(args.srcs) + SKFLAGS + PRINT_SKIP_TO_LLVM logger.debug('Running: ' + ' '.join(map(pipes.quote, cmd))) common.callHelper(cmd) diff --git a/src/runtime/tools/skip_to_native b/src/runtime/tools/skip_to_native index 7b2f49e17..68163dfac 100755 --- a/src/runtime/tools/skip_to_native +++ b/src/runtime/tools/skip_to_native @@ -446,9 +446,6 @@ def main(stack): if args.preamble: extraOpts += ['--preamble', args.preamble] - if args.embedded64: - extraOpts += ['--embedded64'] - CC = findClang(args) LLC = os.environ.get('LLC', 'llc') diff --git a/src/server/skipServer.sk b/src/server/skipServer.sk index eaef68b9e..d3051fe0d 100644 --- a/src/server/skipServer.sk +++ b/src/server/skipServer.sk @@ -29,9 +29,6 @@ untracked fun writeStatus(status: String): void { untracked fun compileLoop(target: String): void { outputs = kConfig.mainConfig.outputFiles; - if (outputs.size() != 1) { - invariant_violation("skip_server expects exactly one output file"); - }; skdir = Path.dirname(outputs[0]); command = ""; errors = Vector[]; diff --git a/tests/runtime/native/include/skip/detail/jemalloc_common.h b/tests/runtime/native/include/skip/detail/jemalloc_common.h index 244d624f5..453d7f143 100644 --- a/tests/runtime/native/include/skip/detail/jemalloc_common.h +++ b/tests/runtime/native/include/skip/detail/jemalloc_common.h @@ -11,9 +11,17 @@ #error Only include this file from within Arena.cpp #endif +#ifndef __APPLE__ +#define je_mallctlnametomib mallctlnametomib +#define je_mallctlbymib mallctlbymib +#define je_dallocx dallocx +#define je_mallocx mallocx +#endif + #include #include +#define posix_memalign posix_memalign2 #include "jemalloc/jemalloc.h" #if (JEMALLOC_VERSION_MAJOR < 4) || \ @@ -35,7 +43,7 @@ struct Mib { explicit Mib(const char* name) : m_name(name) { count_parts(name); assert(m_size <= MAX_MIB_SIZE); - int res = ::mallctlnametomib(name, &m_parts[0], &m_size); + int res = ::je_mallctlnametomib(name, &m_parts[0], &m_size); if (res) { std::string nameStr(name); throw std::runtime_error("mallctlnametomib(" + nameStr + ") failed"); @@ -80,7 +88,7 @@ void mallctl_by_mib( size_t* oldlenp, const void* newp, size_t newlen) { - int res = ::mallctlbymib( + int res = ::je_mallctlbymib( mibx.m_parts.data(), mibx.m_size, oldp, oldlenp, (void*)newp, newlen); if (res) { std::string nameStr(mibx.m_name); diff --git a/tests/runtime/native/src/Arena.cpp b/tests/runtime/native/src/Arena.cpp index e4176cc37..15ce89648 100644 --- a/tests/runtime/native/src/Arena.cpp +++ b/tests/runtime/native/src/Arena.cpp @@ -83,7 +83,7 @@ struct ArenaData : private je::ChunkHooks { // All obstack allocations must be exactly an obstack chunk. assert((kind() != Arena::Kind::obstack) || (sz == Obstack::kChunkSize)); - void* p = ::mallocx( + void* p = ::je_mallocx( sz, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id) | MALLOCX_ALIGN(align)); @@ -93,7 +93,7 @@ struct ArenaData : private je::ChunkHooks { } void free(void* p) { - ::dallocx( + ::je_dallocx( p, MALLOCX_ARENA(arenaIndex()) | MALLOCX_TCACHE(m_arenaTCache.m_id)); } diff --git a/tests/runtime/native/src/Obstack.cpp b/tests/runtime/native/src/Obstack.cpp index ba3aa0bf4..5bcffa95e 100644 --- a/tests/runtime/native/src/Obstack.cpp +++ b/tests/runtime/native/src/Obstack.cpp @@ -272,10 +272,6 @@ struct LargeObjHeader final : private skip::noncopyable { const size_t numAlignBits = 14; -#if !defined(__APPLE__) -static_assert(std::log2(kChunkSize) == numAlignBits); -#endif - struct Chunk; struct ChunkHeader { explicit ChunkHeader(Chunk* prev, size_t startingGeneration) diff --git a/tests/runtime/native/src/util.cpp b/tests/runtime/native/src/util.cpp index f0f0bccf6..ab633ac7a 100644 --- a/tests/runtime/native/src/util.cpp +++ b/tests/runtime/native/src/util.cpp @@ -223,7 +223,7 @@ void SpinLock::unlock() { uint8_t oldBits = m_bits.load(); const uint8_t newBits = oldBits & ~1; - if (oldBits & 1 == 0) { + if ((oldBits & 1) == 0) { fprintf(stderr, "Internal error: spinlock double unlock\n"); exit(70); } @@ -236,7 +236,7 @@ void SpinLock::unlock() { fprintf( stderr, "Internal error: spinlock in an impossible state %d\n", - (int)m_bits.load() & 2 != 0); + ((unsigned int)m_bits.load() & 2) != 0); exit(70); } } diff --git a/third-party/libunwind b/third-party/libunwind new file mode 160000 index 000000000..49d2bf0e5 --- /dev/null +++ b/third-party/libunwind @@ -0,0 +1 @@ +Subproject commit 49d2bf0e55c1b4ff90371e8e6fd9ac88c3d26834 diff --git a/third-party/pcre/src/Makefile.in b/third-party/pcre/src/Makefile.in index 9c8ccecbd..e260cc9ba 100644 --- a/third-party/pcre/src/Makefile.in +++ b/third-party/pcre/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.15.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2017 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -251,7 +251,7 @@ libpcre_la_OBJECTS = $(am_libpcre_la_OBJECTS) \ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = +am__v_lt_1 = libpcre_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre_la_CFLAGS) \ $(CFLAGS) $(libpcre_la_LDFLAGS) $(LDFLAGS) -o $@ @@ -449,11 +449,11 @@ am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -467,7 +467,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -475,7 +475,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ @@ -485,7 +485,7 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = +am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ @@ -493,7 +493,7 @@ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = +am__v_CXXLD_1 = SOURCES = $(libpcre_la_SOURCES) $(nodist_libpcre_la_SOURCES) \ $(libpcre16_la_SOURCES) $(nodist_libpcre16_la_SOURCES) \ $(libpcre32_la_SOURCES) $(nodist_libpcre32_la_SOURCES) \ @@ -903,6 +903,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -988,7 +989,7 @@ dist_noinst_DATA = $(pcrecpp_html) # The Libtool libraries to install. We'll add to this later. lib_LTLIBRARIES = $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_20) $(am__append_22) -check_SCRIPTS = +check_SCRIPTS = dist_noinst_SCRIPTS = RunTest $(am__append_39) # Additional files to delete on 'make clean' and 'make maintainer-clean'. @@ -1110,7 +1111,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE8_TRUE@libpcre_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) \ @WITH_PCRE8_TRUE@ $(am__append_7) $(am__append_10) -@WITH_PCRE8_TRUE@libpcre_la_LIBADD = +@WITH_PCRE8_TRUE@libpcre_la_LIBADD = @WITH_PCRE8_TRUE@nodist_libpcre_la_SOURCES = \ @WITH_PCRE8_TRUE@ pcre_chartables.c @@ -1141,7 +1142,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE16_TRUE@libpcre16_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE16_TRUE@ $(AM_CFLAGS) $(am__append_8) \ @WITH_PCRE16_TRUE@ $(am__append_11) -@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = +@WITH_PCRE16_TRUE@libpcre16_la_LIBADD = @WITH_PCRE16_TRUE@nodist_libpcre16_la_SOURCES = \ @WITH_PCRE16_TRUE@ pcre_chartables.c @@ -1172,7 +1173,7 @@ BUILT_SOURCES = pcre_chartables.c @WITH_PCRE32_TRUE@libpcre32_la_CFLAGS = $(VISIBILITY_CFLAGS) \ @WITH_PCRE32_TRUE@ $(AM_CFLAGS) $(am__append_9) \ @WITH_PCRE32_TRUE@ $(am__append_12) -@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = +@WITH_PCRE32_TRUE@libpcre32_la_LIBADD = @WITH_PCRE32_TRUE@nodist_libpcre32_la_SOURCES = \ @WITH_PCRE32_TRUE@ pcre_chartables.c @@ -1313,8 +1314,8 @@ pcrecpp_man = doc/pcrecpp.3 @WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION) @WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info @WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage -@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = -@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS = +@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS = @WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V)) @WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY)) @WITH_GCOV_TRUE@coverage_quiet_0 = --quiet @@ -1364,7 +1365,7 @@ config.h: stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h -$(srcdir)/config.h.in: $(am__configure_deps) +$(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ @@ -1425,19 +1426,19 @@ clean-libLTLIBRARIES: rm -f $${locs}; \ } -libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) +libpcre.la: $(libpcre_la_OBJECTS) $(libpcre_la_DEPENDENCIES) $(EXTRA_libpcre_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre_la_LINK) $(am_libpcre_la_rpath) $(libpcre_la_OBJECTS) $(libpcre_la_LIBADD) $(LIBS) -libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) +libpcre16.la: $(libpcre16_la_OBJECTS) $(libpcre16_la_DEPENDENCIES) $(EXTRA_libpcre16_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre16_la_LINK) $(am_libpcre16_la_rpath) $(libpcre16_la_OBJECTS) $(libpcre16_la_LIBADD) $(LIBS) -libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) +libpcre32.la: $(libpcre32_la_OBJECTS) $(libpcre32_la_DEPENDENCIES) $(EXTRA_libpcre32_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcre32_la_LINK) $(am_libpcre32_la_rpath) $(libpcre32_la_OBJECTS) $(libpcre32_la_LIBADD) $(LIBS) -libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) +libpcrecpp.la: $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_DEPENDENCIES) $(EXTRA_libpcrecpp_la_DEPENDENCIES) $(AM_V_CXXLD)$(libpcrecpp_la_LINK) $(am_libpcrecpp_la_rpath) $(libpcrecpp_la_OBJECTS) $(libpcrecpp_la_LIBADD) $(LIBS) -libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) +libpcreposix.la: $(libpcreposix_la_OBJECTS) $(libpcreposix_la_DEPENDENCIES) $(EXTRA_libpcreposix_la_DEPENDENCIES) $(AM_V_CCLD)$(libpcreposix_la_LINK) $(am_libpcreposix_la_rpath) $(libpcreposix_la_OBJECTS) $(libpcreposix_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @@ -1498,31 +1499,31 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) +dftables$(EXEEXT): $(dftables_OBJECTS) $(dftables_DEPENDENCIES) $(EXTRA_dftables_DEPENDENCIES) @rm -f dftables$(EXEEXT) $(AM_V_CCLD)$(LINK) $(dftables_OBJECTS) $(dftables_LDADD) $(LIBS) -pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) +pcre_jit_test$(EXEEXT): $(pcre_jit_test_OBJECTS) $(pcre_jit_test_DEPENDENCIES) $(EXTRA_pcre_jit_test_DEPENDENCIES) @rm -f pcre_jit_test$(EXEEXT) $(AM_V_CCLD)$(pcre_jit_test_LINK) $(pcre_jit_test_OBJECTS) $(pcre_jit_test_LDADD) $(LIBS) -pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) +pcre_scanner_unittest$(EXEEXT): $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_DEPENDENCIES) $(EXTRA_pcre_scanner_unittest_DEPENDENCIES) @rm -f pcre_scanner_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_scanner_unittest_LINK) $(pcre_scanner_unittest_OBJECTS) $(pcre_scanner_unittest_LDADD) $(LIBS) -pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) +pcre_stringpiece_unittest$(EXEEXT): $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_DEPENDENCIES) $(EXTRA_pcre_stringpiece_unittest_DEPENDENCIES) @rm -f pcre_stringpiece_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcre_stringpiece_unittest_LINK) $(pcre_stringpiece_unittest_OBJECTS) $(pcre_stringpiece_unittest_LDADD) $(LIBS) -pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) +pcrecpp_unittest$(EXEEXT): $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_DEPENDENCIES) $(EXTRA_pcrecpp_unittest_DEPENDENCIES) @rm -f pcrecpp_unittest$(EXEEXT) $(AM_V_CXXLD)$(pcrecpp_unittest_LINK) $(pcrecpp_unittest_OBJECTS) $(pcrecpp_unittest_LDADD) $(LIBS) -pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) +pcregrep$(EXEEXT): $(pcregrep_OBJECTS) $(pcregrep_DEPENDENCIES) $(EXTRA_pcregrep_DEPENDENCIES) @rm -f pcregrep$(EXEEXT) $(AM_V_CCLD)$(pcregrep_LINK) $(pcregrep_OBJECTS) $(pcregrep_LDADD) $(LIBS) -pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) +pcretest$(EXEEXT): $(pcretest_OBJECTS) $(pcretest_DEPENDENCIES) $(EXTRA_pcretest_DEPENDENCIES) @rm -f pcretest$(EXEEXT) $(AM_V_CCLD)$(pcretest_LINK) $(pcretest_OBJECTS) $(pcretest_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @@ -3003,8 +3004,8 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -@WITH_GCOV_FALSE@distclean-local: @WITH_GCOV_FALSE@clean-local: +@WITH_GCOV_FALSE@distclean-local: clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ diff --git a/third-party/pcre/src/aclocal.m4 b/third-party/pcre/src/aclocal.m4 index c2b462119..e39778802 100644 --- a/third-party/pcre/src/aclocal.m4 +++ b/third-party/pcre/src/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.15.1 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,9 +20,9 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 12 (pkg-config-0.29.2) - +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -63,7 +63,7 @@ dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.2]) +[m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -164,7 +164,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $2]) +AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -174,11 +174,11 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -195,7 +195,7 @@ installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -296,7 +296,7 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# Copyright (C) 2002-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -311,7 +311,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15], [], +m4_if([$1], [1.15.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -327,12 +327,12 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15])dnl +[AM_AUTOMAKE_VERSION([1.15.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -394,7 +394,7 @@ AC_SUBST([AR])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -446,7 +446,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -477,7 +477,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -668,7 +668,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -744,7 +744,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -941,7 +941,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -962,7 +962,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# Copyright (C) 2003-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -983,7 +983,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1033,7 +1033,7 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# Copyright (C) 1997-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1072,7 +1072,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1101,7 +1101,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1148,7 +1148,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1167,7 +1167,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1248,7 +1248,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# Copyright (C) 2009-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1308,7 +1308,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# Copyright (C) 2001-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1336,7 +1336,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# Copyright (C) 2006-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1355,7 +1355,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# Copyright (C) 2004-2017 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/third-party/pcre/src/config.h.in b/third-party/pcre/src/config.h.in index 0b2f45d4d..9fde4021f 100644 --- a/third-party/pcre/src/config.h.in +++ b/third-party/pcre/src/config.h.in @@ -84,9 +84,6 @@ sure both macros are undefined; an emulation function will then be used. */ /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD @@ -102,6 +99,9 @@ sure both macros are undefined; an emulation function will then be used. */ /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -289,7 +289,9 @@ sure both macros are undefined; an emulation function will then be used. */ your system. */ #undef PTHREAD_CREATE_JOINABLE -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to any value to enable support for Just-In-Time compiling. */ diff --git a/third-party/pcre/src/configure b/third-party/pcre/src/configure index 6fe8854a9..7f62ada68 100755 --- a/third-party/pcre/src/configure +++ b/third-party/pcre/src/configure @@ -793,6 +793,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -916,6 +917,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1168,6 +1170,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1305,7 +1316,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1458,6 +1469,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -19872,8 +19884,8 @@ $as_echo "no" >&6; } fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for valgrind" >&5 -$as_echo_n "checking for valgrind... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 +$as_echo_n "checking for VALGRIND... " >&6; } if test -n "$VALGRIND_CFLAGS"; then pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" @@ -19913,7 +19925,7 @@ fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -19940,7 +19952,7 @@ Alternatively, you may set the environment variables VALGRIND_CFLAGS and VALGRIND_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} diff --git a/third-party/pcre/src/ltmain.sh b/third-party/pcre/src/ltmain.sh old mode 100644 new mode 100755