Add CS_GNU_LIBC_VERSION and CS_GNU_LIBPTHREAD_VERSION constants for constr(),
and disable test_execvpe_with_bad_program() of test_os if the libc uses
linuxthreads to avoid the "unknown signal 32" bug (see issue #4970).
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 705bdc7..bbeb20e 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -589,6 +589,15 @@
 
 class ExecTests(unittest.TestCase):
     def test_execvpe_with_bad_program(self):
+        try:
+            # 'linuxthreads-0.10' or 'NPTL 2.10.2'
+            pthread = os.confstr("CS_GNU_LIBPTHREAD_VERSION")
+            linuxthreads = pthread.startswith("linuxthreads")
+        except ValueError:
+            linuxthreads = False
+        if linuxthreads:
+            raise unittest.SkipTest(
+                "avoid linuxthreads bug: see issue #4970")
         self.assertRaises(OSError, os.execvpe, 'no such app-', ['no such app-'], None)
 
     def test_execvpe_with_bad_arglist(self):