From b49fd3ab30b721c0dd29c015819ae6485bd6f32d Mon Sep 17 00:00:00 2001 From: Joost VandeVondele Date: Tue, 8 Dec 2020 18:05:31 +0100 Subject: [PATCH] Add -lstdc++fs to the link line of gcc older versions of gcc (<8.1) need this, even if they accept -std=c++17 with this patch, the code can be run on fishtest again, at least by the majority of workers (fishtest doesn't require c++17 to be available) See e.g. https://tests.stockfishchess.org/tests/view/5fcfbf801ac1691201888235 Bench: 3820648 --- src/Makefile | 2 +- src/learn/convert.cpp | 2 -- src/learn/gensfen.cpp | 1 - src/learn/learn.cpp | 2 -- src/learn/sfen_writer.h | 1 - src/nnue/evaluate_nnue_learner.cpp | 3 +-- src/nnue/nnue_common.h | 7 +++++++ 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Makefile b/src/Makefile index 6f72809a..5ec747a7 100644 --- a/src/Makefile +++ b/src/Makefile @@ -328,7 +328,7 @@ endif ifeq ($(COMP),gcc) comp=gcc CXX=g++ - CXXFLAGS += -pedantic -Wextra -Wshadow + CXXFLAGS += -pedantic -Wextra -Wshadow -lstdc++fs ifeq ($(arch),$(filter $(arch),armv7 armv8)) ifeq ($(OS),Android) diff --git a/src/learn/convert.cpp b/src/learn/convert.cpp index 5fe7ea1d..47f56f02 100644 --- a/src/learn/convert.cpp +++ b/src/learn/convert.cpp @@ -25,7 +25,6 @@ #include #include #include -#include using namespace std; @@ -610,7 +609,6 @@ namespace Learner { string kif_base_dir = Path::combine(base_dir, target_dir); - namespace sys = std::filesystem; sys::path p(kif_base_dir); // Origin of enumeration std::for_each(sys::directory_iterator(p), sys::directory_iterator(), [&](const sys::path& path) { diff --git a/src/learn/gensfen.cpp b/src/learn/gensfen.cpp index 5f8bbba1..1cc9055c 100644 --- a/src/learn/gensfen.cpp +++ b/src/learn/gensfen.cpp @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include diff --git a/src/learn/learn.cpp b/src/learn/learn.cpp index 449542a7..6651e096 100644 --- a/src/learn/learn.cpp +++ b/src/learn/learn.cpp @@ -39,7 +39,6 @@ #include #include // std::exp(),std::pow(),std::log() #include // memcpy() -#include #include #include #include @@ -104,7 +103,6 @@ namespace Learner { string kif_base_dir = Path::combine(base_dir, target_dir); - namespace sys = std::filesystem; sys::path p(kif_base_dir); // Origin of enumeration std::for_each(sys::directory_iterator(p), sys::directory_iterator(), [&](const sys::path& path) { diff --git a/src/learn/sfen_writer.h b/src/learn/sfen_writer.h index 1bbd916c..b1c3ed5f 100644 --- a/src/learn/sfen_writer.h +++ b/src/learn/sfen_writer.h @@ -8,7 +8,6 @@ #include "syzygy/tbprobe.h" #include -#include #include #include #include diff --git a/src/nnue/evaluate_nnue_learner.cpp b/src/nnue/evaluate_nnue_learner.cpp index 3061a4f4..8d95221c 100644 --- a/src/nnue/evaluate_nnue_learner.cpp +++ b/src/nnue/evaluate_nnue_learner.cpp @@ -1,6 +1,5 @@ #include #include -#include #include "evaluate_nnue.h" #include "evaluate_nnue_learner.h" @@ -326,7 +325,7 @@ namespace Eval::NNUE { // mkdir() will fail if this folder already exists, but // Apart from that. If not, I just want you to make it. // Also, assume that the folders up to EvalSaveDir have been dug. - std::filesystem::create_directories(eval_dir); + sys::create_directories(eval_dir); const std::string file_name = Path::combine(eval_dir, NNUE::savedfileName); std::ofstream stream(file_name, std::ios::binary); diff --git a/src/nnue/nnue_common.h b/src/nnue/nnue_common.h index 58bfd146..e72168f8 100644 --- a/src/nnue/nnue_common.h +++ b/src/nnue/nnue_common.h @@ -25,6 +25,13 @@ #include #include +#if defined(__GNUC__ ) && (__GNUC__ < 8) +#include +namespace sys = std::experimental::filesystem; +#else +#include +namespace sys = std::filesystem; +#endif #if defined(USE_AVX2) #include