aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-10-03 13:59:29 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-10-03 14:10:31 +0300
commit58e24167b404650b5a636bfa016b291d24d9830d (patch)
treef36e8d0e3fcd08796c161a66bbb040273d08d08a /contrib/libs
parent223eb8b552472beee7730264ec0f7f7a7496524a (diff)
downloadydb-58e24167b404650b5a636bfa016b291d24d9830d.tar.gz
Intermediate changes
commit_hash:607a58b7a4640ebb7f3b73b52018f8dca4f92df5
Diffstat (limited to 'contrib/libs')
-rw-r--r--contrib/libs/cxxsupp/libcxxmsvc/src/new.cpp300
-rw-r--r--contrib/libs/cxxsupp/libcxxmsvc/src/support/runtime/new_handler_fallback.ipp28
-rw-r--r--contrib/libs/cxxsupp/libcxxmsvc/ya.make2
3 files changed, 2 insertions, 328 deletions
diff --git a/contrib/libs/cxxsupp/libcxxmsvc/src/new.cpp b/contrib/libs/cxxsupp/libcxxmsvc/src/new.cpp
deleted file mode 100644
index 937e860337..0000000000
--- a/contrib/libs/cxxsupp/libcxxmsvc/src/new.cpp
+++ /dev/null
@@ -1,300 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <new>
-#include <stdlib.h>
-
-#if defined(_LIBCPP_ABI_MICROSOFT)
-# if !defined(_LIBCPP_ABI_VCRUNTIME)
-# include "support/runtime/new_handler_fallback.ipp"
-# endif
-#elif defined(LIBCXX_BUILDING_LIBCXXABI)
-# include <cxxabi.h>
-#elif defined(LIBCXX_BUILDING_LIBCXXRT)
-# include <cxxabi.h>
-# include "support/runtime/new_handler_fallback.ipp"
-#elif defined(__GLIBCXX__)
- // nothing to do
-#else
-# include "support/runtime/new_handler_fallback.ipp"
-#endif
-
-namespace std
-{
-
-#ifndef __GLIBCXX__
-const nothrow_t nothrow{};
-#endif
-
-#ifndef LIBSTDCXX
-
-void
-__throw_bad_alloc()
-{
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw bad_alloc();
-#else
- _VSTD::abort();
-#endif
-}
-
-#endif // !LIBSTDCXX
-
-} // std
-
-#if !defined(__GLIBCXX__) && \
- !defined(_LIBCPP_ABI_VCRUNTIME) && \
- !defined(_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS)
-
-// Implement all new and delete operators as weak definitions
-// in this shared library, so that they can be overridden by programs
-// that define non-weak copies of the functions.
-
-_LIBCPP_WEAK
-void *
-operator new(std::size_t size) _THROW_BAD_ALLOC
-{
- if (size == 0)
- size = 1;
- void* p;
- while ((p = ::malloc(size)) == nullptr)
- {
- // If malloc fails and there is a new_handler,
- // call it to try free up memory.
- std::new_handler nh = std::get_new_handler();
- if (nh)
- nh();
- else
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw std::bad_alloc();
-#else
-#ifdef __EMSCRIPTEN__
- // Abort here so that when exceptions are disabled, we do not just
- // return 0 when malloc returns 0.
- // We could also do this with set_new_handler, but that adds a
- // global constructor and a table entry, overhead that we can avoid
- // by doing it this way.
- abort();
-#else
- break;
-#endif
-#endif
- }
- return p;
-}
-
-_LIBCPP_WEAK
-void*
-operator new(size_t size, const std::nothrow_t&) noexcept
-{
- void* p = nullptr;
-#ifndef _LIBCPP_NO_EXCEPTIONS
- try
- {
-#endif // _LIBCPP_NO_EXCEPTIONS
- p = ::operator new(size);
-#ifndef _LIBCPP_NO_EXCEPTIONS
- }
- catch (...)
- {
- }
-#endif // _LIBCPP_NO_EXCEPTIONS
- return p;
-}
-
-_LIBCPP_WEAK
-void*
-operator new[](size_t size) _THROW_BAD_ALLOC
-{
- return ::operator new(size);
-}
-
-_LIBCPP_WEAK
-void*
-operator new[](size_t size, const std::nothrow_t&) noexcept
-{
- void* p = nullptr;
-#ifndef _LIBCPP_NO_EXCEPTIONS
- try
- {
-#endif // _LIBCPP_NO_EXCEPTIONS
- p = ::operator new[](size);
-#ifndef _LIBCPP_NO_EXCEPTIONS
- }
- catch (...)
- {
- }
-#endif // _LIBCPP_NO_EXCEPTIONS
- return p;
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr) noexcept
-{
- ::free(ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr, const std::nothrow_t&) noexcept
-{
- ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr, size_t) noexcept
-{
- ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr) noexcept
-{
- ::operator delete(ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr, const std::nothrow_t&) noexcept
-{
- ::operator delete[](ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr, size_t) noexcept
-{
- ::operator delete[](ptr);
-}
-
-#if !defined(_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION)
-
-_LIBCPP_WEAK
-void *
-operator new(std::size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
-{
- if (size == 0)
- size = 1;
- if (static_cast<size_t>(alignment) < sizeof(void*))
- alignment = std::align_val_t(sizeof(void*));
-
- // Try allocating memory. If allocation fails and there is a new_handler,
- // call it to try free up memory, and try again until it succeeds, or until
- // the new_handler decides to terminate.
- //
- // If allocation fails and there is no new_handler, we throw bad_alloc
- // (or return nullptr if exceptions are disabled).
- void* p;
- while ((p = std::__libcpp_aligned_alloc(static_cast<std::size_t>(alignment), size)) == nullptr)
- {
- std::new_handler nh = std::get_new_handler();
- if (nh)
- nh();
- else {
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw std::bad_alloc();
-#else
- break;
-#endif
- }
- }
- return p;
-}
-
-_LIBCPP_WEAK
-void*
-operator new(size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept
-{
- void* p = nullptr;
-#ifndef _LIBCPP_NO_EXCEPTIONS
- try
- {
-#endif // _LIBCPP_NO_EXCEPTIONS
- p = ::operator new(size, alignment);
-#ifndef _LIBCPP_NO_EXCEPTIONS
- }
- catch (...)
- {
- }
-#endif // _LIBCPP_NO_EXCEPTIONS
- return p;
-}
-
-_LIBCPP_WEAK
-void*
-operator new[](size_t size, std::align_val_t alignment) _THROW_BAD_ALLOC
-{
- return ::operator new(size, alignment);
-}
-
-_LIBCPP_WEAK
-void*
-operator new[](size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept
-{
- void* p = nullptr;
-#ifndef _LIBCPP_NO_EXCEPTIONS
- try
- {
-#endif // _LIBCPP_NO_EXCEPTIONS
- p = ::operator new[](size, alignment);
-#ifndef _LIBCPP_NO_EXCEPTIONS
- }
- catch (...)
- {
- }
-#endif // _LIBCPP_NO_EXCEPTIONS
- return p;
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr, std::align_val_t) noexcept
-{
- std::__libcpp_aligned_free(ptr);
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept
-{
- ::operator delete(ptr, alignment);
-}
-
-_LIBCPP_WEAK
-void
-operator delete(void* ptr, size_t, std::align_val_t alignment) noexcept
-{
- ::operator delete(ptr, alignment);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr, std::align_val_t alignment) noexcept
-{
- ::operator delete(ptr, alignment);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept
-{
- ::operator delete[](ptr, alignment);
-}
-
-_LIBCPP_WEAK
-void
-operator delete[] (void* ptr, size_t, std::align_val_t alignment) noexcept
-{
- ::operator delete[](ptr, alignment);
-}
-
-#endif // !_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION
-#endif // !__GLIBCXX__ && !_LIBCPP_ABI_VCRUNTIME && !_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
diff --git a/contrib/libs/cxxsupp/libcxxmsvc/src/support/runtime/new_handler_fallback.ipp b/contrib/libs/cxxsupp/libcxxmsvc/src/support/runtime/new_handler_fallback.ipp
deleted file mode 100644
index 7556f693a9..0000000000
--- a/contrib/libs/cxxsupp/libcxxmsvc/src/support/runtime/new_handler_fallback.ipp
+++ /dev/null
@@ -1,28 +0,0 @@
-// -*- C++ -*-
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "../../include/atomic_support.h"
-
-namespace std {
-
-static _LIBCPP_CONSTINIT std::new_handler __new_handler = nullptr;
-
-new_handler
-set_new_handler(new_handler handler) noexcept
-{
- return __libcpp_atomic_exchange(&__new_handler, handler);
-}
-
-new_handler
-get_new_handler() noexcept
-{
- return __libcpp_atomic_load(&__new_handler);
-}
-
-} // namespace std
diff --git a/contrib/libs/cxxsupp/libcxxmsvc/ya.make b/contrib/libs/cxxsupp/libcxxmsvc/ya.make
index 160c722f74..db9c8f112d 100644
--- a/contrib/libs/cxxsupp/libcxxmsvc/ya.make
+++ b/contrib/libs/cxxsupp/libcxxmsvc/ya.make
@@ -2,6 +2,8 @@
LIBRARY()
+BUILD_ONLY_IF(OS_WINDOWS)
+
LICENSE(
Apache-2.0 AND
Apache-2.0 WITH LLVM-exception AND