vcpkg/ports/llfio/issue-83-fix-backport.patch
Henrik Gaßmann 291b84e651
[llfio] Support static linkage triplets (#22504)
* [quickcpplib] Avoid deprecated helper functions

* [quickcpplib] Update to version @0.0.0-cad832c8

fixup quickcpplib ref

* [quickcpplib] Add cxx17 and cxx20 feature levels

* [quickcpplib] Update port version information

* [llfio] Update to version @2.0-20220112

* [llfio] Avoid deprecated helper functions

* [llfio] Add cxx17 and cxx20 feature levels

* [llfio] Support static linkage triplets

* [llfio] Always install ntkernel-error-category

ntkernel-error-category sources have been recorded as part of
`headers.cmake` which are added to the library targets. Therefore cmake
configure fails if they aren't  available.

* [llfio] Fix msvc crt linkage specification

`quickcpplib` parses `CMAKE_MSVC_RUNTIME_LIBRARY` and cannot support the
default crt linkage generator expression from vcpkg. Therefore we need
to manually specify a valid option.

* [llfio] Update port version information
2022-01-18 15:58:04 -08:00

36 lines
1.6 KiB
Diff

diff --git a/include/llfio/v2.0/map_handle.hpp b/include/llfio/v2.0/map_handle.hpp
index 55cefa8f..3962be16 100644
--- a/include/llfio/v2.0/map_handle.hpp
+++ b/include/llfio/v2.0/map_handle.hpp
@@ -294,8 +294,8 @@ support this operation). You may find the `is_nvram()` observer of particular us
*/
inline io_handle::const_buffer_type nvram_barrier(io_handle::const_buffer_type req, bool evict = false) noexcept
{
- auto *tp = (io_handle::const_buffer_type::pointer)(((uintptr_t) req.data()) & ~63);
- io_handle::const_buffer_type ret{tp, (size_t)(req.data() + 63 + req.size() - tp) & ~63};
+ auto *tp = (io_handle::const_buffer_type::pointer) (((uintptr_t) req.data()) & ~63);
+ io_handle::const_buffer_type ret{tp, (size_t) (req.data() + 63 + req.size() - tp) & ~63};
if(memory_flush_none == mem_flush_stores(ret.data(), ret.size(), evict ? memory_flush_evict : memory_flush_retain))
{
ret = {tp, 0};
@@ -954,7 +954,8 @@ namespace detail
{
try
{
- auto make_shared = [](map_handle h) {
+ auto make_shared = [](map_handle h) -> io_handle::registered_buffer_type
+ {
struct registered_buffer_type_indirect : io_multiplexer::_registered_buffer_type
{
map_handle h;
@@ -964,8 +965,7 @@ namespace detail
{
}
};
- auto ptr = std::make_shared<registered_buffer_type_indirect>(std::move(h));
- return ptr;
+ return io_handle::registered_buffer_type(std::make_shared<registered_buffer_type_indirect>(std::move(h)));
};
const auto &page_sizes = utils::page_sizes(true);
size_t idx = 0;