From 5e64ad4c1b5a815cae92a9481cf878dc7d89e33172f07b3ba8576e8b20cbdd71 Mon Sep 17 00:00:00 2001 From: Martin Pluskal Date: Thu, 31 Jan 2019 13:51:25 +0000 Subject: [PATCH] Accepting request 670217 from home:mathletic:branches:devel:tools:building Update to version 1.9.0 OBS-URL: https://build.opensuse.org/request/show/670217 OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ninja?expand=0&rev=43 --- ninja-1.8.2.tar.gz | 3 - ninja-1.9.0.tar.gz | 3 + ninja-64bit-timestamps.patch | 186 ----------------------------------- ninja.changes | 9 ++ ninja.spec | 4 +- 5 files changed, 13 insertions(+), 192 deletions(-) delete mode 100644 ninja-1.8.2.tar.gz create mode 100644 ninja-1.9.0.tar.gz delete mode 100644 ninja-64bit-timestamps.patch diff --git a/ninja-1.8.2.tar.gz b/ninja-1.8.2.tar.gz deleted file mode 100644 index b7e1606..0000000 --- a/ninja-1.8.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86b8700c3d0880c2b44c2ff67ce42774aaf8c28cbf57725cb881569288c1c6f4 -size 185226 diff --git a/ninja-1.9.0.tar.gz b/ninja-1.9.0.tar.gz new file mode 100644 index 0000000..4af2975 --- /dev/null +++ b/ninja-1.9.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d7ec75828f8d3fd1a0c2f31b5b0cea780cdfe1031359228c428c1a48bfcd5b9 +size 190860 diff --git a/ninja-64bit-timestamps.patch b/ninja-64bit-timestamps.patch deleted file mode 100644 index c7e7cd9..0000000 --- a/ninja-64bit-timestamps.patch +++ /dev/null @@ -1,186 +0,0 @@ -commit 5fcdcf95cb62ab3d593c36ef90df27cef63874a1 -Author: Elliott Sales de Andrade -Date: Sat Dec 31 03:12:51 2016 -0500 - - Make TimeStamp 64-bit. - - This prepares it for higher-resolution timestamps. - -Index: ninja-1.8.2/src/build_log.cc -=================================================================== ---- ninja-1.8.2.orig/src/build_log.cc -+++ ninja-1.8.2/src/build_log.cc -@@ -353,7 +353,7 @@ BuildLog::LogEntry* BuildLog::LookupByOu - } - - bool BuildLog::WriteEntry(FILE* f, const LogEntry& entry) { -- return fprintf(f, "%d\t%d\t%d\t%s\t%" PRIx64 "\n", -+ return fprintf(f, "%d\t%d\t%" PRId64 "\t%s\t%" PRIx64 "\n", - entry.start_time, entry.end_time, entry.mtime, - entry.output.c_str(), entry.command_hash) > 0; - } -Index: ninja-1.8.2/src/deps_log.cc -=================================================================== ---- ninja-1.8.2.orig/src/deps_log.cc -+++ ninja-1.8.2/src/deps_log.cc -@@ -30,7 +30,7 @@ - // The version is stored as 4 bytes after the signature and also serves as a - // byte order mark. Signature and version combined are 16 bytes long. - const char kFileSignature[] = "# ninjadeps\n"; --const int kCurrentVersion = 3; -+const int kCurrentVersion = 4; - - // Record size is currently limited to less than the full 32 bit, due to - // internal buffers having to have this size. -@@ -124,7 +124,7 @@ bool DepsLog::RecordDeps(Node* node, Tim - return true; - - // Update on-disk representation. -- unsigned size = 4 * (1 + 1 + node_count); -+ unsigned size = 4 * (1 + 2 + node_count); - if (size > kMaxRecordSize) { - errno = ERANGE; - return false; -@@ -135,8 +135,7 @@ bool DepsLog::RecordDeps(Node* node, Tim - int id = node->id(); - if (fwrite(&id, 4, 1, file_) < 1) - return false; -- int timestamp = mtime; -- if (fwrite(×tamp, 4, 1, file_) < 1) -+ if (fwrite(&mtime, 8, 1, file_) < 1) - return false; - for (int i = 0; i < node_count; ++i) { - id = nodes[i]->id(); -@@ -218,9 +217,9 @@ bool DepsLog::Load(const string& path, S - assert(size % 4 == 0); - int* deps_data = reinterpret_cast(buf); - int out_id = deps_data[0]; -- int mtime = deps_data[1]; -- deps_data += 2; -- int deps_count = (size / 4) - 2; -+ TimeStamp mtime = reinterpret_cast(&deps_data[1])[0]; -+ deps_data += 3; -+ int deps_count = (size / 4) - 3; - - Deps* deps = new Deps(mtime, deps_count); - for (int i = 0; i < deps_count; ++i) { -Index: ninja-1.8.2/src/deps_log.h -=================================================================== ---- ninja-1.8.2.orig/src/deps_log.h -+++ ninja-1.8.2/src/deps_log.h -@@ -57,7 +57,8 @@ struct State; - /// one's complement of the expected index of the record (to detect - /// concurrent writes of multiple ninja processes to the log). - /// dependency records are an array of 4-byte integers --/// [output path id, output path mtime, input path id, input path id...] -+/// [output path id, output path mtime (8-byte int), input path id, -+/// input path id...] - /// (The mtime is compared against the on-disk output path mtime - /// to verify the stored data is up-to-date.) - /// If two records reference the same output the latter one in the file -@@ -75,10 +76,10 @@ struct DepsLog { - - // Reading (startup-time) interface. - struct Deps { -- Deps(int mtime, int node_count) -+ Deps(int64_t mtime, int node_count) - : mtime(mtime), node_count(node_count), nodes(new Node*[node_count]) {} - ~Deps() { delete [] nodes; } -- int mtime; -+ TimeStamp mtime; - int node_count; - Node** nodes; - }; -Index: ninja-1.8.2/src/graph.cc -=================================================================== ---- ninja-1.8.2.orig/src/graph.cc -+++ ninja-1.8.2/src/graph.cc -@@ -233,7 +233,7 @@ bool DependencyScan::RecomputeOutputDirt - - if (output_mtime < most_recent_input->mtime()) { - EXPLAIN("%soutput %s older than most recent input %s " -- "(%d vs %d)", -+ "(%" PRId64 " vs %" PRId64 ")", - used_restat ? "restat of " : "", output->path().c_str(), - most_recent_input->path().c_str(), - output_mtime, most_recent_input->mtime()); -@@ -257,7 +257,7 @@ bool DependencyScan::RecomputeOutputDirt - // mtime of the most recent input. This can occur even when the mtime - // on disk is newer if a previous run wrote to the output file but - // exited with an error or was interrupted. -- EXPLAIN("recorded mtime of %s older than most recent input %s (%d vs %d)", -+ EXPLAIN("recorded mtime of %s older than most recent input %s (%" PRId64 " vs %" PRId64 ")", - output->path().c_str(), most_recent_input->path().c_str(), - entry->mtime, most_recent_input->mtime()); - return true; -@@ -441,7 +441,7 @@ string Node::PathDecanonicalized(const s - } - - void Node::Dump(const char* prefix) const { -- printf("%s <%s 0x%p> mtime: %d%s, (:%s), ", -+ printf("%s <%s 0x%p> mtime: %" PRId64 "%s, (:%s), ", - prefix, path().c_str(), this, - mtime(), mtime() ? "" : " (:missing)", - dirty() ? " dirty" : " clean"); -@@ -547,7 +547,7 @@ bool ImplicitDepLoader::LoadDepsFromLog( - - // Deps are invalid if the output is newer than the deps. - if (output->mtime() > deps->mtime) { -- EXPLAIN("stored deps info out of date for '%s' (%d vs %d)", -+ EXPLAIN("stored deps info out of date for '%s' (%" PRId64 " vs %" PRId64 ")", - output->path().c_str(), deps->mtime, output->mtime()); - return false; - } -Index: ninja-1.8.2/src/ninja.cc -=================================================================== ---- ninja-1.8.2.orig/src/ninja.cc -+++ ninja-1.8.2/src/ninja.cc -@@ -494,7 +494,7 @@ int NinjaMain::ToolDeps(const Options* o - TimeStamp mtime = disk_interface.Stat((*it)->path(), &err); - if (mtime == -1) - Error("%s", err.c_str()); // Log and ignore Stat() errors; -- printf("%s: #deps %d, deps mtime %d (%s)\n", -+ printf("%s: #deps %d, deps mtime %" PRId64 " (%s)\n", - (*it)->path().c_str(), deps->node_count, deps->mtime, - (!mtime || mtime > deps->mtime ? "STALE":"VALID")); - for (int i = 0; i < deps->node_count; ++i) -Index: ninja-1.8.2/src/timestamp.h -=================================================================== ---- ninja-1.8.2.orig/src/timestamp.h -+++ ninja-1.8.2/src/timestamp.h -@@ -17,8 +17,8 @@ - - // When considering file modification times we only care to compare - // them against one another -- we never convert them to an absolute --// real time. On POSIX we use time_t (seconds since epoch) and on --// Windows we use a different value. Both fit in an int. --typedef int TimeStamp; -+// real time. On POSIX we use timespec (seconds&nanoseconds since epoch) -+// and on Windows we use a different value. Both fit in an int64. -+typedef int64_t TimeStamp; - - #endif // NINJA_TIMESTAMP_H_ -Index: ninja-1.8.2/src/util.h -=================================================================== ---- ninja-1.8.2.orig/src/util.h -+++ ninja-1.8.2/src/util.h -@@ -18,6 +18,7 @@ - #ifdef _WIN32 - #include "win32port.h" - #else -+#include - #include - #endif - -Index: ninja-1.8.2/src/win32port.h -=================================================================== ---- ninja-1.8.2.orig/src/win32port.h -+++ ninja-1.8.2/src/win32port.h -@@ -23,6 +23,7 @@ typedef unsigned long long uint64_t; - - // printf format specifier for uint64_t, from C99. - #ifndef PRIu64 -+#define PRId64 "I64d" - #define PRIu64 "I64u" - #define PRIx64 "I64x" - #endif diff --git a/ninja.changes b/ninja.changes index 62f55a7..9056e1f 100644 --- a/ninja.changes +++ b/ninja.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Jan 30 20:23:01 UTC 2019 - Christoph G + +- Update to version 1.9.0: + * High-resolution timestamps +- Update ninja-disable-maxprocs-test.patch to include + upstream changes +- Drop ninja-64bit-timestamps.patch as it is part of 1.9.0 + ------------------------------------------------------------------- Mon Jan 14 13:27:10 UTC 2019 - Adam Mizerski diff --git a/ninja.spec b/ninja.spec index e992807..269b5e0 100644 --- a/ninja.spec +++ b/ninja.spec @@ -17,7 +17,7 @@ Name: ninja -Version: 1.8.2 +Version: 1.9.0 Release: 0 Summary: A small build system closest in spirit to Make License: Apache-2.0 @@ -26,7 +26,6 @@ Url: https://ninja-build.org/ Source0: https://github.com/ninja-build/ninja/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: macros.ninja Patch1: ninja-disable-maxprocs-test.patch -Patch2: ninja-64bit-timestamps.patch BuildRequires: gcc-c++ BuildRequires: python3-base BuildRequires: re2c @@ -39,7 +38,6 @@ building them, quickly. %prep %setup -q %patch1 -%patch2 -p1 %build export CFLAGS="%{optflags}"