http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60038

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #6)
BTW, you could supposedly use
#include <unistd.h>
...
  char buf[64];
  size_t len = confstr (_CS_GNU_LIBC_VERSION, buf, sizeof buf);
  int result = 
  if (strncmp (buf, "glibc 2.", 8) == 0)
    {
      char *end;
      int minor = strtoul (buf + 8, &end, 10);
      if (end != buf + 8 && (*end == '\0' || *end == '.')
        {
          if (minor <= 3)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1104, 1696);
          else if (minor == 4)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1120, 1728);
          else if (minor == 5)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1136, 1728);
          else if (minor <= 9)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1136, 1712);
          else if (minor == 10)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1168, 1776);
          else if (minor <= 12)
            kThreadDescriptorSize = FIRST_32_SECOND_64(1168, 2288);
          else
            kThreadDescriptorSize = FIRST_32_SECOND_64(1216, 2304);
        }
    }

Reply via email to