Ubuntu 20.10 has glibc 2.32 and ClickHouse built in a plain way has two symbols marked GLIBC_2.32,
namely
 
```
 ilejn@ilejn-Latitude-5400:~/projects/ClickHouse/build$ objdump -T ./programs/clickhouse | grep GLIBC_2.32
 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.32  pthread_sigmask
 0000000000000000      DF *UND*  0000000000000000  GLIBC_2.32  pthread_getattr_np
```
{
    
    if (fs::exists(new_path))
        throw Exception(ErrorCodes::FILE_ALREADY_EXISTS, "File {} exists", new_path);
    fs::rename(old_path, new_path);
}
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-noreturn"
static void renameExchangeFallback(const std::string &, const std::string &)
{
    throw Exception("System call renameat2() is not supported", ErrorCodes::UNSUPPORTED_METHOD);
}
#pragma GCC diagnostic pop
void renameNoReplace(const std::string & old_path, const std::string & new_path)
{
    if (!renameat2(old_path, new_path, RENAME_NOREPLACE))
        renameNoReplaceFallback(old_path, new_path);
}
void renameExchange(const std::string & old_path, const std::string & new_path)
{
    if (!renameat2(old_path, new_path, RENAME_EXCHANGE))
        renameExchangeFallback(old_path, new_path);
}
bool renameExchangeIfSupported(const std::string & old_path, const std::string & new_path)
{
    return renameat2(old_path, new_path, RENAME_EXCHANGE);
}
}