I upgraded my system to fedora 33 after which I observed that stdlib.h was not able to resolve some data structures:
In file included from /usr/include/c++/10/cstdlib:75,
from /usr/include/c++/10/ext/string_conversions.h:41,
from /usr/include/c++/10/bits/basic_string.h:6545,
from /usr/include/c++/10/string:55,
from /home/ideepika/ceph5/ceph/src/rocksdb/include/rocksdb/cache.h:27,
from /home/ideepika/ceph5/ceph/src/rocksdb/cache/clock_cache.h:12,
from /home/ideepika/ceph5/ceph/src/rocksdb/cache/clock_cache.cc:10:
/usr/include/stdlib.h:935:5: error: expected initializer before ‘__attr_access’
935 | __attr_access ((__read_only__, 2));
| ^~~~~~~~~~~~~
/usr/include/stdlib.h:940:3: error: expected initializer before ‘__attr_access’
940 | __attr_access ((__write_only__, 1, 3)) __attr_access ((__read_only__, 2));
| ^~~~~~~~~~~~~
/usr/include/stdlib.h:994:30: error: expected initializer before ‘__attr_access’
994 | __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3));
| ^~~~~~~~~~~~~
In file included from /usr/include/c++/10/ext/string_conversions.h:41,
from /usr/include/c++/10/bits/basic_string.h:6545,
from /usr/include/c++/10/string:55,
from /home/ideepika/ceph5/ceph/src/rocksdb/include/rocksdb/cache.h:27,
from /home/ideepika/ceph5/ceph/src/rocksdb/cache/clock_cache.h:12,
from /home/ideepika/ceph5/ceph/src/rocksdb/cache/clock_cache.cc:10:
/usr/include/c++/10/cstdlib:154:11: error: ‘mbstowcs’ has not been declared in ‘::’
154 | using ::mbstowcs;
| ^~~~~~~~
/usr/include/c++/10/cstdlib:171:11: error: ‘wcstombs’ has not been declared in ‘::’
171 | using ::wcstombs;
| ^~~~~~~~
the source of error is merely because of #include and hence the source code from rocksdb doesn't looks suspicious.
Investigating... will update with relevant details, let me know if more details need to added