<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/67398>67398</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Can't build LLVM 17, `error: no member named 'malloc' in the global namespace`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
HolyBlackCat
</td>
</tr>
</table>
<pre>
This is my first attempt at compiling LLVM/Clang, and I'm getting weird build errors.
```none
git clone https://github.com/llvm/llvm-project clang
cd clang
git checkout llvmorg-17.0.1
cd ..
cmake -S clang/llvm -B build-clang -GNinja -Wno-dev \
-DCMAKE_INSTALL_PREFIX="$(realpath ./root-clang)" \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_USE_LINKER=lld \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_PARALLEL_LINK_JOBS=2 \
-DLLVM_ENABLE_PROJECTS=all \
-DLLVM_ENABLE_RUNTIMES=all \
-DCMAKE_SKIP_RPATH=ON \
-DCLANG_DEFAULT_PIE_ON_LINUX=ON
cmake --build build-clang -j10
```
I get the following error message:
<details>
```none
[2985/10729] Building CXX object projects/libc/src/__support/CPP/CMakeFiles/libc.src.__support.CPP.new.dir/new.cpp.o
FAILED: projects/libc/src/__support/CPP/CMakeFiles/libc.src.__support.CPP.new.dir/new.cpp.o
/usr/bin/clang++ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/holyblackcat/Sandbox/build-clang/projects/libc/src/__support/CPP -I/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP -I/home/holyblackcat/Sandbox/build-clang/include -I/home/holyblackcat/Sandbox/clang/llvm/include -I/home/holyblackcat/Sandbox/build-clang/projects/libc/include -I/home/holyblackcat/Sandbox/clang/libc -I/home/holyblackcat/Sandbox/build-clang/projects/libc -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fpie -ffreestanding -fno-builtin -fno-exceptions -fno-lax-vector-conversions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -Wall -Wextra -Wimplicit-fallthrough -Wwrite-strings -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wstrict-prototypes -Wthread-safety -Wglobal-constructors -MD -MT projects/libc/src/__support/CPP/CMakeFiles/libc.src.__support.CPP.new.dir/new.cpp.o -MF projects/libc/src/__support/CPP/CMakeFiles/libc.src.__support.CPP.new.dir/new.cpp.o.d -o projects/libc/src/__support/CPP/CMakeFiles/libc.src.__support.CPP.new.dir/new.cpp.o -c /home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp
In file included from /home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:9:
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.h:40:19: error: no member named 'malloc' in the global namespace
void *mem = ::malloc(s);
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.h:47:19: error: no member named 'aligned_alloc' in the global namespace
void *mem = ::aligned_alloc(static_cast<size_t>(align), s);
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:12:46: error: no type named 'free' in the global namespace
void operator delete(void *mem) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:12:28: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete(void *mem) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:14:64: error: no type named 'free' in the global namespace
void operator delete(void *mem, std::align_val_t) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:14:28: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete(void *mem, std::align_val_t) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:16:54: error: no type named 'free' in the global namespace
void operator delete(void *mem, size_t) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:16:28: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete(void *mem, size_t) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:19:5: error: no type named 'free' in the global namespace
::free(mem);
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:18:28: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete(void *mem, size_t, std::align_val_t) noexcept {
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:22:48: error: no type named 'free' in the global namespace
void operator delete[](void *mem) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:22:30: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete[](void *mem) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:24:66: error: no type named 'free' in the global namespace
void operator delete[](void *mem, std::align_val_t) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:24:30: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete[](void *mem, std::align_val_t) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:26:56: error: no type named 'free' in the global namespace
void operator delete[](void *mem, size_t) noexcept { ::free(mem); }
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:26:30: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete[](void *mem, size_t) noexcept { ::free(mem); }
^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:29:5: error: no type named 'free' in the global namespace
::free(mem);
~~^
/home/holyblackcat/Sandbox/clang/libc/src/__support/CPP/new.cpp:28:30: warning: unused parameter 'mem' [-Wunused-parameter]
void operator delete[](void *mem, size_t, std::align_val_t) noexcept {
^
8 warnings and 10 errors generated.
[2992/10729] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
ninja: build stopped: subcommand failed.
```
</details>
Looks like the same error as in https://github.com/llvm/llvm-project/issues/62928, but for that user it randomly fixed itself, while I'm hitting it the second build in a row.
I'm on Fedora 38, `clang++ --version` is
```none
clang version 16.0.6 (Fedora 16.0.6-3.fc38)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWltz4rgS_jXKi0oUyFwf8gAYz7IDCZXLJufJJay20USWOJIckn3Y335KsjMhl6m5hczsqZqCWG596svXUqMeZq0oFMAx6k1QLz5ildtoc_yHlvcTybKbKXNHa83vjy82wmJhcXmPc2Gsw8w5KLf-G2e63AopVIEXi7-WiCZTyVSB6BQzxfEc0UGJC3DOS-xAGI7XlZAcgzHa2BZqx6g9bj777fqf0grqoUI4nEmtAG-c21oUjRFNEE0K4TbVupXpEtFEytuHL7I1-hNkfpLXYg884_tjAXcD2Y2uHPYTtSlIZ9BqtzqfxVtPlMtKdgOYnDco9XKYTGpzSBjF5MOJUJ8YJldKEw63GPWm9XSMMSbxdDn-OEvnJ-cX48UiXZ3Nkvk1imJEKaJdRIcGmNwyt8EtRBOjtSPNaiNE6R7YA9I0nZ4uV_PF7AxFca3CqytOr69fSCI6QXTyBNRHML08n6WL-cnHICklfx1xcjlfxOnFf1YzFMVnIIFZeIm1Gp-NF4vZIgCmf55OzlEU0-eIQXR2Mp4sZunq7PTP2fTCyzEpXyI2YmeXJxfz5eyl2J6K5x_nq_RsNb74A0Xx6clT9y3GJx_SeJaMLxcX6Wo-S09PvJKX10H2lcCTmrZPov2p037G3P2Jc8977DaAcy2l3vkMCKzHJVjLCvBs3qd_NOXgmJAWRbOv5AXqTeho2EM06bQHdIR6MZ54zfwa0-trrNchC5pssJ6uYp0hmljjP9PUVtutNs7n62rlP5fsBhIh4UG2ZU3W-izXmq5WLQW7FhcG0cT_lW23LV1rk4zni1mMovHhF8SN_TSprH-xFgrRZJ_QJE4_nFym56eXZ9OZf0rPL2KfKD7rTi7S5Xh6dnr--CI5PVuOXw4v5sv54-gc0WSjSwhf8n7tt8eMeWvOmeJrfedVeaQGosk3euLboD_vOT-N9FRJoTJZcfhOJert9rvmfs03P6aIWGdvsDwm-Wo-xSRXmlgomXIiI0I5MFtthRNaYZLfCivWQgp3T4SSQoElG8E5KEyuQlKjKObMAXGihL2xShUVMxw4YbdMSNZgKNhhcuW3LnIFd840R0alKgucbJlhJTgwmFztjHBArDNCFRaTq4xZR_5bMT-zFNYKVZBcgOREKOEEk-JvMBaTLfBgSQ0stSrCh0eoE2U0JP7sZo4EBbzpApMrUW6lyIQjOZPSbYyuio2fpG_BACd2J1y2IRxyVklXgysNdxlsHXH3WwhDitwK4yomCXfaW8FBggPyyhtbFQVYRzy-EZ4CV7WxJNPqFowN_vemSmB-fyNCcVCO1YG5yhzjpGT3ayCVahICOCY5F6xQ2jqRWZJp6RfL80plfh6xEL6tl2OO7T2fRpjEJ_FscvkBE-u4Py5rh3UGmORbAR7HAFjHVNhvA3E8w5xQ9UPtjgbfe5_dkVvInDZ7RjXvKrUTihPH1hKaIWbvVbYxWunKvvbeOCdesOcLcXtOnyexVrDzVCag8zps3nl-IWLvrYOSNGlJQk1SByZzvsZy2sfaA7qNAcaJZTm4e0yuCqnXTHo7rTOVt9lisowxWV68w-lAlsnhV2lxTPR7GJPhNzobHmGb0kThXEjATXw5zo0uD7BYNB49Fjlvir5B0bjbRtG441fAzXY7xkrjEso1GKxYCRz73x9MSp0hOsBChXKspmgQsFuWwWPpeKuFnzIuocQoirFXPho_AAytL8SjSSP_zz-oNzuYbYNvso1J_wuOpz9r4jOcofX7a5b6wwZFUyv-htT5qpQOg2T4QTLF7-SPmkkd6t3Sf-6RcOZ89offmL_qhuACvQXD_BFUH02IDvc8g-gIP5xqGA0mjZdq9GEtgKIJRoP4HY2nQ2_zjhklVOH_rMsF_FgueLZ75QYY9Sbk6nk5gXrx4TxwWPu7KBr3u-8U_CkOB__nxEhvmUzd70eK7ruT4q08c1i_-E2i945kqbfH344e_V9Bjx_0xWE94c_R3hvwAX_BkHcK6PAXBvTbMv89oklDITA8VHqHu_DfvBwILojaB2XCm_jhsF4IRcHBKsJXHfAvKQ2Ca34FQf4VBQINBcK7E-f3LBOCM34RVX7HYoH-fxQLoU74tWH9sZJh-KCvDR3kTrtpFeMClF8eeGuvBzaiX-uBSbFGNFkxa8P925PLuMXir2X9prl88w8BBMx-g0sJ9Yl5_9VNQOv0dgveNGyrdabL0muaMyEflXutI4iiKaLJ602-hdY3FktxA4FSlpXQdAuZ9Tz7vv43oomwtgpG9umIDn001pXDuTbYbZjDlQWDhcOGKa5LeY9zcQccC2dB5l56txESmgb-RtQNfFH3My1kWj008oXCDBu9e9Itr6dphRPg2jAcBQVQv_2kU0eaq3DUb2Nhv9jsrLutD72ATr_VbvUxosMGux4gUSvP_DKjetIFMwU4H6K7YT_td4kBvmGOSKGqO1KoqhEL19e41BxkaGBqK-4eLkmtY1ICj0XYBZ70HJ_qesSPIz6KRuwIjjv9UW_QiXr93tHmeMQHtNPL-mywjvgwg27U44M-63b6A84zaB-JY9qmUXtE--1BRLu91iCPunk2iFjUhzaDPuq2oWRCtnx4W9oURyGwx_1BNBoeSbYGacN_4KBUwQ6Hl4hS1IuPzHGgxLoqLOq2pbDOPqI44SQcT5lCdOCaUPp0wJ1BE6qfu1Ptt48qI49_grbewP8FAAD__3lJ9hI">