Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 8 Jun 2000 04:48:56 +0000 (04:48 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 8 Jun 2000 04:48:56 +0000 (04:48 +0000)
* include/elf.h: Include also <dl-dtprocnum.h>.
* elf/dl-deps.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-rel.h: Likewise.
* elf/dynamic-link.h: Likewise.
* elf/link.h: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/generic/dl-dtprocnum.h: New file.
* sysdeps/ia64/dl-dtprocnum.h: New file.
* sysdeps/mips/dl-dtprocnum.h: New file.
* sysdeps/sparc/dl-dtprocnum.h: New file.

14 files changed:
ChangeLog
elf/dl-deps.c
elf/dl-lookup.c
elf/dl-runtime.c
elf/dl-version.c
elf/do-rel.h
elf/dynamic-link.h
elf/link.h
elf/rtld.c
include/elf.h
sysdeps/generic/dl-dtprocnum.h [new file with mode: 0644]
sysdeps/ia64/dl-dtprocnum.h [new file with mode: 0644]
sysdeps/mips/dl-dtprocnum.h [new file with mode: 0644]
sysdeps/sparc/dl-dtprocnum.h [new file with mode: 0644]

index cf9dfad..8466f26 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2000-06-07  Ulrich Drepper  <drepper@redhat.com>
 
+       * include/elf.h: Include also <dl-dtprocnum.h>.
+       * elf/dl-deps.c: Likewise.
+       * elf/dl-lookup.c: Likewise.
+       * elf/dl-runtime.c: Likewise.
+       * elf/dl-version.c: Likewise.
+       * elf/do-rel.h: Likewise.
+       * elf/dynamic-link.h: Likewise.
+       * elf/link.h: Likewise.
+       * elf/rtld.c: Likewise.
+       * sysdeps/generic/dl-dtprocnum.h: New file.
+       * sysdeps/ia64/dl-dtprocnum.h: New file.
+       * sysdeps/mips/dl-dtprocnum.h: New file.
+       * sysdeps/sparc/dl-dtprocnum.h: New file.
+
        * sysdeps/i386/dl-machine.h: Add more __builtin_expect.
 
        * elf/do-lookup.h: Add some __builtin_expect.
index fca210f..670b9df 100644 (file)
 
 /* Whether an shared object references one or more auxiliary objects
    is signaled by the AUXTAG entry in l_info.  */
-#define AUXTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM \
+#define AUXTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
                 + DT_EXTRATAGIDX (DT_AUXILIARY))
 /* Whether an shared object references one or more auxiliary objects
    is signaled by the AUXTAG entry in l_info.  */
-#define FILTERTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM \
+#define FILTERTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
                   + DT_EXTRATAGIDX (DT_FILTER))
 
 /* This is zero at program start to signal that the global scope map is
index 09f34f9..d01fdaa 100644 (file)
@@ -28,7 +28,7 @@
 
 #include <assert.h>
 
-#define VERSTAG(tag)   (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (tag))
+#define VERSTAG(tag)   (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (tag))
 
 /* We need this string more than once.  */
 static const char undefined_msg[] = "undefined symbol: ";
index f0635ea..cb38dfe 100644 (file)
@@ -30,7 +30,7 @@
 #endif
 
 #ifndef VERSYMIDX
-# define VERSYMIDX(sym)        (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym))
+# define VERSYMIDX(sym)        (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
 #endif
 
 
index 0718b8a..6710491 100644 (file)
@@ -29,7 +29,7 @@
 
 
 #ifndef VERSYMIDX
-# define VERSYMIDX(tag)        (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (tag))
+# define VERSYMIDX(tag)        (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (tag))
 #endif
 
 
index 721390d..cf39d1d 100644 (file)
@@ -27,7 +27,7 @@
 #endif
 
 #ifndef VERSYMIDX
