]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - sysdeps/unix/sysv/linux/i386/dl-librecon.h
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / i386 / dl-librecon.h
index 627eecf62dbac2efbc4e59cd25ec4598e9897167..687ac3035938c0a3a45cf729f0eba3df86e92c3e 100644 (file)
@@ -1,5 +1,5 @@
 /* Optional code to distinguish library flavours.
-   Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998-2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #ifndef _DL_LIBRECON_H
-#define _DL_LIBRECON_H 1
+
+#include <sysdeps/unix/sysv/linux/dl-librecon.h>
 
 #define DISTINGUISH_LIB_VERSIONS \
   do                                                                         \
       /* We have to find out whether the binary is linked against            \
         libc 5 or glibc.  We do this by looking at all the DT_NEEDED         \
         entries.  If one is libc.so.5 this is a libc 5 linked binary.  */    \
-      if (_dl_loaded->l_info[DT_NEEDED])                                     \
+      if (main_map->l_info[DT_NEEDED])                                       \
        {                                                                     \
          /* We have dependencies.  */                                        \
          const ElfW(Dyn) *d;                                                 \
          const char *strtab;                                                 \
                                                                              \
-         strtab = (const char *) D_PTR (_dl_loaded, l_info[DT_STRTAB]);      \
+         strtab = (const char *) D_PTR (main_map, l_info[DT_STRTAB]);        \
                                                                              \
-         for (d = _dl_loaded->l_ld; d->d_tag != DT_NULL; ++d)                \
+         for (d = main_map->l_ld; d->d_tag != DT_NULL; ++d)                  \
            if (d->d_tag == DT_NEEDED                                         \
                && strcmp (strtab + d->d_un.d_val, "libc.so.5") == 0)         \
              break;                                                          \
 
 /* Recognizing extra environment variables.  */
 #define EXTRA_LD_ENVVARS \
-  case 13:                                                                   \
-    if (memcmp (&envline[3], "ASSUME_KERNEL", 13) == 0)                              \
-      {                                                                              \
-       unsigned long int i, j, osversion = 0;                                \
-       char *p = &envline[17], *q;                                           \
-                                                                             \
-       for (i = 0; i < 3; i++, p = q + 1)                                    \
-         {                                                                   \
-           j = __strtoul_internal (p, &q, 0, 0);                             \
-           if (j >= 255 || p == q || (i < 2 && *q && *q != '.'))             \
-             {                                                               \
-               osversion = 0;                                                \
-               break;                                                        \
-             }                                                               \
-           osversion |= j << (16 - 8 * i);                                   \
-           if (!*q)                                                          \
-             break;                                                          \
-         }                                                                   \
-       if (osversion)                                                        \
-         _dl_osversion = osversion;                                          \
-       break;                                                                \
-      }                                                                              \
-                                                                             \
   case 15:                                                                   \
-    if (memcmp (&envline[3], "LIBRARY_VERSION", 15) == 0)                    \
-      {                                                                              \
-       _dl_correct_cache_id = envline[19] == '5' ? 2 : 3;                    \
-       break;                                                                \
-      }
-
-/* Extra unsecure variables.  */
-#define EXTRA_UNSECURE_ENVVARS "LD_AOUT_LIBRARY_PATH", "LD_AOUT_PRELOAD"
+    if (memcmp (envline, "LIBRARY_VERSION", 15) == 0)                        \
+      GLRO(dl_correct_cache_id) = envline[16] == '5' ? 2 : 3;                \
+    break;                                                                   \
+
+/* Extra unsecure variables.  The names are all stuffed in a single
+   string which means they have to be terminated with a '\0' explicitly.  */
+#define EXTRA_UNSECURE_ENVVARS \
+  "LD_AOUT_LIBRARY_PATH\0"                                                   \
+  "LD_AOUT_PRELOAD\0"
 
 #endif /* dl-librecon.h */