Fix build without glibc

Summary: The preprocessor does not follow normal rules of && evaluation, tries to evaluate __GLIBC_PREREQ(2, 12) even though the defined() check fails.  This breaks the build if __GLIBC_PREREQ is absent.

Test Plan: Try adding #undef __GLIBC_PREREQ above the offending line, build no longer breaks

Reviewed By: igor

Blame Rev: 4c81383628
main
lovro 11 years ago
parent 38feca4f35
commit 45a2f2d8d3
  1. 4
      util/env_posix.cc

@ -1398,11 +1398,13 @@ class PosixEnv : public Env {
(unsigned long)t); (unsigned long)t);
// Set the thread name to aid debugging // Set the thread name to aid debugging
#if defined(_GNU_SOURCE) && defined(__GLIBC_PREREQ) && (__GLIBC_PREREQ(2, 12)) #if defined(_GNU_SOURCE) && defined(__GLIBC_PREREQ)
#if __GLIBC_PREREQ(2, 12)
char name_buf[16]; char name_buf[16];
snprintf(name_buf, sizeof name_buf, "rocksdb:bg%zu", bgthreads_.size()); snprintf(name_buf, sizeof name_buf, "rocksdb:bg%zu", bgthreads_.size());
name_buf[sizeof name_buf - 1] = '\0'; name_buf[sizeof name_buf - 1] = '\0';
pthread_setname_np(t, name_buf); pthread_setname_np(t, name_buf);
#endif
#endif #endif
bgthreads_.push_back(t); bgthreads_.push_back(t);

Loading…
Cancel
Save