aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/socket.c5
-rw-r--r--sysdeps/generic/updwtmpx.c2
-rw-r--r--sysdeps/mach/hurd/Makefile2
-rw-r--r--sysdeps/mach/hurd/err_hurd.sub5
-rw-r--r--sysdeps/mach/hurd/errlist.c4
-rw-r--r--sysdeps/mach/hurd/ftruncate.c7
-rw-r--r--sysdeps/mach/hurd/read.c10
-rw-r--r--sysdeps/mach/hurd/socket.c7
-rw-r--r--sysdeps/mach/hurd/write.c12
-rw-r--r--sysdeps/unix/sysv/linux/netipx/ipx.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c17
11 files changed, 46 insertions, 29 deletions
diff --git a/sysdeps/generic/socket.c b/sysdeps/generic/socket.c
index b946c164e8..0a65f5812e 100644
--- a/sysdeps/generic/socket.c
+++ b/sysdeps/generic/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 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
@@ -23,7 +23,7 @@
protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.
Returns a file descriptor for the new socket, or -1 for errors. */
int
-socket (domain, type, protocol)
+__socket (domain, type, protocol)
int domain;
int type;
int protocol;
@@ -33,5 +33,6 @@ socket (domain, type, protocol)
}
+weak_alias (__socket, socket)
stub_warning (socket)
#include <stub-tag.h>
diff --git a/sysdeps/generic/updwtmpx.c b/sysdeps/generic/updwtmpx.c
index 097bf380d2..e76a9aad28 100644
--- a/sysdeps/generic/updwtmpx.c
+++ b/sysdeps/generic/updwtmpx.c
@@ -21,7 +21,7 @@
#include <utmpx.h>
void
-__updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
+updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
{
__updwtmp (wtmpx_file, (const struct utmp *) utmpx);
}
diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile
index 55b333f929..f4251024b1 100644
--- a/sysdeps/mach/hurd/Makefile
+++ b/sysdeps/mach/hurd/Makefile
@@ -123,7 +123,7 @@ $(inst_libdir)/libc.so: $(rpcuserlibs)
# linker, too. It must be self-contained, so we link the needed PIC
# objects directly into the shared object.
ifeq (elf,$(subdir))
-$(objpfx)librtld.so: $(rpcuserlibs:.so=_pic.a)
+$(objpfx)librtld.os: $(rpcuserlibs:.so=_pic.a)
endif
diff --git a/sysdeps/mach/hurd/err_hurd.sub b/sysdeps/mach/hurd/err_hurd.sub
index b077d24786..4a4dee3aa3 100644
--- a/sysdeps/mach/hurd/err_hurd.sub
+++ b/sysdeps/mach/hurd/err_hurd.sub
@@ -1,11 +1,12 @@
/* This file defines the Mach error system for Hurd server errors. */
-#include <stdio.h>
#include <errno.h>
+extern const char *const _hurd_errlist[];
+
/* Omit `const' because we are included with `static'
defined to `static const'. */
static struct error_subsystem err_hurd_sub[] =
{
- { "(os/hurd)", _HURD_ERRNOS, (const char *const *) _sys_errlist },
+ { "(os/hurd)", _HURD_ERRNOS, (const char *const *) _hurd_errlist },
};
diff --git a/sysdeps/mach/hurd/errlist.c b/sysdeps/mach/hurd/errlist.c
index f1ca0dc3ae..8e18f41f22 100644
--- a/sysdeps/mach/hurd/errlist.c
+++ b/sysdeps/mach/hurd/errlist.c
@@ -26,3 +26,7 @@
#define ERR_REMAP(n) (err_get_code (n))
#include <sysdeps/gnu/errlist.c>
+
+/* Oblige programs that use sys_nerr, but don't use sys_errlist. */
+weak_alias (_hurd_nerr, sys_nerr)
+weak_alias (_hurd_nerr, _sys_nerr)
diff --git a/sysdeps/mach/hurd/ftruncate.c b/sysdeps/mach/hurd/ftruncate.c
index 21987ad53e..67f428e55d 100644
--- a/sysdeps/mach/hurd/ftruncate.c
+++ b/sysdeps/mach/hurd/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 97, 98 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
@@ -18,6 +18,7 @@
#include <sys/types.h>
#include <errno.h>
+#include <unistd.h>
#include <hurd.h>
#include <hurd/fd.h>
@@ -25,10 +26,12 @@
int
ftruncate (fd, length)
int fd;
- off_t length;
+ __off_t length;
{
error_t err;
if (err = HURD_DPORT_USE (fd, __file_set_size (port, length)))
return __hurd_dfail (fd, err);
return 0;
}
+
+weak_alias (__ftruncate, ftruncate)
diff --git a/sysdeps/mach/hurd/read.c b/sysdeps/mach/hurd/read.c
index b5861cc860..f6d8f390b9 100644
--- a/sysdeps/mach/hurd/read.c
+++ b/sysdeps/mach/hurd/read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1994, 1995, 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
@@ -23,13 +23,11 @@
/* Read NBYTES into BUF from FD. Return the number read or -1. */
ssize_t
-__read (fd, buf, nbytes)
- int fd;
- void *buf;
- size_t nbytes;
+__libc_read (int fd, void *buf, size_t nbytes)
{
error_t err = HURD_FD_USE (fd, _hurd_fd_read (descriptor, buf, &nbytes));
return err ? __hurd_dfail (fd, err) : nbytes;
}
-weak_alias (__read, read)
+weak_alias (__libc_read, __read)
+weak_alias (__libc_read, read)
diff --git a/sysdeps/mach/hurd/socket.c b/sysdeps/mach/hurd/socket.c
index 015d6ea448..c21155bde6 100644
--- a/sysdeps/mach/hurd/socket.c
+++ b/sysdeps/mach/hurd/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 93, 94, 95, 96, 97, 98 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
@@ -26,9 +26,8 @@
/* Create a new socket of type TYPE in domain DOMAIN, using
protocol PROTOCOL. If PROTOCOL is zero, one is chosen automatically.
Returns a file descriptor for the new socket, or -1 for errors. */
-/* XXX should be __socket ? */
int
-socket (domain, type, protocol)
+__socket (domain, type, protocol)
int domain;
int type;
int protocol;
@@ -65,3 +64,5 @@ socket (domain, type, protocol)
return _hurd_intern_fd (sock, O_IGNORE_CTTY, 1);
}
+
+weak_alias (__socket, socket)
diff --git a/sysdeps/mach/hurd/write.c b/sysdeps/mach/hurd/write.c
index e3b4b695f2..7cd715e5a7 100644
--- a/sysdeps/mach/hurd/write.c
+++ b/sysdeps/mach/hurd/write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 97, 98 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
@@ -22,15 +22,11 @@
#include <hurd/fd.h>
ssize_t
-__write (fd, buf, nbytes)
- int fd;
- const void *buf;
- size_t nbytes;
+__libc_write (int fd, const void *buf, size_t nbytes)
{
error_t err = HURD_FD_USE (fd, _hurd_fd_write (descriptor, buf, &nbytes));
return err ? __hurd_dfail (fd, err) : nbytes;
}
-
-
-weak_alias (__write, write)
+weak_alias (__libc_write, __write)
+weak_alias (__libc_write, write)
diff --git a/sysdeps/unix/sysv/linux/netipx/ipx.h b/sysdeps/unix/sysv/linux/netipx/ipx.h
index ec93c8185c..8a7b6cf804 100644
--- a/sysdeps/unix/sysv/linux/netipx/ipx.h
+++ b/sysdeps/unix/sysv/linux/netipx/ipx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 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
@@ -22,7 +22,7 @@
#include <features.h>
#include <sys/types.h>
-#include <sys/socket.h>
+#include <bits/sockaddr.h>
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
index 521ba1ae5c..7e5acc83cb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
@@ -24,13 +24,26 @@
#define DL_FIND_ARG_COMPONENTS(cookie, argc, argv, envp, auxp) \
do { \
char **_tmp; \
+ size_t _test; \
(argc) = *(long *) cookie; \
(argv) = (char **) cookie + 1; \
(envp) = (argv) + (argc) + 1; \
for (_tmp = (envp); *_tmp; ++_tmp) \
continue; \
- (auxp) = (void *) ++_tmp; \
- (auxp) = (void *)(((size_t)(auxp) + 0xF) & 0xFFFFFFF0); \
+ /* The following '++' is important! */ \
+ ++_tmp; \
+ \
+ _test = (size_t)_tmp; \
+ _test = _test + 0xf & ~0xf; \
+ /* Under some circumstances, MkLinux (up to at least DR3a5) \
+ omits the padding. To work around this, we make a \
+ basic sanity check of the argument vector. Of \
+ course, this means that in future, the argument \
+ vector will have to be laid out to allow for this \
+ test :-(. */ \
+ if (((ElfW(auxv_t) *)_test)->a_type <= 0x10) \
+ _tmp = (char **)_test; \
+ (auxp) = (ElfW(auxv_t) *) _tmp; \
} while (0)