about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-04 01:28:04 +0000
committerRoland McGrath <roland@gnu.org>2002-08-04 01:28:04 +0000
commit4547dee327b2a992fb5c7a39df41d19c1fc0bae6 (patch)
tree2befc8a95eadfa856af6e13682518516dafa19cb
parent6111cd0e8a327ee3084c67e86b6ad050c6d83096 (diff)
downloadglibc-4547dee327b2a992fb5c7a39df41d19c1fc0bae6.tar.gz
glibc-4547dee327b2a992fb5c7a39df41d19c1fc0bae6.tar.xz
glibc-4547dee327b2a992fb5c7a39df41d19c1fc0bae6.zip
2002-08-03 Roland McGrath <roland@redhat.com>
	* include/libc-symbols.h: Fix [__ASSEMBLY__] -> [__ASSEMBLER__].
	[__ASSEMBLER__] (hidden_weak): Define using hidden_def, or to empty.
	[__ASSEMBLER__] (HIDDEN_JUMPTARGET): New macro.
	* sysdeps/unix/sysv/linux/i386/makecontext.S: Use it for exit.
-rw-r--r--include/libc-symbols.h18
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S4
2 files changed, 14 insertions, 8 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 74fea25e9e..03602327f5 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -508,16 +508,22 @@
    are defined by its normal name and we need to create the
    __GI_* alias to it, in C __REDIRECT causes the function definition
    to use __GI_* name and we need to add alias to the real name.
-   hidden_proto and hidden_weak don't make sense for assembly.  */
-#  define hidden_def(name) strong_alias (name, __GI_##name)
-#  define hidden_weak(name) weak_alias (name, __GI_##name)
+   There is no reason to use hidden_weak over hidden_def in assembly,
+   but we provide it for consistency with the C usage.
+   hidden_proto doesn't make sense for assembly but the equivalent
+   is to call via the HIDDEN_JUMPTARGET macro einstead of JUMPTARGET.  */
+#  define hidden_def(name)	strong_alias (name, __GI_##name)
+#  define hidden_weak(name)	hidden_def (name)
 #  define hidden_ver(local, name) strong_alias (local, __GI_##name)
+#  define HIDDEN_JUMPTARGET(name) __GI_##name
 # endif
 #else
-# ifndef __ASSEMBLY__
+# ifndef __ASSEMBLER__
 #  define hidden_proto(name)
-#  define hidden_weak(name)
-# endif
+# else
+#  define HIDDEN_JUMPTARGET(name) JUMPTARGET(name)
+# endif /* Not  __ASSEMBLER__ */
+# define hidden_weak(name)
 # define hidden_def(name)
 # define hidden_ver(local, name)
 #endif
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
index 56b5537ce3..ec49b74b9a 100644
--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
+++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
@@ -1,5 +1,5 @@
 /* Create new context.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001,02 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
@@ -104,7 +104,7 @@ L(exitcode):
 	   exit the program with the return error value (-1).  */
 
 2:	pushl	%eax
-	call	JUMPTARGET(exit)
+	call	HIDDEN_JUMPTARGET(exit)
 	/* The 'exit' call should never return.  In case it does cause
 	   the process to terminate.  */
 	hlt