clangd broke because it can't look through symlinks. compile_commands manipulation does not fix it, clangd configuration does not fix it, a vfs overlay does not fix it, and while a combination of those can fix it with a bind mount in place that's just too cursed to even consider clangd bug: https://github.com/llvm/llvm-project/issues/116877 Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
35 lines
582 B
C++
35 lines
582 B
C++
#pragma once
|
|
///@file
|
|
|
|
namespace nix {
|
|
|
|
/**
|
|
* Save the current mount namespace. Ignored if called more than
|
|
* once.
|
|
*/
|
|
void saveMountNamespace();
|
|
|
|
/**
|
|
* Restore the mount namespace saved by saveMountNamespace(). Ignored
|
|
* if saveMountNamespace() was never called.
|
|
*/
|
|
void restoreMountNamespace();
|
|
|
|
/**
|
|
* Cause this thread to not share any FS attributes with the main
|
|
* thread, because this causes setns() in restoreMountNamespace() to
|
|
* fail.
|
|
*/
|
|
void unshareFilesystem();
|
|
|
|
|
|
#if __linux__
|
|
|
|
bool userNamespacesSupported();
|
|
|
|
bool mountAndPidNamespacesSupported();
|
|
|
|
#endif
|
|
|
|
}
|