about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha/settimeofday.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha/settimeofday.S')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/settimeofday.S16
1 files changed, 13 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/settimeofday.S b/sysdeps/unix/sysv/linux/alpha/settimeofday.S
index b730df7136..ae129ecc1c 100644
--- a/sysdeps/unix/sysv/linux/alpha/settimeofday.S
+++ b/sysdeps/unix/sysv/linux/alpha/settimeofday.S
@@ -32,7 +32,13 @@
 
 .text
 
-LEAF(__settimeofday_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define SETTIMEOFDAY	__settimeofday_tv64
+#else
+#define SETTIMEOFDAY	__settimeofday
+#endif
+
+LEAF(SETTIMEOFDAY, 16)
 	ldgp	gp, 0(pv)
 	subq	sp, 16, sp
 #ifdef PROF
@@ -61,7 +67,7 @@ LEAF(__settimeofday_tv64, 16)
 	/* If we didn't get ENOSYS, it is a real error.  */
 	.align 3
 $err64:	cmpeq	v0, ENOSYS, t0
-	bne	t0, $error
+	beq	t0, $error
 	stl	t0, __libc_missing_axp_tv64
 
 	/* Recover the saved arguments.  */
@@ -91,8 +97,9 @@ $error:
 	addq	sp, 16, sp
 	jmp	zero, (pv), __syscall_error
 
-END(__settimeofday_tv64)
+END(SETTIMEOFDAY)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__settimeofday_tv64, __settimeofday, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -100,3 +107,6 @@ default_symbol_version (__settimeofday_tv64, __settimeofday, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__settimeofday_tv64, __settimeofday_tv64p)
 default_symbol_version (__settimeofday_tv64p, settimeofday, GLIBC_2.1)
+#else
+weak_alias (__settimeofday, settimeofday)
+#endif