-# define VERSYMIDX(sym)        (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym))
+# define VERSYMIDX(sym)        (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
 #endif
 
 /* Perform the relocations in MAP on the running program image as specified
index 5987707..79e17ed 100644 (file)
@@ -22,7 +22,7 @@
 #include <assert.h>
 
 #ifndef VERSYMIDX
-# define VERSYMIDX(sym)        (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym))
+# define VERSYMIDX(sym)        (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
 #endif
 
 
@@ -51,12 +51,12 @@ elf_get_dynamic_info (struct link_map *l)
       if (dyn->d_tag < DT_NUM)
        info[dyn->d_tag] = dyn;
       else if (dyn->d_tag >= DT_LOPROC &&
-              dyn->d_tag < DT_LOPROC + DT_PROCNUM)
+              dyn->d_tag < DT_LOPROC + DT_THISPROCNUM)
        info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn;
       else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM)
        info[VERSYMIDX (dyn->d_tag)] = dyn;
       else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
-       info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM
+       info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM
             + DT_VERSIONTAGNUM] = dyn;
       else
        assert (! "bad dynamic tag");
index 0588b52..38652ca 100644 (file)
@@ -126,14 +126,15 @@ struct link_map
     struct libname_list *l_libname;
     /* Indexed pointers to dynamic section.
        [0,DT_NUM) are indexed by the processor-independent tags.
-       [DT_NUM,DT_NUM+DT_PROCNUM) are indexed by the tag minus DT_LOPROC.
-       [DT_NUM+DT_PROCNUM,DT_NUM+DT_PROCNUM+DT_EXTRANUM) are indexed
+       [DT_NUM,DT_NUM+DT_THISPROCNUM) are indexed by the tag minus DT_LOPROC.
+       [DT_NUM+DT_THISPROCNUM,DT_NUM+DT_THISPROCNUM+DT_EXTRANUM) are indexed
        by DT_EXTRATAGIDX(tagvalue) and
-       [DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM,
-        DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM)
+       [DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM,
+        DT_NUM+DT_THISPROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM)
        are indexed by DT_EXTRATAGIDX(tagvalue) (see <elf.h>).  */
 
-    ElfW(Dyn) *l_info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM];
+    ElfW(Dyn) *l_info[DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM
+                    + DT_EXTRANUM];
     const ElfW(Phdr) *l_phdr;  /* Pointer to program header table in core.  */
     ElfW(Addr) l_entry;                /* Entry point location.  */
     ElfW(Half) l_phnum;                /* Number of program header entries.  */
index 6bf1dba..b83eaa6 100644 (file)
@@ -348,7 +348,7 @@ match_version (const char *string, struct link_map *map)
   const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
   ElfW(Verdef) *def;
 
-#define VERDEFTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (DT_VERDEF))
+#define VERDEFTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERDEF))
   if (map->l_info[VERDEFTAG] == NULL)
     /* The file has no symbol versioning.  */
     return 0;
@@ -953,7 +953,7 @@ of this helper program; chances are you did not intend to run this program.\n\
                } while (l);
            }
 
-#define VERNEEDTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (DT_VERNEED))
+#define VERNEEDTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (DT_VERNEED))
          if (version_info)
            {
              /* Print more information.  This means here, print information
index 8a1764f..cdedd85 100644 (file)
@@ -1 +1,6 @@
-#include <elf/elf.h>
+#ifndef _ELF_H
+# include <elf/elf.h>
+/* Some information which is not meant for the public and therefore not
+   in <elf.h>.  */
+# include <dl-dtprocnum.h>
+#endif
diff --git a/sysdeps/generic/dl-dtprocnum.h b/sysdeps/generic/dl-dtprocnum.h
new file mode 100644 (file)
index 0000000..e734f66
--- /dev/null
@@ -0,0 +1,22 @@
+/* Configuration of lookup functions.
+   Copyright (C) 2000 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Number of extra dynamic section entries for this architecture.  By
+   default there are none.  */
+#define DT_THISPROCNUM 0
diff --git a/sysdeps/ia64/dl-dtprocnum.h b/sysdeps/ia64/dl-dtprocnum.h
new file mode 100644 (file)
index 0000000..bf5e9e4
--- /dev/null
@@ -0,0 +1,22 @@
+/* Configuration of lookup functions.  IA-64 version.
+   Copyright (C) 2000 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Number of extra dynamic section entries for this architecture.  By
+   default there are none.  */
+#define DT_THISPROCNUM DT_IA_64_NUM
diff --git a/sysdeps/mips/dl-dtprocnum.h b/sysdeps/mips/dl-dtprocnum.h
new file mode 100644 (file)
index 0000000..bff02c8
--- /dev/null
@@ -0,0 +1,22 @@
+/* Configuration of lookup functions.  MIPS version.
+   Copyright (C) 2000 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Number of extra dynamic section entries for this architecture.  By
+   default there are none.  */
+#define DT_THISPROCNUM DT_MIPS_NUM
diff --git a/sysdeps/sparc/dl-dtprocnum.h b/sysdeps/sparc/dl-dtprocnum.h
new file mode 100644 (file)
index 0000000..6eedc0e
--- /dev/null
@@ -0,0 +1,22 @@
+/* Configuration of lookup functions.  SPARC version.
+   Copyright (C) 2000 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* Number of extra dynamic section entries for this architecture.  By
+   default there are none.  */
+#define DT_THISPROCNUM DT_SPARC_NUM