about summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
Diffstat (limited to 'posix')
-rw-r--r--posix/confstr.c18
-rw-r--r--posix/getconf.c6
2 files changed, 23 insertions, 1 deletions
diff --git a/posix/confstr.c b/posix/confstr.c
index fe5f38c933..bc3c8b89e3 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,96,97,2000,01,02 Free Software Foundation, Inc.
+/* Copyright (C) 1991,96,97,2000-2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <confstr.h>
+#include "../version.h"
 
 /* If BUF is not NULL and LEN > 0, fill in at most LEN - 1 bytes
    of BUF with the value corresponding to NAME and zero-terminate BUF.
@@ -140,6 +141,21 @@ confstr (name, buf, len)
       string_len = 1;
       break;
 
+    case _CS_GNU_LIBC_VERSION:
+      string = "glibc " VERSION;
+      string_len = strlen (string);
+
+    case _CS_GNU_LIBPTHREAD_VERSION:
+#ifdef LIBPTHREAD_VERSION
+      string = LIBPTHREAD_VERSION;
+      string_len = strlen (string);
+      break;
+#else
+      /* No thread library.  */
+      __set_errno (EINVAL);
+      return 0;
+#endif
+
     default:
       __set_errno (EINVAL);
       return 0;
diff --git a/posix/getconf.c b/posix/getconf.c
index 69b785c3bf..e687225434 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -859,6 +859,12 @@ static const struct conf vars[] =
 #ifdef _PC_SYMLINK_MAX
     { "SYMLINK_MAX", _PC_SYMLINK_MAX, PATHCONF },
 #endif
+#ifdef _CS_GNU_LIBC_VERSION
+    { "GNU_LIBC_VERSION", _CS_GNU_LIBC_VERSION, CONFSTR },
+#endif
+#ifdef _CS_GNU_LIBPTHREAD_VERSION
+    { "GNU_LIBPTHREAD_VERSION", _CS_GNU_LIBPTHREAD_VERSION, CONFSTR },
+#endif
 
     { NULL, 0, SYSCONF }
   };