diff --git a/local.mk b/local.mk index 25957d92..160057ad 100644 --- a/local.mk +++ b/local.mk @@ -6,7 +6,8 @@ dist-files += configure config.h.in nix.spec clean-files += Makefile.config -GLOBAL_CXXFLAGS += -I . -I src -I src/libutil -I src/libstore -I src/libmain -I src/libexpr +GLOBAL_CXXFLAGS += -I . -I src -I src/libutil -I src/libstore -I src/libmain -I src/libexpr \ + -Wno-unneeded-internal-declaration $(foreach i, config.h $(call rwildcard, src/lib*, *.hh) src/nix-store/serve-protocol.hh, \ $(eval $(call install-file-in, $(i), $(includedir)/nix, 0644))) diff --git a/perl/local.mk b/perl/local.mk index 132676f5..ed49e3e6 100644 --- a/perl/local.mk +++ b/perl/local.mk @@ -24,7 +24,9 @@ ifeq ($(perlbindings), yes) Store_CXXFLAGS = \ -I$(shell $(perl) -e 'use Config; print $$Config{archlibexp};')/CORE \ - -D_FILE_OFFSET_BITS=64 -Wno-unused-variable -Wno-literal-suffix -Wno-reserved-user-defined-literal + -D_FILE_OFFSET_BITS=64 \ + -Wno-unknown-warning-option -Wno-unused-variable -Wno-literal-suffix \ + -Wno-reserved-user-defined-literal -Wno-duplicate-decl-specifier -Wno-pointer-bool-conversion Store_LIBS = libstore libutil diff --git a/src/libexpr/local.mk b/src/libexpr/local.mk index 4c1f4de1..d1b1987f 100644 --- a/src/libexpr/local.mk +++ b/src/libexpr/local.mk @@ -6,6 +6,8 @@ libexpr_DIR := $(d) libexpr_SOURCES := $(wildcard $(d)/*.cc) $(d)/lexer-tab.cc $(d)/parser-tab.cc +libexpr_CXXFLAGS := -Wno-deprecated-register + libexpr_LIBS = libutil libstore libformat libexpr_LDFLAGS = -ldl diff --git a/src/libmain/shared.hh b/src/libmain/shared.hh index a7e6ef76..65b288e1 100644 --- a/src/libmain/shared.hh +++ b/src/libmain/shared.hh @@ -88,7 +88,7 @@ extern volatile ::sig_atomic_t blockInt; string showBytes(unsigned long long bytes); -class GCResults; +struct GCResults; struct PrintFreed { diff --git a/src/libstore/build.cc b/src/libstore/build.cc index c1163e63..70278a87 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -806,7 +806,7 @@ public: void timedOut() override; - string key() + string key() override { /* Ensure that derivations get built in order of their name, i.e. a derivation named "aardvark" always comes before @@ -815,7 +815,7 @@ public: return "b$" + storePathToName(drvPath) + "$" + drvPath; } - void work(); + void work() override; Path getDrvPath() { @@ -863,8 +863,8 @@ private: void deleteTmpDir(bool force); /* Callback used by the worker to write to the log. */ - void handleChildOutput(int fd, const string & data); - void handleEOF(int fd); + void handleChildOutput(int fd, const string & data) override; + void handleEOF(int fd) override; /* Return the set of (in)valid paths. */ PathSet checkPathValidity(bool returnValid, bool checkHash); diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh index 105f3592..ebdf19bf 100644 --- a/src/libstore/local-store.hh +++ b/src/libstore/local-store.hh @@ -98,41 +98,41 @@ public: /* Implementations of abstract store API methods. */ - bool isValidPath(const Path & path); + bool isValidPath(const Path & path) override; - PathSet queryValidPaths(const PathSet & paths); + PathSet queryValidPaths(const PathSet & paths) override; - PathSet queryAllValidPaths(); + PathSet queryAllValidPaths() override; - ValidPathInfo queryPathInfo(const Path & path); + ValidPathInfo queryPathInfo(const Path & path) override; - Hash queryPathHash(const Path & path); + Hash queryPathHash(const Path & path) override; - void queryReferences(const Path & path, PathSet & references); + void queryReferences(const Path & path, PathSet & references) override; - void queryReferrers(const Path & path, PathSet & referrers); + void queryReferrers(const Path & path, PathSet & referrers) override; - Path queryDeriver(const Path & path); + Path queryDeriver(const Path & path) override; - PathSet queryValidDerivers(const Path & path); + PathSet queryValidDerivers(const Path & path) override; - PathSet queryDerivationOutputs(const Path & path); + PathSet queryDerivationOutputs(const Path & path) override; - StringSet queryDerivationOutputNames(const Path & path); + StringSet queryDerivationOutputNames(const Path & path) override; - Path queryPathFromHashPart(const string & hashPart); + Path queryPathFromHashPart(const string & hashPart) override; - PathSet querySubstitutablePaths(const PathSet & paths); + PathSet querySubstitutablePaths(const PathSet & paths) override; void querySubstitutablePathInfos(const Path & substituter, PathSet & paths, SubstitutablePathInfos & infos); void querySubstitutablePathInfos(const PathSet & paths, - SubstitutablePathInfos & infos); + SubstitutablePathInfos & infos) override; Path addToStore(const string & name, const Path & srcPath, bool recursive = true, HashType hashAlgo = htSHA256, - PathFilter & filter = defaultPathFilter, bool repair = false); + PathFilter & filter = defaultPathFilter, bool repair = false) override; /* Like addToStore(), but the contents of the path are contained in `dump', which is either a NAR serialisation (if recursive == @@ -142,43 +142,43 @@ public: bool recursive = true, HashType hashAlgo = htSHA256, bool repair = false); Path addTextToStore(const string & name, const string & s, - const PathSet & references, bool repair = false); + const PathSet & references, bool repair = false) override; void exportPath(const Path & path, bool sign, - Sink & sink); + Sink & sink) override; - Paths importPaths(bool requireSignature, Source & source); + Paths importPaths(bool requireSignature, Source & source) override; - void buildPaths(const PathSet & paths, BuildMode buildMode); + void buildPaths(const PathSet & paths, BuildMode buildMode) override; BuildResult buildDerivation(const Path & drvPath, const BasicDerivation & drv, BuildMode buildMode) override; - void ensurePath(const Path & path); + void ensurePath(const Path & path) override; - void addTempRoot(const Path & path); + void addTempRoot(const Path & path) override; - void addIndirectRoot(const Path & path); + void addIndirectRoot(const Path & path) override; - void syncWithGC(); + void syncWithGC() override; - Roots findRoots(); + Roots findRoots() override; - void collectGarbage(const GCOptions & options, GCResults & results); + void collectGarbage(const GCOptions & options, GCResults & results) override; /* Optimise the disk space usage of the Nix store by hard-linking files with the same contents. */ void optimiseStore(OptimiseStats & stats); /* Generic variant of the above method. */ - void optimiseStore(); + void optimiseStore() override; /* Optimise a single store path. */ void optimisePath(const Path & path); /* Check the integrity of the Nix store. Returns true if errors remain. */ - bool verifyStore(bool checkContents, bool repair); + bool verifyStore(bool checkContents, bool repair) override; /* Register the validity of a path, i.e., that `path' exists, that the paths referenced by it exists, and in the case of an output @@ -197,9 +197,9 @@ public: /* Query whether `path' previously failed to build. */ bool hasPathFailed(const Path & path); - PathSet queryFailedPaths(); + PathSet queryFailedPaths() override; - void clearFailedPaths(const PathSet & paths); + void clearFailedPaths(const PathSet & paths) override; void vacuumDB(); diff --git a/src/libstore/remote-store.hh b/src/libstore/remote-store.hh index 09e25038..b0787c07 100644 --- a/src/libstore/remote-store.hh +++ b/src/libstore/remote-store.hh @@ -24,71 +24,72 @@ public: /* Implementations of abstract store API methods. */ - bool isValidPath(const Path & path); + bool isValidPath(const Path & path) override; - PathSet queryValidPaths(const PathSet & paths); + PathSet queryValidPaths(const PathSet & paths) override; - PathSet queryAllValidPaths(); + PathSet queryAllValidPaths() override; - ValidPathInfo queryPathInfo(const Path & path); + ValidPathInfo queryPathInfo(const Path & path) override; - Hash queryPathHash(const Path & path); + Hash queryPathHash(const Path & path) override; - void queryReferences(const Path & path, PathSet & references); + void queryReferences(const Path & path, PathSet & references) override; - void queryReferrers(const Path & path, PathSet & referrers); + void queryReferrers(const Path & path, PathSet & referrers) override; - Path queryDeriver(const Path & path); + Path queryDeriver(const Path & path) override; - PathSet queryValidDerivers(const Path & path); + PathSet queryValidDerivers(const Path & path) override; - PathSet queryDerivationOutputs(const Path & path); + PathSet queryDerivationOutputs(const Path & path) override; - StringSet queryDerivationOutputNames(const Path & path); + StringSet queryDerivationOutputNames(const Path & path) override; - Path queryPathFromHashPart(const string & hashPart); + Path queryPathFromHashPart(const string & hashPart) override; - PathSet querySubstitutablePaths(const PathSet & paths); + PathSet querySubstitutablePaths(const PathSet & paths) override; void querySubstitutablePathInfos(const PathSet & paths, - SubstitutablePathInfos & infos); + SubstitutablePathInfos & infos) override; Path addToStore(const string & name, const Path & srcPath, bool recursive = true, HashType hashAlgo = htSHA256, - PathFilter & filter = defaultPathFilter, bool repair = false); + PathFilter & filter = defaultPathFilter, bool repair = false) override; Path addTextToStore(const string & name, const string & s, - const PathSet & references, bool repair = false); + const PathSet & references, bool repair = false) override; void exportPath(const Path & path, bool sign, - Sink & sink); + Sink & sink) override; - Paths importPaths(bool requireSignature, Source & source); + Paths importPaths(bool requireSignature, Source & source) override; - void buildPaths(const PathSet & paths, BuildMode buildMode); + void buildPaths(const PathSet & paths, BuildMode buildMode) override; BuildResult buildDerivation(const Path & drvPath, const BasicDerivation & drv, BuildMode buildMode) override; - void ensurePath(const Path & path); + void ensurePath(const Path & path) override; - void addTempRoot(const Path & path); + void addTempRoot(const Path & path) override; - void addIndirectRoot(const Path & path); + void addIndirectRoot(const Path & path) override; - void syncWithGC(); + void syncWithGC() override; - Roots findRoots(); + Roots findRoots() override; - void collectGarbage(const GCOptions & options, GCResults & results); + void collectGarbage(const GCOptions & options, GCResults & results) override; - PathSet queryFailedPaths(); + PathSet queryFailedPaths() override; - void clearFailedPaths(const PathSet & paths); + void clearFailedPaths(const PathSet & paths) override; - void optimiseStore(); + void optimiseStore() override; + + bool verifyStore(bool checkContents, bool repair) override; - bool verifyStore(bool checkContents, bool repair); private: AutoCloseFD fdSocket; FdSink to; diff --git a/src/libutil/hash.cc b/src/libutil/hash.cc index a83ba0a8..1d973e7c 100644 --- a/src/libutil/hash.cc +++ b/src/libutil/hash.cc @@ -115,7 +115,6 @@ const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz"; string printHash32(const Hash & hash) { - Hash hash2(hash); unsigned int len = hashLength32(hash); string s; diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc index 400b148e..313f8a8a 100644 --- a/src/nix-env/nix-env.cc +++ b/src/nix-env/nix-env.cc @@ -1277,7 +1277,7 @@ static void opDeleteGenerations(Globals & globals, Strings opFlags, Strings opAr std::set gens; for (auto & i : opArgs) { unsigned int n; - if (!string2Int(i, n) || n < 0) + if (!string2Int(i, n)) throw UsageError(format("invalid generation number ‘%1%’") % i); gens.insert(n); }