about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-cache.c17
-rw-r--r--sysdeps/unix/sysv/linux/alpha/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S11
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.c3
-rw-r--r--sysdeps/unix/sysv/linux/siglist.c1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S5
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list1
8 files changed, 30 insertions, 12 deletions
diff --git a/sysdeps/generic/dl-cache.c b/sysdeps/generic/dl-cache.c
index 36d6c707d3..8eb18b79cc 100644
--- a/sysdeps/generic/dl-cache.c
+++ b/sysdeps/generic/dl-cache.c
@@ -1,5 +1,5 @@
 /* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 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
@@ -88,13 +88,16 @@ _dl_load_cache_lookup (const char *name)
 	! strcmp (name, ((const char *) &cache->libs[cache->nlibs] +
 			 cache->libs[i].key)))
       {
-	best = ((const char *) &cache->libs[cache->nlibs]
-		+ cache->libs[i].value);
+	if ((best == NULL) || (cache->libs[i].flags == 3))
+	  {
+	    best = ((const char *) &cache->libs[cache->nlibs]
+		    + cache->libs[i].value);
 
-	if (cache->libs[i].flags == 3)
-	  /* We've found an exact match for the shared object and no
-	     general `ELF' release.  Stop searching.  */
-	  break;
+	    if (cache->libs[i].flags == 3)
+	      /* We've found an exact match for the shared object and no
+		 general `ELF' release.  Stop searching.  */
+	      break;
+	  }
       }
   return best;
 }
diff --git a/sysdeps/unix/sysv/linux/alpha/Dist b/sysdeps/unix/sysv/linux/alpha/Dist
index 5b5dca44da..c8149ca0de 100644
--- a/sysdeps/unix/sysv/linux/alpha/Dist
+++ b/sysdeps/unix/sysv/linux/alpha/Dist
@@ -10,6 +10,7 @@ kernel_sigaction.h
 kernel_stat.h
 kernel_termios.h
 net/route.h
+rt_sigaction.S
 sys/acct.h
 sys/io.h
 sys/procfs.h
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S
index 5a615efecb..f7eac4d225 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.S
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998 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
@@ -25,8 +25,12 @@
    it somewhere else.
 
    ...and this place is here.  */
-	.comm errno,4,4
-_errno = errno	/* This name is expected by hj's libc.so.5 startup code.  */
+	.data
+	.globl	errno
+errno:
+	.globl	_errno
+_errno:
+	.long	4
 
 /* The following code is only used in the shared library when we
    compile the reentrant version.  Otherwise each system call defines
@@ -41,6 +45,7 @@ _errno = errno	/* This name is expected by hj's libc.so.5 startup code.  */
 #undef CALL_MCOUNT
 #define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax.  */
 
+	.text
 ENTRY (__syscall_error)
 	negl %eax
 
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
index 3896111005..0559cc7065 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 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
@@ -31,3 +31,4 @@ __syscall_error (int err_no)
 /* We also have to have a 'real' definition of errno.  */
 #undef errno
 int errno = 0;
+weak_alias (errno, _errno)
diff --git a/sysdeps/unix/sysv/linux/siglist.c b/sysdeps/unix/sysv/linux/siglist.c
index 520bd8f2a0..a10b273db0 100644
--- a/sysdeps/unix/sysv/linux/siglist.c
+++ b/sysdeps/unix/sysv/linux/siglist.c
@@ -39,6 +39,7 @@ default_symbol_version (__new_sys_siglist, _sys_siglist, GLIBC_2.1);
 default_symbol_version (_new_sys_siglist, sys_siglist, GLIBC_2.1);
 default_symbol_version (__new_sys_sigabbrev, sys_sigabbrev, GLIBC_2.1);
 #else
+weak_alias(__new_sys_siglist, _sys_siglist)
 weak_alias(__new_sys_siglist, sys_siglist)
 weak_alias(__new_sys_sigabbrev, sys_sigabbrev)
 #endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S
index 7e9023901b..8b0a130106 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.S
@@ -1,3 +1,6 @@
 /* Define errno */
 
 	.common errno,4,4
+
+	.globl	_errno
+_errno	= errno
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S
index 736578083c..97adfdf219 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
 
@@ -29,3 +29,6 @@ errno:	.space 4
 
 	.globl __errno
 __errno = errno
+
+	.globl _errno
+_errno = errno
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 16538cee73..3f1491f7bd 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -21,6 +21,7 @@ ioperm		-	ioperm		3	ioperm
 iopl		-	iopl		1	iopl
 ipc		msgget	ipc		5	__ipc
 klogctl		EXTRA	syslog		3	klogctl
+lchown		EXATR	lchown		3	__lchown	lchown
 mlock		EXTRA	mlock		2	__mlock	mlock
 mlockall	EXTRA	mlockall	1	__mlockall	mlockall
 mount		EXTRA	mount		5	__mount	mount