From: Nadav Har'El <[email protected]> Committer: Nadav Har'El <[email protected]> Branch: master
libc: fix build on C++11 mode of recent gcc A recently-added named-semaphore feature used std::make_unique<>(). It's hard to remember now, but std::make_unique() wasn't a part of the original C++11, and was only added later, in C++14. Recent versions of gcc (such as 13.2.1) started warning when it is used in C++11 compilation mode, so the build failed. Eventually, we should switch OSv to the C++14 (or even later) standards, but I don't want to do that hastely now just to fix the build. So in this patch I just do what people used to do before the advent of std::make_unique (and we do many times in OSv): std::unique_ptr(new ...). Signed-off-by: Nadav Har'El <[email protected]> --- diff --git a/libc/sem.cc b/libc/sem.cc --- a/libc/sem.cc +++ b/libc/sem.cc @@ -132,7 +132,8 @@ sem_t *sem_open(const char *name, int oflag, mode_t mode, unsigned int value) return SEM_FAILED; } - named_semaphores.emplace(std::string(name), std::make_unique<posix_semaphore>(value, 1, true)); + named_semaphores.emplace(std::string(name), + std::unique_ptr<posix_semaphore>(new posix_semaphore(value, 1, true))); return reinterpret_cast<sem_t *>(&named_semaphores[std::string(name)]); } @@ -168,4 +169,4 @@ int sem_close(sem_t *sem) sem_destroy(sem); } return 0; -} \ No newline at end of file +} -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/000000000000d2feb406052f979a%40google.com.
