diff options
47 files changed, 328 insertions, 221 deletions
@@ -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. @@ -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). + ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ @@ -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 *'. @@ -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 ( |
