You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Although freestanding C++ is well-defined, some STL headers are making troubles or pulling in too much irrelevant dependencies. Moreover, libcxx and MSVC's STL does not have the freestanding support.
When trying to build snmalloc with LLVM's libc headers, even though the libstdc++ is told to be freestanding, it assumes GNU toolchain blindly, trying to include internal glibc headers and pulling the dependencies to wchar routines via <string_view> even though wchar is not used at all. It forcibly using some symbols which make it hard to use snmalloc at the internal libc allocator at early development stage.
namespace std {
using ::XXX;
}
To avoid depending on STL, SCUDO creates its own wrapper around compiler builtins.
We should still fallback to STL if target compiler does not providing certain builtins. In that case, we can use the way in llvm-libc to create proxy headers that dispatch the implementations.
The text was updated successfully, but these errors were encountered:
Although freestanding C++ is well-defined, some STL headers are making troubles or pulling in too much irrelevant dependencies. Moreover,
libcxx
and MSVC's STL does not have the freestanding support.When trying to build
snmalloc
with LLVM's libc headers, even though thelibstdc++
is told to be freestanding, it assumes GNU toolchain blindly, trying to include internal glibc headers and pulling the dependencies towchar
routines via<string_view>
even thoughwchar
is not used at all. It forcibly using some symbols which make it hard to use snmalloc at the internal libc allocator at early development stage.To avoid depending on STL,
SCUDO
creates its own wrapper around compiler builtins.We should still fallback to STL if target compiler does not providing certain builtins. In that case, we can use the way in
llvm-libc
to create proxy headers that dispatch the implementations.The text was updated successfully, but these errors were encountered: