stripe2933 / CppStandardLibraryModule

CMake project template for using C++ Standard Library Module.
12 stars 0 forks source link

Error building clang #11

Open tetsuhaut opened 1 month ago

tetsuhaut commented 1 month ago

Hi stripe2933, I tried the step "Build Standard Library Module from LLVM repository." but I get the following error: "llvm-project/build/include/c++/v1/cstdlib:149:9: error: 'aligned_alloc' has not been declared in '::' 149 | using ::aligned_alloc _LIBCPP_USING_IF_EXISTS;"

Do you have any idea of what could go wrong?

Thanks for your help :)

stripe2933 commented 1 month ago

Hello, seems like Clang CI does not produce any error. Could you provide me your operating system and the compiler that used to build the libc++ library?

Note: unless you're using C++20, I highly recommend you to use CMake's built-in import std support (https://www.kitware.com/import-std-in-cmake-3-30/). I'll deprecate this library usage when CMake officially support standard library module with C++20.

tetsuhaut commented 1 month ago

Hi, I am using Windows 11, cmake 3.29.3, and gcc 14.1.0 / clang 18.1.5 from winlibs. The same error occured using cmake 3.30.0.

stripe2933 commented 1 month ago

I don't have a Windows machine with Clang, so this is just a guess: According to cppreference, aligned_alloc is not supported in the Windows C runtime library. This might mean that the libc++ implementation hides the definition. You could check the <cstdlib> header to see if the definition is hidden.