aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog103
-rw-r--r--FAQ7
-rwxr-xr-xconfigure2
-rw-r--r--configure.in2
-rw-r--r--dirent/dirent.h10
-rw-r--r--errno.h7
-rw-r--r--features.h6
-rw-r--r--libio/cleanup.c4
-rw-r--r--libio/iopopen.c4
-rw-r--r--libio/stdio.h2
-rw-r--r--locale/programs/ld-numeric.c1
-rw-r--r--locale/programs/locale.c1
-rw-r--r--mach/Machrules2
-rw-r--r--misc/paths.h2
-rw-r--r--sunrpc/rpc/types.h3
-rw-r--r--sunrpc/xdr.c49
-rw-r--r--sunrpc/xdr_mem.c2
-rw-r--r--sunrpc/xdr_rec.c4
-rw-r--r--sunrpc/xdr_stdio.c2
-rw-r--r--sysdeps/alpha/bb_init_func.S4
-rw-r--r--sysdeps/alpha/copysign.c31
-rw-r--r--sysdeps/alpha/divrem.h2
-rw-r--r--sysdeps/generic/memcmp.c7
-rw-r--r--sysdeps/unix/_exit.S1
-rw-r--r--sysdeps/unix/alpha/sysdep.S (renamed from sysdeps/unix/sysv/linux/alpha/sysdep.S)9
-rw-r--r--sysdeps/unix/alpha/sysdep.h50
-rw-r--r--sysdeps/unix/bsd/osf/alpha/start.S2
-rw-r--r--sysdeps/unix/bsd/osf/alpha/sysdep.S40
-rw-r--r--sysdeps/unix/bsd/sun/sunos4/tcsetattr.c2
-rw-r--r--sysdeps/unix/execve.S1
-rw-r--r--sysdeps/unix/fork.S1
-rw-r--r--sysdeps/unix/getegid.S1
-rw-r--r--sysdeps/unix/geteuid.S1
-rw-r--r--sysdeps/unix/getppid.S1
-rw-r--r--sysdeps/unix/make-syscalls.sh2
-rw-r--r--sysdeps/unix/syscall.S1
-rw-r--r--sysdeps/unix/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/llseek.S10
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pipe.S16
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigsuspend.S4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/start.S95
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S18
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h12
-rw-r--r--sysdeps/unix/sysv/linux/gnu/types.h7
47 files changed, 328 insertions, 221 deletions
diff --git a/ChangeLog b/ChangeLog
index 7686cd774e..e16a548046 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,109 @@ Wed Jun 19 03:24:58 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/setlocale.c (setlocale): Initialize local variables to
prevent warnings.
+Thu Jun 13 17:25:11 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/generic/memcmp.c: Add prototype decls for internal fns.
+
+ * locale/programs/locale.c: Include string.h.
+
+ * sunrpc/xdr_stdio.c (xdrstdio_getlong), sunrpc/xdr_rec.c
+ (xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
+ appropriate sign-extension is performed on machines with
+ sizeof(long) > 4.
+
+ * sunrpc/xdr.c (xdr_int, xdr_u_int): If sizeof(long)==8 and
+ sizeof(int)<sizeof(long), we need to go through a temporary
+ variable.
+
+ * locale/programs/ld-numeric.c: Include <alloca.h>
+
+ * libio/stdio.h (__libc_fatal): Add prototype.
+
+ * libio/cleanup.c: Use __P() to declare prototype when __STDC__ is
+ in efect.
+
+ * libio/iopopen.c (read_or_write, parent_end, child_end): Declare
+ volatile to avoid "might get clobbered by longjmp" warning.
+
+ * features.h (__KERNEL_STRICT_NAMES): Define __KERNEL_STRICT_NAMES
+ unless _LOOSE_KERNEL_NAMES is in effect (which, with high
+ probability is a sure loser).
+ * sysdeps/unix/sysv/linux/gnu/types.h (__KERNEL_STRICT_NAMES): Remove.
+
+ * sysdeps/unix/bsd/osf/alpha/start.S (errno): Removed.
+ * sysdeps/unix/sysv/linux/alpha/start.S: Ditto.
+
+ * misc/paths.h (_PATH_MAN): Change from /usr/share/man to /usr/man
+ to be Linux FSSTND compliant.
+
+Mon Jun 10 17:50:31 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/unix/sysv/linux/alpha/pipe.S: Use PSEUDO.
+
+ * sysdeps/unix/sysv/linux/alpha/sysdep.S,
+ sysdeps/unix/sysv/linux/alpha/brk.S,
+ sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
+ sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
+ sysdeps/unix/sysv/linux/alpha/llseek.S,
+ sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
+ sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
+ __syscall_error to avoid intruding application name space.
+
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h: Rename __NR_get?id
+ to SYS_get?id so that syscall stubs in sysdeps/unix define
+ these syscalls in terms of getxpid/getxuid/getxgid.
+
+ * sysdeps/unix/_exit.S, sysdeps/unix/getegid.S,
+ sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
+ sysdeps/unix/execve.S, sysdeps/unix/fork.S,
+ sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
+
+ * sysdeps/unix/make-syscalls.sh, sysdeps/unix/sysdep.h
+ (PSEUDO_END): Rename END() to PSEUDO_END().
+
+ * sysdeps/unix/alpha/sysdep.h: Move error-handling code in PSEUDO
+ to PSEUDO_END to improve branch-prediction. Include .frame
+ directive to make syscalls debugabble.
+ (PSEUDO_END): New macro.
+
+ * sysdeps/unix/alpha/sysdep.h, sysdeps/alpha/bb_init_func.S,
+ sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
+ latter is illegal under DEC Unix.
+
+ * sysdeps/unix/alpha/sysdep.S: Renamed from
+ sysdeps/unix/sysv/linux/alpha/sysdep.S. This file works for OSF/1
+ as well.
+ * sysdeps/unix/bsd/osf/alpha/sysdep.S: Remove (note that the
+ EWOULDBLOCK -> EAGAIN mapping was unnecessary since
+ EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
+
+ * sysdeps/alpha/divrem.h: Use retaddr instead of ra as the return
+ address register in the .frame directive.
+
+ * sysdeps/alpha/copysign.c: Remove.
+
+ * sunrpc/rpc/types.h: Include <sys/param.h> and <netinet/in.h> to
+ avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
+
+ * errno.h: Move __END_DECLS to correct place to make file
+ compilable under c++.
+
+ * dirent/dirent.h: Document _DIRENT_HAVE_D_OFF macro. Define
+ d_ino only if <direntry.h> hasn't defined d_fileno.
+
+ * configure.in (HAVE_ASM_WEAKEXT_DIRECTIVE): Reverse order of
+ arguments to weakext to make .weakext detection work on ECOFF systems.
+
+ * FAQ: Add Linux/Alpha to list of supported platforms. Mention
+ that _validuser() has been replaced by __ivaliduser().
+
+Thu Jun 6 21:39:38 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/unix/bsd/sun/sunos4/tcsetattr.c (tcsetattr): Declare cmd
+ as unsigned long, not as int (to avoid incorrect int->long
+ promotion).
+
Tue Jun 18 17:56:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Version 1.91 test release.
diff --git a/FAQ b/FAQ
index 87df40e61f..2714779ae8 100644
--- a/FAQ
+++ b/FAQ
@@ -50,6 +50,7 @@ in the future are:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
+ alpha-*-linux Linux on Alpha
Other Linux platforms are also on the way to be supported but I need
some success reports first.
@@ -214,6 +215,12 @@ incompatibilities:
init_module init_module <sys/module.h>
syslog ksyslog_ctl <sys/klog.h>
+* lpd: Older versions of lpd depend on an routine called _validuser().
+ The library does not provide this function, but instead provides
+ __ivaliduser() which has a slightly different interfaces. Simply
+ upgrading to a newer lpd should fix this problem (e.g., the BSD 4.4
+ lpd is known to be working).
+
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
diff --git a/configure b/configure
index 76c58881c9..0b248a4726 100755
--- a/configure
+++ b/configure
@@ -1483,7 +1483,7 @@ else
${libc_cv_asm_global_directive} foo
foo: .long 0
.weakext foo
-.weakext bar, foo
+.weakext foo, bar
EOF
if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
libc_cv_asm_weakext_directive=yes
diff --git a/configure.in b/configure.in
index eceb4da989..e8e9121efd 100644
--- a/configure.in
+++ b/configure.in
@@ -455,7 +455,7 @@ cat > conftest.s <<EOF
${libc_cv_asm_global_directive} foo
foo: .long 0
.weakext foo
-.weakext bar, foo
+.weakext foo, bar
EOF
if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
libc_cv_asm_weakext_directive=yes
diff --git a/dirent/dirent.h b/dirent/dirent.h
index 19e663bef5..3b708ebc78 100644
--- a/dirent/dirent.h
+++ b/dirent/dirent.h
@@ -35,12 +35,16 @@ __BEGIN_DECLS
member that gives the length of `d_name'.
It defines the macro `_DIRENT_HAVE_D_RECLEN' iff there is a `d_reclen'
- member that gives the size of the entire directory entry. */
+ member that gives the size of the entire directory entry.
+
+ It defines the macro `_DIRENT_HAVE_D_OFF' iff there is a `d_off'
+ member that gives the file offset of the next directory entry.
+ */
#include <direntry.h>
-#if defined(__USE_BSD) || defined(__USE_MISC)
-#define d_ino d_fileno /* Backward compatibility. */
+#if (defined(__USE_BSD) || defined(__USE_MISC)) && !defined(d_fileno)
+#define d_ino d_fileno /* Backward compatibility. */
#endif
/* These macros extract size information from a `struct dirent *'.
diff --git a/errno.h b/errno.h
index a9c9acdff2..029d43537f 100644
--- a/errno.h
+++ b/errno.h
@@ -60,10 +60,9 @@ typedef int error_t;
invoked. These variables are set up automatically at startup based on
the value of ARGV[0] (this works only if you use GNU ld). */
extern char *program_invocation_name, *program_invocation_short_name;
-#endif /* Use GNU. */
-
-#endif /* errno.h included */
+#endif /* __USE_GNU */
+#endif /* _ERRNO_H */
__END_DECLS
-#endif /* errno.h */
+#endif /* errno.h */
diff --git a/features.h b/features.h
index 015e230cde..4aee806ba8 100644
--- a/features.h
+++ b/features.h
@@ -66,7 +66,13 @@ Cambridge, MA 02139, USA. */
#undef __USE_GNU
#undef __USE_REENTRANT
#undef __FAVOR_BSD
+#undef __KERNEL_STRICT_NAMES
+/* Suppress kernel-name space pollution unless user expressedly asks
+ for it: */
+#ifndef _LOOSE_KERNEL_NAMES
+# define __KERNEL_STRICT_NAMES
+#endif
/* Always use ANSI things. */
#define __USE_ANSI 1
diff --git a/libio/cleanup.c b/libio/cleanup.c
index 1f316ebb33..4a068083d0 100644
--- a/libio/cleanup.c
+++ b/libio/cleanup.c
@@ -14,7 +14,7 @@ DEFUN_VOID(_IO_register_cleanup)
_IO_cleanup_registration_needed = 0;
}
-void (*_IO_cleanup_registration_needed)() = _IO_register_cleanup;
+void (*_IO_cleanup_registration_needed) __P((void)) = _IO_register_cleanup;
#else
-void (*_IO_cleanup_registration_needed)() = NULL;
+void (*_IO_cleanup_registration_needed) __P((void)) = NULL;
#endif /* _G_HAVE_ATEXIT */
diff --git a/libio/iopopen.c b/libio/iopopen.c
index b9ee737502..5b9bd4844d 100644
--- a/libio/iopopen.c
+++ b/libio/iopopen.c
@@ -84,9 +84,9 @@ DEFUN(_IO_proc_open, (fp, command, mode),
_IO_FILE* fp AND const char *command AND const char *mode)
{
#if _IO_HAVE_SYS_WAIT
- int read_or_write;
+ volatile int read_or_write;
+ volatile int parent_end, child_end;
int pipe_fds[2];
- int parent_end, child_end;
_IO_pid_t child_pid;
if (_IO_file_is_open(fp))
return NULL;
diff --git a/libio/stdio.h b/libio/stdio.h
index 022d210999..048a11d60c 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -145,6 +145,8 @@ extern int ungetc __P ((int c, FILE* fp));
extern int vfprintf __P ((FILE *fp, char __const *fmt0, _G_va_list));
extern int vprintf __P ((char __const *fmt, _G_va_list));
extern int vsprintf __P ((char* string, __const char* format, _G_va_list));
+extern void __libc_fatal __P ((__const char *__message))
+ __attribute__ ((__noreturn__));
#ifndef __STRICT_ANSI__
extern int dprintf __P ((int, __const char *, ...));
diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c
index dcee7bdb4e..dd5ced7206 100644
--- a/locale/programs/ld-numeric.c
+++ b/locale/programs/ld-numeric.c
@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
# include <config.h>
#endif
+#include <alloca.h>
#include <langinfo.h>
#include <string.h>
diff --git a/locale/programs/locale.c b/locale/programs/locale.c
index 41c7b1d46e..ef5d9ae825 100644
--- a/locale/programs/locale.c
+++ b/locale/programs/locale.c
@@ -30,6 +30,7 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
+#include <string.h>
#include "localeinfo.h"
diff --git a/mach/Machrules b/mach/Machrules
index 0015e303e1..4bde0fe8b4 100644
--- a/mach/Machrules
+++ b/mach/Machrules
@@ -140,7 +140,7 @@ $(objpfx)%_server.c $(objpfx)%_server.h:
$(include-%.defs) | \
$(MIG) - /dev/null -prefix _S_ \
$(MIGFLAGS) $(server-MIGFLAGS) $(MIGFLAGS-$*) \
- $< -user /dev/null -header /dev/null \
+ -user /dev/null -header /dev/null \
-server $(@:.h=.c) -sheader $(@:.c=.h)
# To get header files that declare both the straight and __ functions,
diff --git a/misc/paths.h b/misc/paths.h
index 5f7a6b4cd5..00a546feb6 100644
--- a/misc/paths.h
+++ b/misc/paths.h
@@ -50,7 +50,7 @@
#define _PATH_DRUM "/dev/drum"
#define _PATH_KMEM "/dev/kmem"
#define _PATH_MAILDIR "/var/mail"
-#define _PATH_MAN "/usr/share/man"
+#define _PATH_MAN "/usr/man"
#define _PATH_MEM "/dev/mem"
#define _PATH_NOLOGIN "/etc/nologin"
#define _PATH_SENDMAIL "/usr/sbin/sendmail"
diff --git a/sunrpc/rpc/types.h b/sunrpc/rpc/types.h
index 1f620eff8f..032543f448 100644
--- a/sunrpc/rpc/types.h
+++ b/sunrpc/rpc/types.h
@@ -52,6 +52,9 @@ extern char *malloc();
#include <sys/types.h>
#endif
#include <sys/time.h>
+#include <sys/param.h>
+
+#include <netinet/in.h>
#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK (u_long)0x7F000001
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index a79db85b86..fccc2a5fe5 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -99,10 +99,30 @@ xdr_int(xdrs, ip)
(void) (xdr_short(xdrs, (short *)ip));
return (xdr_long(xdrs, (long *)ip));
#else
- if (sizeof (int) == 4) {
+ if (sizeof (int) < sizeof (long)) {
+ long l;
+
+ switch (xdrs->x_op) {
+ case XDR_ENCODE:
+ l = (long) *ip;
+ return XDR_PUTLONG(xdrs, &l);
+
+ case XDR_DECODE:
+ if (!XDR_GETLONG(xdrs, &l)) {
+ return FALSE;
+ }
+ *ip = (int) l;
+ return TRUE;
+ }
+ } else if (sizeof (int) == sizeof (long)) {
return (xdr_long(xdrs, (long *)ip));
- } else {
+ } else if (sizeof (int) == sizeof (short)) {
return (xdr_short(xdrs, (short *)ip));
+ } else {
+ /* force unresolved reference (link-time error): */
+ extern unexpected_sizes_in_xdr_int ();
+
+ unexpected_sizes_in_xdr_int();
}
#endif
}
@@ -115,15 +135,34 @@ xdr_u_int(xdrs, up)
XDR *xdrs;
u_int *up;
{
-
#ifdef lint
(void) (xdr_short(xdrs, (short *)up));
return (xdr_u_long(xdrs, (u_long *)up));
#else
- if (