summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-11-05 23:35:36 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-11-05 23:35:36 +0000
commit9cf27b8d09aab26bd4693b10f281d64da779da83 (patch)
treeac2dcd53b3b9d58688d27d67f0e9afb9697ec517 /elf
parentaf83568d3fdc84884378317504b4a2b76371bf8b (diff)
downloadglibc-9cf27b8d09aab26bd4693b10f281d64da779da83.tar.gz
glibc-9cf27b8d09aab26bd4693b10f281d64da779da83.tar.xz
glibc-9cf27b8d09aab26bd4693b10f281d64da779da83.zip
Remove INTDEF / INTUSE / INTVARDEF (bug 14132).
Completing the removal of the obsolete INTDEF / INTUSE mechanism, this
patch removes the final use - that for _dl_starting_up - replacing it
by rtld_hidden_def / rtld_hidden_proto.  Having removed the last use,
the mechanism itself is also removed.

Tested for x86_64 that installed stripped shared libraries are
unchanged by the patch.  (This is not much of a test since this
variable is only defined and used in the !HAVE_INLINED_SYSCALLS case.)

	[BZ #14132]
	* include/libc-symbols.h (INTUSE): Remove macro.
	(INTDEF): Likewise.
	(INTVARDEF): Likewise.
	(_INTVARDEF): Likewise.
	(INTDEF2): Likewise.
	(INTVARDEF2): Likewise.
	* elf/rtld.c [!HAVE_INLINED_SYSCALLS] (_dl_starting_up): Use
	rtld_hidden_def instead of INTVARDEF.
	* sysdeps/generic/ldsodefs.h [IS_IN_rtld]
	(_dl_starting_up_internal): Remove declaration.
	(_dl_starting_up): Use rtld_hidden_proto.
	* elf/dl-init.c [!HAVE_INLINED_SYSCALLS] (_dl_starting_up): Remove
	declaration.
	[!HAVE_INLINED_SYSCALLS] (_dl_starting_up_internal): Likewise.
	(_dl_init) [!HAVE_INLINED_SYSCALLS]: Don't use INTUSE with
	_dl_starting_up.
	* elf/dl-writev.h (_dl_writev): Likewise.
	* sysdeps/powerpc/powerpc64/dl-machine.h [!HAVE_INLINED_SYSCALLS]
	(DL_STARTING_UP_DEF): Use __GI__dl_starting_up instead of
	_dl_starting_up_internal.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-init.c8
-rw-r--r--elf/dl-writev.h2
-rw-r--r--elf/rtld.c4
3 files changed, 4 insertions, 10 deletions
diff --git a/elf/dl-init.c b/elf/dl-init.c
index e5ade47acc..c80ec64a2f 100644
--- a/elf/dl-init.c
+++ b/elf/dl-init.c
@@ -23,12 +23,6 @@
 /* Type of the initializer.  */
 typedef void (*init_t) (int, char **, char **);
 
-#ifndef HAVE_INLINED_SYSCALLS
-/* Flag, nonzero during startup phase.  */
-extern int _dl_starting_up;
-extern int _dl_starting_up_internal attribute_hidden;
-#endif
-
 
 static void
 call_init (struct link_map *l, int argc, char **argv, char **env)
@@ -127,6 +121,6 @@ _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
 
 #ifndef HAVE_INLINED_SYSCALLS
   /* Finished starting up.  */
-  INTUSE(_dl_starting_up) = 0;
+  _dl_starting_up = 0;
 #endif
 }
diff --git a/elf/dl-writev.h b/elf/dl-writev.h
index a5ce6c5166..6eace99ea5 100644
--- a/elf/dl-writev.h
+++ b/elf/dl-writev.h
@@ -42,7 +42,7 @@ _dl_writev (int fd, const struct iovec *iov, size_t niov)
      errno when it's being used by another thread that cares about it.
      Yet we must be sure not to try calling the lock functions before
      the thread library is fully initialized.  */
-  if (__glibc_unlikely (INTUSE (_dl_starting_up)))
+  if (__glibc_unlikely (_dl_starting_up))
     __writev (fd, iov, niov);
   else
     {
diff --git a/elf/rtld.c b/elf/rtld.c
index b07ff435dc..76c57f046f 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -116,7 +116,7 @@ static struct audit_list
    and will be since that dynamic linker's _dl_start and dl_main will
    never be called.  */
 int _dl_starting_up = 0;
-INTVARDEF(_dl_starting_up)
+rtld_hidden_def (_dl_starting_up)
 #endif
 
 /* This is the structure which defines all variables global to ld.so
@@ -778,7 +778,7 @@ dl_main (const ElfW(Phdr) *phdr,
 
 #ifndef HAVE_INLINED_SYSCALLS
   /* Set up a flag which tells we are just starting.  */
-  INTUSE(_dl_starting_up) = 1;
+  _dl_starting_up = 1;
 #endif
 
   if (*user_entry == (ElfW(Addr)) ENTRY_POINT)