From deb84c43b1bb0958d942e6739f136d4c11189b3b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 10 May 2009 18:38:52 +0000 Subject: [PATCH 01/76] * version.h (VERSION): Bump to 2.10.1. * nss/getXXbyYY_r.c: If NO_COMPAT_NEEDED is defined don't define any compatibility functions. * nss/getXXent_r.c: Likewise. * gshadow/getsgent_r.c: Define NO_COMPAT_NEEDED. * gshadow/getsgnam_r.c: Likewise. * gshadow/Version: Remove duplicate entries. * sysdeps/x86_64/cacheinfo.c (intel_02_cache_info): Add missing entries for recent processor. * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_cache_info): Likewise. --- ChangeLog | 16 ++++++++++++++++ gshadow/Versions | 2 +- gshadow/getsgent_r.c | 1 + gshadow/getsgnam_r.c | 1 + nss/getXXbyYY_r.c | 6 ++++-- nss/getXXent_r.c | 20 ++++++++++++-------- sysdeps/unix/sysv/linux/i386/sysconf.c | 1 + sysdeps/x86_64/cacheinfo.c | 1 + version.h | 2 +- 9 files changed, 38 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2eb3c61f2a..e3afa8543c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2009-05-10 Ulrich Drepper + + * version.h (VERSION): Bump to 2.10.1. + + * nss/getXXbyYY_r.c: If NO_COMPAT_NEEDED is defined don't define any + compatibility functions. + * nss/getXXent_r.c: Likewise. + * gshadow/getsgent_r.c: Define NO_COMPAT_NEEDED. + * gshadow/getsgnam_r.c: Likewise. + * gshadow/Version: Remove duplicate entries. + + * sysdeps/x86_64/cacheinfo.c (intel_02_cache_info): Add missing entries + for recent processor. + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_cache_info): + Likewise. + 2009-05-09 Ulrich Drepper * version.h (VERSION): Bump for 2.10 release. diff --git a/gshadow/Versions b/gshadow/Versions index 00a410b74f..1dba0c5f19 100644 --- a/gshadow/Versions +++ b/gshadow/Versions @@ -7,7 +7,7 @@ libc { fgetsgent; fgetsgent_r; # g* - getsgent; getsgent_r; getsgnam; getsgnam_r; getsgent_r; getsgnam_r; + getsgent; getsgent_r; getsgnam; getsgnam_r; # p* putsgent; diff --git a/gshadow/getsgent_r.c b/gshadow/getsgent_r.c index 336110ec89..9feea9f047 100644 --- a/gshadow/getsgent_r.c +++ b/gshadow/getsgent_r.c @@ -26,5 +26,6 @@ #define ENDFUNC_NAME endsgent #define DATABASE_NAME gshadow #define BUFLEN 1024 +#define NO_COMPAT_NEEDED 1 #include "../nss/getXXent_r.c" diff --git a/gshadow/getsgnam_r.c b/gshadow/getsgnam_r.c index c89fb06bfa..a9ab764675 100644 --- a/gshadow/getsgnam_r.c +++ b/gshadow/getsgnam_r.c @@ -26,5 +26,6 @@ #define ADD_PARAMS const char *name #define ADD_VARIABLES name #define BUFLEN 1024 +#define NO_COMPAT_NEEDED 1 #include "../nss/getXXbyYY_r.c" diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c index b535f67a7b..16dadd70ef 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1996-2004, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -301,7 +301,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, } -#ifndef FUNCTION2_NAME +#ifdef NO_COMPAT_NEEDED +strong_alias (INTERNAL (REENTRANT_NAME), REENTRANT_NAME); +#elif !defined FUNCTION2_NAME # include # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1_2) # define OLD(name) OLD1 (name) diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c index 7a881c02ac..d53caeff40 100644 --- a/nss/getXXent_r.c +++ b/nss/getXXent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000,2002,2004,2007 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000,2002,2004,2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -170,10 +170,13 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, } -#include -#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1_2) -#define OLD(name) OLD1 (name) -#define OLD1(name) __old_##name +#ifdef NO_COMPAT_NEEDED +strong_alias (INTERNAL (REENTRANT_GETNAME), REENTRANT_GETNAME); +#else +# include +# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1_2) +# define OLD(name) OLD1 (name) +# define OLD1(name) __old_##name int attribute_compat_text_section @@ -189,20 +192,21 @@ OLD (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, return ret; } -#define do_symbol_version(real, name, version) \ +# define do_symbol_version(real, name, version) \ compat_symbol (libc, real, name, version) do_symbol_version (OLD (REENTRANT_GETNAME), REENTRANT_GETNAME, GLIBC_2_0); -#endif +# endif /* As INTERNAL (REENTRANT_GETNAME) may be hidden, we need an alias in between so that the REENTRANT_GETNAME@@GLIBC_2.1.2 is not hidden too. */ strong_alias (INTERNAL (REENTRANT_GETNAME), NEW (REENTRANT_GETNAME)); -#define do_default_symbol_version(real, name, version) \ +# define do_default_symbol_version(real, name, version) \ versioned_symbol (libc, real, name, version) do_default_symbol_version (NEW (REENTRANT_GETNAME), REENTRANT_GETNAME, GLIBC_2_1_2); +#endif static_link_warning (SETFUNC_NAME) static_link_warning (ENDFUNC_NAME) diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c index b1c93d7359..f59e0c3fad 100644 --- a/sysdeps/unix/sysv/linux/i386/sysconf.c +++ b/sysdeps/unix/sysv/linux/i386/sysconf.c @@ -80,6 +80,7 @@ static const struct intel_02_cache_info { 0x0a, _SC_LEVEL1_DCACHE_SIZE, 8192, 2, 32 }, { 0x0c, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 32 }, { 0x0d, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, + { 0x21, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, { 0x22, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, { 0x23, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, { 0x25, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c index 8769e9c966..1ec4ca19c9 100644 --- a/sysdeps/x86_64/cacheinfo.c +++ b/sysdeps/x86_64/cacheinfo.c @@ -42,6 +42,7 @@ static const struct intel_02_cache_info { 0x0a, _SC_LEVEL1_DCACHE_SIZE, 8192, 2, 32 }, { 0x0c, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 32 }, { 0x0d, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, + { 0x21, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, { 0x22, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, { 0x23, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, { 0x25, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, diff --git a/version.h b/version.h index 55360008f4..f169c6a0fa 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ #define RELEASE "stable" -#define VERSION "2.10" +#define VERSION "2.10.1" From 774f5a3082b9b55a7668e3a92dc847de577c4946 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 08:01:09 -0700 Subject: [PATCH 02/76] Test DSOs for executable stack. Add a text program, built to run on the host, to check all newly built DSOs for executable stacks and fail if the stack information is missing or indicates executable stacks. --- ChangeLog | 5 ++ elf/Makefile | 14 +++- elf/check-execstack.c | 158 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 elf/check-execstack.c diff --git a/ChangeLog b/ChangeLog index e3afa8543c..cb52b49da4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-15 Ulrich Drepper + + * elf/check-execstack.c: New file. + * elf/Makefile: Add rules to build and run check-execstack. + 2009-05-10 Ulrich Drepper * version.h (VERSION): Bump to 2.10.1. diff --git a/elf/Makefile b/elf/Makefile index e44ff1d382..94b9d069bf 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -93,7 +93,7 @@ distribute := rtld-Rules \ order2mod1.c order2mod2.c order2mod3.c order2mod4.c \ tst-stackguard1.c tst-stackguard1-static.c \ tst-array5.c tst-array5-static.c tst-array5dep.c \ - tst-array5.exp tst-leaks1.c + tst-array5.exp tst-leaks1.c check-execstack.c CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables @@ -842,12 +842,16 @@ check-textrel-CFLAGS = -O -Wall -D_XOPEN_SOURCE=600 -D_BSD_SOURCE $(objpfx)check-textrel: check-textrel.c $(native-compile) +check-execstack-CFLAGS = -O -Wall -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -std=gnu99 +$(objpfx)check-execstack: check-execstack.c + $(native-compile) + check-localplt-CFLAGS = -O -Wall -D_GNU_SOURCE -std=gnu99 $(objpfx)check-localplt: check-localplt.c $(native-compile) ifeq (yes,$(build-shared)) -tests: $(objpfx)check-textrel.out +tests: $(objpfx)check-textrel.out $(objpfx)check-execstack.out $(objpfx)check-textrel.out: $(objpfx)check-textrel $(dir $<)$(notdir $<) $(common-objpfx)libc.so \ @@ -855,6 +859,12 @@ $(objpfx)check-textrel.out: $(objpfx)check-textrel $(common-objpfx)iconvdata/*.so)) > $@ generated += check-textrel check-textrel.out +$(objpfx)check-execstack.out: $(objpfx)check-execstack + $(dir $<)$(notdir $<) $(common-objpfx)libc.so \ + $(sort $(wildcard $(common-objpfx)*/lib*.so \ + $(common-objpfx)iconvdata/*.so)) > $@ +generated += check-execstack check-execstack.out + $(objpfx)tst-dlmodcount: $(libdl) $(objpfx)tst-dlmodcount.out: $(test-modules) diff --git a/elf/check-execstack.c b/elf/check-execstack.c new file mode 100644 index 0000000000..55cf48721a --- /dev/null +++ b/elf/check-execstack.c @@ -0,0 +1,158 @@ +/* Check for executable stacks in DSOs. + Copyright (C) 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contribute by Ulrich Drepper . 2009. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifdef BITS + +# define AB(name) _AB (name, BITS) +# define _AB(name, bits) __AB (name, bits) +# define __AB(name, bits) name##bits +# define E(name) _E (name, BITS) +# define _E(name, bits) __E (name, bits) +# define __E(name, bits) Elf##bits##_##name +# define SWAP(val) \ + ({ __typeof (val) __res; \ + if (((ehdr.e_ident[EI_DATA] == ELFDATA2MSB \ + && BYTE_ORDER == LITTLE_ENDIAN) \ + || (ehdr.e_ident[EI_DATA] == ELFDATA2LSB \ + && BYTE_ORDER == BIG_ENDIAN)) \ + && sizeof (val) != 1) \ + { \ + if (sizeof (val) == 2) \ + __res = bswap_16 (val); \ + else if (sizeof (val) == 4) \ + __res = bswap_32 (val); \ + else \ + __res = bswap_64 (val); \ + } \ + else \ + __res = (val); \ + __res; }) + + +static int +AB(handle_file) (const char *fname, int fd) +{ + E(Ehdr) ehdr; + + if (pread (fd, &ehdr, sizeof (ehdr), 0) != sizeof (ehdr)) + { + read_error: + printf ("%s: read error: %m\n", fname); + return 1; + } + + const size_t phnum = SWAP (ehdr.e_phnum); + const size_t phentsize = SWAP (ehdr.e_phentsize); + + /* Read the program header. */ + E(Phdr) *phdr = alloca (phentsize * phnum); + if (pread (fd, phdr, phentsize * phnum, SWAP (ehdr.e_phoff)) + != phentsize * phnum) + goto read_error; + + /* Search for the PT_GNU_STACK entry. */ + for (size_t cnt = 0; cnt < phnum; ++cnt) + if (SWAP (phdr[cnt].p_type) == PT_GNU_STACK) + { + unsigned int flags = SWAP(phdr[cnt].p_flags); + if (flags & PF_X) + { + printf ("%s: executable stack signaled\n", fname); + return 1; + } + + return 0; + } + + printf ("%s: no PT_GNU_STACK entry\n", fname); + return 1; +} + +# undef BITS +#else + +# define BITS 32 +# include "check-execstack.c" + +# define BITS 64 +# include "check-execstack.c" + + +static int +handle_file (const char *fname) +{ + int fd = open (fname, O_RDONLY); + if (fd == -1) + { + printf ("cannot open %s: %m\n", fname); + return 1; + } + + /* Read was is supposed to be the ELF header. Read the initial + bytes to determine whether this is a 32 or 64 bit file. */ + char ident[EI_NIDENT]; + if (read (fd, ident, EI_NIDENT) != EI_NIDENT) + { + printf ("%s: read error: %m\n", fname); + close (fd); + return 1; + } + + if (memcmp (&ident[EI_MAG0], ELFMAG, SELFMAG) != 0) + { + printf ("%s: not an ELF file\n", fname); + close (fd); + return 1; + } + + int result; + if (ident[EI_CLASS] == ELFCLASS64) + result = handle_file64 (fname, fd); + else + result = handle_file32 (fname, fd); + + close (fd); + + return result; +} + + +int +main (int argc, char *argv[]) +{ + int cnt; + int result = 0; + + for (cnt = 1; cnt < argc; ++cnt) + result |= handle_file (argv[cnt]); + + return result; +} +#endif From 2e180a26222caf478f29e272c9d1b5d9c6299752 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Fri, 15 May 2009 16:47:36 +0200 Subject: [PATCH 03/76] rename each .cvsignore file to .gitignore --- .cvsignore => .gitignore | 0 assert/{.cvsignore => .gitignore} | 0 csu/{.cvsignore => .gitignore} | 0 ctype/{.cvsignore => .gitignore} | 0 dirent/{.cvsignore => .gitignore} | 0 elf/{.cvsignore => .gitignore} | 0 gmon/{.cvsignore => .gitignore} | 0 gnulib/{.cvsignore => .gitignore} | 0 grp/{.cvsignore => .gitignore} | 0 hurd/{.cvsignore => .gitignore} | 0 inet/{.cvsignore => .gitignore} | 0 intl/{.cvsignore => .gitignore} | 0 io/{.cvsignore => .gitignore} | 0 libio/{.cvsignore => .gitignore} | 0 locale/{.cvsignore => .gitignore} | 0 mach/{.cvsignore => .gitignore} | 0 manual/{.cvsignore => .gitignore} | 0 math/{.cvsignore => .gitignore} | 0 misc/{.cvsignore => .gitignore} | 0 po/{.cvsignore => .gitignore} | 0 posix/{.cvsignore => .gitignore} | 0 pwd/{.cvsignore => .gitignore} | 0 resolv/{.cvsignore => .gitignore} | 0 resource/{.cvsignore => .gitignore} | 0 setjmp/{.cvsignore => .gitignore} | 0 signal/{.cvsignore => .gitignore} | 0 socket/{.cvsignore => .gitignore} | 0 stdio-common/{.cvsignore => .gitignore} | 0 stdlib/{.cvsignore => .gitignore} | 0 string/{.cvsignore => .gitignore} | 0 sunrpc/{.cvsignore => .gitignore} | 0 sysdeps/mach/hurd/{.cvsignore => .gitignore} | 0 sysdeps/unix/common/{.cvsignore => .gitignore} | 0 sysvipc/{.cvsignore => .gitignore} | 0 termios/{.cvsignore => .gitignore} | 0 time/{.cvsignore => .gitignore} | 0 wcsmbs/{.cvsignore => .gitignore} | 0 wctype/{.cvsignore => .gitignore} | 0 38 files changed, 0 insertions(+), 0 deletions(-) rename .cvsignore => .gitignore (100%) rename assert/{.cvsignore => .gitignore} (100%) rename csu/{.cvsignore => .gitignore} (100%) rename ctype/{.cvsignore => .gitignore} (100%) rename dirent/{.cvsignore => .gitignore} (100%) rename elf/{.cvsignore => .gitignore} (100%) rename gmon/{.cvsignore => .gitignore} (100%) rename gnulib/{.cvsignore => .gitignore} (100%) rename grp/{.cvsignore => .gitignore} (100%) rename hurd/{.cvsignore => .gitignore} (100%) rename inet/{.cvsignore => .gitignore} (100%) rename intl/{.cvsignore => .gitignore} (100%) rename io/{.cvsignore => .gitignore} (100%) rename libio/{.cvsignore => .gitignore} (100%) rename locale/{.cvsignore => .gitignore} (100%) rename mach/{.cvsignore => .gitignore} (100%) rename manual/{.cvsignore => .gitignore} (100%) rename math/{.cvsignore => .gitignore} (100%) rename misc/{.cvsignore => .gitignore} (100%) rename po/{.cvsignore => .gitignore} (100%) rename posix/{.cvsignore => .gitignore} (100%) rename pwd/{.cvsignore => .gitignore} (100%) rename resolv/{.cvsignore => .gitignore} (100%) rename resource/{.cvsignore => .gitignore} (100%) rename setjmp/{.cvsignore => .gitignore} (100%) rename signal/{.cvsignore => .gitignore} (100%) rename socket/{.cvsignore => .gitignore} (100%) rename stdio-common/{.cvsignore => .gitignore} (100%) rename stdlib/{.cvsignore => .gitignore} (100%) rename string/{.cvsignore => .gitignore} (100%) rename sunrpc/{.cvsignore => .gitignore} (100%) rename sysdeps/mach/hurd/{.cvsignore => .gitignore} (100%) rename sysdeps/unix/common/{.cvsignore => .gitignore} (100%) rename sysvipc/{.cvsignore => .gitignore} (100%) rename termios/{.cvsignore => .gitignore} (100%) rename time/{.cvsignore => .gitignore} (100%) rename wcsmbs/{.cvsignore => .gitignore} (100%) rename wctype/{.cvsignore => .gitignore} (100%) diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/assert/.cvsignore b/assert/.gitignore similarity index 100% rename from assert/.cvsignore rename to assert/.gitignore diff --git a/csu/.cvsignore b/csu/.gitignore similarity index 100% rename from csu/.cvsignore rename to csu/.gitignore diff --git a/ctype/.cvsignore b/ctype/.gitignore similarity index 100% rename from ctype/.cvsignore rename to ctype/.gitignore diff --git a/dirent/.cvsignore b/dirent/.gitignore similarity index 100% rename from dirent/.cvsignore rename to dirent/.gitignore diff --git a/elf/.cvsignore b/elf/.gitignore similarity index 100% rename from elf/.cvsignore rename to elf/.gitignore diff --git a/gmon/.cvsignore b/gmon/.gitignore similarity index 100% rename from gmon/.cvsignore rename to gmon/.gitignore diff --git a/gnulib/.cvsignore b/gnulib/.gitignore similarity index 100% rename from gnulib/.cvsignore rename to gnulib/.gitignore diff --git a/grp/.cvsignore b/grp/.gitignore similarity index 100% rename from grp/.cvsignore rename to grp/.gitignore diff --git a/hurd/.cvsignore b/hurd/.gitignore similarity index 100% rename from hurd/.cvsignore rename to hurd/.gitignore diff --git a/inet/.cvsignore b/inet/.gitignore similarity index 100% rename from inet/.cvsignore rename to inet/.gitignore diff --git a/intl/.cvsignore b/intl/.gitignore similarity index 100% rename from intl/.cvsignore rename to intl/.gitignore diff --git a/io/.cvsignore b/io/.gitignore similarity index 100% rename from io/.cvsignore rename to io/.gitignore diff --git a/libio/.cvsignore b/libio/.gitignore similarity index 100% rename from libio/.cvsignore rename to libio/.gitignore diff --git a/locale/.cvsignore b/locale/.gitignore similarity index 100% rename from locale/.cvsignore rename to locale/.gitignore diff --git a/mach/.cvsignore b/mach/.gitignore similarity index 100% rename from mach/.cvsignore rename to mach/.gitignore diff --git a/manual/.cvsignore b/manual/.gitignore similarity index 100% rename from manual/.cvsignore rename to manual/.gitignore diff --git a/math/.cvsignore b/math/.gitignore similarity index 100% rename from math/.cvsignore rename to math/.gitignore diff --git a/misc/.cvsignore b/misc/.gitignore similarity index 100% rename from misc/.cvsignore rename to misc/.gitignore diff --git a/po/.cvsignore b/po/.gitignore similarity index 100% rename from po/.cvsignore rename to po/.gitignore diff --git a/posix/.cvsignore b/posix/.gitignore similarity index 100% rename from posix/.cvsignore rename to posix/.gitignore diff --git a/pwd/.cvsignore b/pwd/.gitignore similarity index 100% rename from pwd/.cvsignore rename to pwd/.gitignore diff --git a/resolv/.cvsignore b/resolv/.gitignore similarity index 100% rename from resolv/.cvsignore rename to resolv/.gitignore diff --git a/resource/.cvsignore b/resource/.gitignore similarity index 100% rename from resource/.cvsignore rename to resource/.gitignore diff --git a/setjmp/.cvsignore b/setjmp/.gitignore similarity index 100% rename from setjmp/.cvsignore rename to setjmp/.gitignore diff --git a/signal/.cvsignore b/signal/.gitignore similarity index 100% rename from signal/.cvsignore rename to signal/.gitignore diff --git a/socket/.cvsignore b/socket/.gitignore similarity index 100% rename from socket/.cvsignore rename to socket/.gitignore diff --git a/stdio-common/.cvsignore b/stdio-common/.gitignore similarity index 100% rename from stdio-common/.cvsignore rename to stdio-common/.gitignore diff --git a/stdlib/.cvsignore b/stdlib/.gitignore similarity index 100% rename from stdlib/.cvsignore rename to stdlib/.gitignore diff --git a/string/.cvsignore b/string/.gitignore similarity index 100% rename from string/.cvsignore rename to string/.gitignore diff --git a/sunrpc/.cvsignore b/sunrpc/.gitignore similarity index 100% rename from sunrpc/.cvsignore rename to sunrpc/.gitignore diff --git a/sysdeps/mach/hurd/.cvsignore b/sysdeps/mach/hurd/.gitignore similarity index 100% rename from sysdeps/mach/hurd/.cvsignore rename to sysdeps/mach/hurd/.gitignore diff --git a/sysdeps/unix/common/.cvsignore b/sysdeps/unix/common/.gitignore similarity index 100% rename from sysdeps/unix/common/.cvsignore rename to sysdeps/unix/common/.gitignore diff --git a/sysvipc/.cvsignore b/sysvipc/.gitignore similarity index 100% rename from sysvipc/.cvsignore rename to sysvipc/.gitignore diff --git a/termios/.cvsignore b/termios/.gitignore similarity index 100% rename from termios/.cvsignore rename to termios/.gitignore diff --git a/time/.cvsignore b/time/.gitignore similarity index 100% rename from time/.cvsignore rename to time/.gitignore diff --git a/wcsmbs/.cvsignore b/wcsmbs/.gitignore similarity index 100% rename from wcsmbs/.cvsignore rename to wcsmbs/.gitignore diff --git a/wctype/.cvsignore b/wctype/.gitignore similarity index 100% rename from wctype/.cvsignore rename to wctype/.gitignore From b1e74e1d80593ae1f2ed39f9d7eb37199205f774 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 10:12:35 -0700 Subject: [PATCH 04/76] No cancel signal in unsafe places. When disabling async cancellation we cannot return from the function call if the thread is canceled. This happens when the cancel bits have been set before async cancel is disabled but the signal hasn't been sent/received yet. Delay for as long as necessary since otherwise the signal might be received in an unsafe context. --- nptl/ChangeLog | 6 ++++++ nptl/cancellation.c | 14 +++++++++++++- nptl/libc-cancellation.c | 14 +++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b83dfd0c9d..74a2a73666 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2009-05-15 Ulrich Drepper + + * cancellation.c (__pthread_disable_asynccancel): Don't return if + thread is canceled. + * libc-cancellation.c (__libc_disable_asynccancel): Likewise. + 2009-04-27 Ulrich Drepper * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND diff --git a/nptl/cancellation.c b/nptl/cancellation.c index 81134a679a..4d528cfc2f 100644 --- a/nptl/cancellation.c +++ b/nptl/cancellation.c @@ -70,15 +70,17 @@ __pthread_disable_asynccancel (int oldtype) return; struct pthread *self = THREAD_SELF; + int newval; #ifdef THREAD_ATOMIC_AND THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); + newval = THREAD_GETMEM (self, cancelhandling); #else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) { - int newval = oldval & ~CANCELTYPE_BITMASK; + newval = oldval & ~CANCELTYPE_BITMASK; if (newval == oldval) break; @@ -92,4 +94,14 @@ __pthread_disable_asynccancel (int oldtype) oldval = curval; } #endif + + /* We cannot return when we are being canceled. Upon return the + thread might be things which would have to be undone. The + following loop should loop until the cancellation signal is + delivered. */ + while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + { + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); + newval = THREAD_GETMEM (self, cancelhandling); + } } diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c index cf24f1c0f2..35ac82b3d1 100644 --- a/nptl/libc-cancellation.c +++ b/nptl/libc-cancellation.c @@ -86,15 +86,17 @@ __libc_disable_asynccancel (int oldtype) return; struct pthread *self = THREAD_SELF; + int newval; #ifdef THREAD_ATOMIC_AND THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); + newval = THREAD_GETMEM (self, cancelhandling); #else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) { - int newval = oldval & ~CANCELTYPE_BITMASK; + newval = oldval & ~CANCELTYPE_BITMASK; if (newval == oldval) break; @@ -108,6 +110,16 @@ __libc_disable_asynccancel (int oldtype) oldval = curval; } #endif + + /* We cannot return when we are being canceled. Upon return the + thread might be things which would have to be undone. The + following loop should loop until the cancellation signal is + delivered. */ + while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + { + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); + newval = THREAD_GETMEM (self, cancelhandling); + } } From 69710097952cf6c86219093d81b4ffbb7c4e10d5 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 10:24:57 -0700 Subject: [PATCH 05/76] Version info change for 2.11 development. --- ChangeLog | 2 ++ version.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb52b49da4..d976903bb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-05-15 Ulrich Drepper + * version.h: Bump for 2.11 development. + * elf/check-execstack.c: New file. * elf/Makefile: Add rules to build and run check-execstack. diff --git a/version.h b/version.h index f169c6a0fa..9b2e14c191 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ -#define RELEASE "stable" -#define VERSION "2.10.1" +#define RELEASE "development" +#define VERSION "2.10.90" From 1a7f254b4b0590bfab1baa1400705265b1b23b97 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 10:12:35 -0700 Subject: [PATCH 06/76] No cancel signal in unsafe places. When disabling async cancellation we cannot return from the function call if the thread is canceled. This happens when the cancel bits have been set before async cancel is disabled but the signal hasn't been sent/received yet. Delay for as long as necessary since otherwise the signal might be received in an unsafe context. --- nptl/ChangeLog | 6 ++++++ nptl/cancellation.c | 14 +++++++++++++- nptl/libc-cancellation.c | 14 +++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b83dfd0c9d..74a2a73666 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2009-05-15 Ulrich Drepper + + * cancellation.c (__pthread_disable_asynccancel): Don't return if + thread is canceled. + * libc-cancellation.c (__libc_disable_asynccancel): Likewise. + 2009-04-27 Ulrich Drepper * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND diff --git a/nptl/cancellation.c b/nptl/cancellation.c index 81134a679a..4d528cfc2f 100644 --- a/nptl/cancellation.c +++ b/nptl/cancellation.c @@ -70,15 +70,17 @@ __pthread_disable_asynccancel (int oldtype) return; struct pthread *self = THREAD_SELF; + int newval; #ifdef THREAD_ATOMIC_AND THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); + newval = THREAD_GETMEM (self, cancelhandling); #else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) { - int newval = oldval & ~CANCELTYPE_BITMASK; + newval = oldval & ~CANCELTYPE_BITMASK; if (newval == oldval) break; @@ -92,4 +94,14 @@ __pthread_disable_asynccancel (int oldtype) oldval = curval; } #endif + + /* We cannot return when we are being canceled. Upon return the + thread might be things which would have to be undone. The + following loop should loop until the cancellation signal is + delivered. */ + while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + { + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); + newval = THREAD_GETMEM (self, cancelhandling); + } } diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c index cf24f1c0f2..35ac82b3d1 100644 --- a/nptl/libc-cancellation.c +++ b/nptl/libc-cancellation.c @@ -86,15 +86,17 @@ __libc_disable_asynccancel (int oldtype) return; struct pthread *self = THREAD_SELF; + int newval; #ifdef THREAD_ATOMIC_AND THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); + newval = THREAD_GETMEM (self, cancelhandling); #else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) { - int newval = oldval & ~CANCELTYPE_BITMASK; + newval = oldval & ~CANCELTYPE_BITMASK; if (newval == oldval) break; @@ -108,6 +110,16 @@ __libc_disable_asynccancel (int oldtype) oldval = curval; } #endif + + /* We cannot return when we are being canceled. Upon return the + thread might be things which would have to be undone. The + following loop should loop until the cancellation signal is + delivered. */ + while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + { + lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); + newval = THREAD_GETMEM (self, cancelhandling); + } } From dc50b6137ec8cb0746dc111d22f171f65755bf6b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 10:24:57 -0700 Subject: [PATCH 07/76] Version info change for 2.11 development. --- ChangeLog | 2 ++ version.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb52b49da4..d976903bb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-05-15 Ulrich Drepper + * version.h: Bump for 2.11 development. + * elf/check-execstack.c: New file. * elf/Makefile: Add rules to build and run check-execstack. diff --git a/version.h b/version.h index f169c6a0fa..9b2e14c191 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ -#define RELEASE "stable" -#define VERSION "2.10.1" +#define RELEASE "development" +#define VERSION "2.10.90" From f1342e0be8e222dbca077beca94b5937564e8c4b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 13:02:02 -0700 Subject: [PATCH 08/76] Ignore Emacs backup files. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 213609fcc7..1518b6ab38 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*~ *.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz *.bz2 =* From b50f8e42ba3010f0141e6a482e0820f658e89b63 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 19:28:04 -0700 Subject: [PATCH 09/76] Check for valid stack frame in longjmp. If longjmp restores the stack frame to an address which is beyond the stack frame at the time of the longjmp call it would install an uninitialized stack frame. If compiled with _FORTIFY_SOURCE defined, longjmp will now bail out in this situation. --- ChangeLog | 19 +++++++ NEWS | 8 ++- Versions.def | 1 + debug/Makefile | 7 ++- debug/Versions | 3 ++ debug/longjmp_chk.c | 28 +++++++++++ debug/tst-longjmp_chk.c | 86 ++++++++++++++++++++++++++++++++ include/bits/setjmp2.h | 1 + include/stdio.h | 3 +- setjmp/Makefile | 4 +- setjmp/bits/setjmp2.h | 41 +++++++++++++++ setjmp/longjmp.c | 5 +- setjmp/setjmp.h | 8 ++- sysdeps/i386/____longjmp_chk.S | 45 +++++++++++++++++ sysdeps/i386/__longjmp.S | 11 +++- sysdeps/x86_64/____longjmp_chk.S | 42 ++++++++++++++++ sysdeps/x86_64/__longjmp.S | 3 ++ 17 files changed, 306 insertions(+), 9 deletions(-) create mode 100644 debug/longjmp_chk.c create mode 100644 debug/tst-longjmp_chk.c create mode 100644 include/bits/setjmp2.h create mode 100644 setjmp/bits/setjmp2.h create mode 100644 sysdeps/i386/____longjmp_chk.S create mode 100644 sysdeps/x86_64/____longjmp_chk.S diff --git a/ChangeLog b/ChangeLog index d976903bb1..f317568d35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,24 @@ 2009-05-15 Ulrich Drepper + * Versions.def: Add GLIBC_2.11 for libc. + * debug/Makefile (routines): Add longjmp_chk. + Add rules to build and run tst-longjmp_chk. + * debug/Versions: Export __longjmp_chk for GLIBC_2.11. + * debug/longjmp_chk.c: New file. + * debug/tst-longjmp_chk.c: New file. + * include/bits/setjmp2.: New file. + * include/stdio.h: Mark __fortify_fail as internal_function. + * setjmp/Makefile (headers): Add bits/setjmp2.h. + * setjmp/bits/setjmp2.h: New file. + * setjmp/longjmp.c: If __libc_siglongjmp is defined, don't define any + of the aliases. + * setjmp/setjmp.h: Include if _FORTIFY_SOURCE is + defined. + * sysdeps/i386/____longjmp_chk.S: New file. + * sysdeps/x86_64/____longjmp_chk.S: New file. + * sysdeps/i386/__longjmp.S: If CHECK_ESP is defined, use it. + * sysdeps/x86_64/__longjmp.S: Likewise. + * version.h: Bump for 2.11 development. * elf/check-execstack.c: New file. diff --git a/NEWS b/NEWS index 411c2c3bc8..9ba8f3579c 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,15 @@ -GNU C Library NEWS -- history of user-visible changes. 2009-4-23 +GNU C Library NEWS -- history of user-visible changes. 2009-5-15 Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. + +Version 2.11 + +* checking version of longjmp added that fails if an uninitialized stack + frame would be created. Implemented by Ulrich Drepper. + Version 2.10 diff --git a/Versions.def b/Versions.def index 031e2a3541..558f7c3ed8 100644 --- a/Versions.def +++ b/Versions.def @@ -27,6 +27,7 @@ libc { GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 + GLIBC_2.11 %ifdef USE_IN_LIBIO HURD_CTHREADS_0.3 %endif diff --git a/debug/Makefile b/debug/Makefile index ece7ee6bd7..181169b90d 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2001,2004-2008 Free Software Foundation, Inc. +# Copyright (C) 1998-2001,2004-2008, 2009 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 @@ -43,6 +43,7 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \ wcsnrtombs_chk mbsrtowcs_chk wcsrtombs_chk mbstowcs_chk \ wcstombs_chk asprintf_chk vasprintf_chk dprintf_chk \ vdprintf_chk obprintf_chk \ + longjmp_chk ____longjmp_chk \ stack_chk_fail fortify_fail \ $(static-only-routines) static-only-routines := warning-nop stack_chk_fail_local @@ -79,6 +80,8 @@ CFLAGS-pread_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-pread64_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-recv_chk.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-recvfrom_chk.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-tst-longjmp_chk.c = -fexceptions -fasynchronous-unwind-tables \ + -D_FORTIFY_SOURCE=1 # We know these tests have problems with format strings, this is what # we are testing. Disable that warning. @@ -113,7 +116,7 @@ LDFLAGS-tst-lfschk4 = -lstdc++ LDFLAGS-tst-lfschk5 = -lstdc++ LDFLAGS-tst-lfschk6 = -lstdc++ -tests = backtrace-tst tst-chk1 tst-chk2 tst-chk3 \ +tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \ tst-lfschk1 tst-lfschk2 tst-lfschk3 test-strcpy_chk test-stpcpy_chk \ tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 diff --git a/debug/Versions b/debug/Versions index ef6b08b7b3..ff40107b77 100644 --- a/debug/Versions +++ b/debug/Versions @@ -46,6 +46,9 @@ libc { __asprintf_chk; __vasprintf_chk; __dprintf_chk; __vdprintf_chk; __obstack_printf_chk; __obstack_vprintf_chk; } + GLIBC_2.11 { + __longjmp_chk; + } GLIBC_PRIVATE { __fortify_fail; } diff --git a/debug/longjmp_chk.c b/debug/longjmp_chk.c new file mode 100644 index 0000000000..7de2a98a30 --- /dev/null +++ b/debug/longjmp_chk.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +// XXX Should move to include/setjmp.h +extern void ____longjmp_chk (__jmp_buf __env, int __val) + __attribute__ ((__noreturn__)); + +#define __longjmp ____longjmp_chk +#define __libc_siglongjmp __longjmp_chk + +#include diff --git a/debug/tst-longjmp_chk.c b/debug/tst-longjmp_chk.c new file mode 100644 index 0000000000..8892974cc7 --- /dev/null +++ b/debug/tst-longjmp_chk.c @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static jmp_buf b; + + +static void +__attribute__ ((noinline)) +f (void) +{ + char buf[1000]; + asm volatile ("" : "=m" (buf)); + + if (setjmp (b) != 0) + { + puts ("second longjmp succeeded"); + exit (1); + } +} + + +static bool expected_to_fail; + + +static void +handler (int sig) +{ + if (expected_to_fail) + _exit (0); + else + { + static const char msg[] = "unexpected longjmp failure\n"; + TEMP_FAILURE_RETRY (write (STDOUT_FILENO, msg, sizeof (msg) - 1)); + _exit (1); + } +} + + +int +main (void) +{ + struct sigaction sa; + sa.sa_handler = handler; + sa.sa_flags = 0; + sigemptyset (&sa.sa_mask); + + sigaction (SIGABRT, &sa, NULL); + + /* Avoid all the buffer overflow messages on stderr. */ + int fd = open (_PATH_DEVNULL, O_WRONLY); + if (fd == -1) + close (STDERR_FILENO); + else + { + dup2 (fd, STDERR_FILENO); + close (fd); + } + setenv ("LIBC_FATAL_STDERR_", "1", 1); + + + expected_to_fail = false; + + if (setjmp (b) == 0) + { + longjmp (b, 1); + /* NOTREACHED */ + printf ("first longjmp returned\n"); + return 1; + } + + + expected_to_fail = true; + + f (); + longjmp (b, 1); + + puts ("second longjmp returned"); + return 1; +} diff --git a/include/bits/setjmp2.h b/include/bits/setjmp2.h new file mode 100644 index 0000000000..bdb222cd2c --- /dev/null +++ b/include/bits/setjmp2.h @@ -0,0 +1 @@ +#include diff --git a/include/stdio.h b/include/stdio.h index 9fdafe4a85..a8aab92aef 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -90,7 +90,8 @@ extern int __gen_tempname (char *__tmpl, int __flags, int __kind); extern void __libc_fatal (__const char *__message) __attribute__ ((__noreturn__)); extern void __libc_message (int do_abort, __const char *__fnt, ...); -extern void __fortify_fail (const char *msg) __attribute__ ((noreturn)); +extern void __fortify_fail (const char *msg) + __attribute__ ((__noreturn__)) internal_function; libc_hidden_proto (__fortify_fail) /* Acquire ownership of STREAM. */ diff --git a/setjmp/Makefile b/setjmp/Makefile index b94370d858..509c1d9a0c 100644 --- a/setjmp/Makefile +++ b/setjmp/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 97, 2009 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 @@ -21,7 +21,7 @@ # subdir := setjmp -headers := setjmp.h bits/setjmp.h +headers := setjmp.h bits/setjmp.h bits/setjmp2.h routines := setjmp sigjmp bsd-setjmp bsd-_setjmp \ longjmp __longjmp jmp-unwind diff --git a/setjmp/bits/setjmp2.h b/setjmp/bits/setjmp2.h new file mode 100644 index 0000000000..ba900b8d03 --- /dev/null +++ b/setjmp/bits/setjmp2.h @@ -0,0 +1,41 @@ +/* Checking macros for setjmp functions. + * Copyright (C) 2009 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 + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * The GNU C Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the GNU C Library; if not, write to the Free + * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + * 02111-1307 USA. */ + +#ifndef _SETJMP_H +# error "Never include directly; use instead." +#endif + +/* Variant of the longjmp functions which perform some sanity checking. */ +#ifdef __REDIRECT_NTH +extern void __REDIRECT_NTH (longjmp, + (struct __jmp_buf_tag __env[1], int __val), + __longjmp_chk) __attribute__ ((__noreturn__)); +extern void __REDIRECT_NTH (_longjmp, + (struct __jmp_buf_tag __env[1], int __val), + __longjmp_chk) __attribute__ ((__noreturn__)); +extern void __REDIRECT_NTH (siglongjmp, + (struct __jmp_buf_tag __env[1], int __val), + __longjmp_chk) __attribute__ ((__noreturn__)); +#else +extern void __longjmp_chk (struct __jmp_buf_tag __env[1], int __val), + __THROW __attribute__ ((__noreturn__)); +# define longjmp __longjmp_chk +# define _longjmp __longjmp_chk +# define siglongjmp __longjmp_chk +#endif diff --git a/setjmp/longjmp.c b/setjmp/longjmp.c index 9b1bda1caa..8545b36627 100644 --- a/setjmp/longjmp.c +++ b/setjmp/longjmp.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991,92,94,95,97,98,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,94,95,97,98,2000,2002,2009 + 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 @@ -39,8 +40,10 @@ __libc_siglongjmp (sigjmp_buf env, int val) __longjmp (env[0].__jmpbuf, val ?: 1); } +#ifndef __libc_siglongjmp strong_alias (__libc_siglongjmp, __libc_longjmp) libc_hidden_def (__libc_longjmp) weak_alias (__libc_siglongjmp, _longjmp) weak_alias (__libc_siglongjmp, longjmp) weak_alias (__libc_siglongjmp, siglongjmp) +#endif diff --git a/setjmp/setjmp.h b/setjmp/setjmp.h index 6b1037fabd..3bc382ff1e 100644 --- a/setjmp/setjmp.h +++ b/setjmp/setjmp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1999, 2001, 2002, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1991-1999,2001,2002,2007,2009 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 @@ -111,6 +111,12 @@ extern void siglongjmp (sigjmp_buf __env, int __val) __THROW __attribute__ ((__noreturn__)); #endif /* Use POSIX. */ + +/* Define helper functions to catch unsafe code. */ +#if __USE_FORTIFY_LEVEL > 0 +# include +#endif + __END_DECLS #endif /* setjmp.h */ diff --git a/sysdeps/i386/____longjmp_chk.S b/sysdeps/i386/____longjmp_chk.S new file mode 100644 index 0000000000..6cd74968a2 --- /dev/null +++ b/sysdeps/i386/____longjmp_chk.S @@ -0,0 +1,45 @@ +/* Copyright (C) 2001,2004,2005,2006,2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + + .section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + + +#define __longjmp ____longjmp_chk + +#ifdef PIC +# define CALL_FAIL movl %ebx, %ecx; \ + cfi_register(%ebx,%ecx); \ + LOAD_PIC_REG (bx); \ + leal longjmp_msg@GOTOFF(%ebx), %eax; \ + call __GI___fortify_fail@PLT +#else +# define CALL_FAIL movl $longjmp_msg, %eax; \ + call __fortify_fail +#endif + +#define CHECK_ESP(reg) \ + cmpl reg, %esp; \ + jbe .Lok; \ + CALL_FAIL; \ +.Lok: + +#include "__longjmp.S" diff --git a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S index 559d56b250..15c9e55ec7 100644 --- a/sysdeps/i386/__longjmp.S +++ b/sysdeps/i386/__longjmp.S @@ -1,5 +1,6 @@ /* longjmp for i386. - Copyright (C) 1995-1998,2000,2002,2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1995-1998,2000,2002,2005,2006,2009 + 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 @@ -40,6 +41,9 @@ ENTRY (BP_SYM (__longjmp)) movl (JB_SP*4)(%eax), %ecx PTR_DEMANGLE (%edx) PTR_DEMANGLE (%ecx) +# ifdef CHECK_ESP + CHECK_ESP (%ecx) +# endif cfi_def_cfa(%eax, 0) cfi_register(%eip, %edx) cfi_register(%esp, %ecx) @@ -63,6 +67,11 @@ ENTRY (BP_SYM (__longjmp)) movl JBUF(%esp), %ecx /* User's jmp_buf in %ecx. */ CHECK_BOUNDS_BOTH_WIDE (%ecx, JBUF(%esp), $JB_SIZE) +# ifdef CHECK_ESP + movl (JB_SP*4)(%ecx), %eax + CHECK_ESP (%eax) +# endif + movl VAL(%esp), %eax /* Second argument is return value. */ /* Save the return address now. */ movl (JB_PC*4)(%ecx), %edx diff --git a/sysdeps/x86_64/____longjmp_chk.S b/sysdeps/x86_64/____longjmp_chk.S new file mode 100644 index 0000000000..030a0dcaa7 --- /dev/null +++ b/sysdeps/x86_64/____longjmp_chk.S @@ -0,0 +1,42 @@ +/* Copyright (C) 2001,2004,2005,2006,2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + + .section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + + +#define __longjmp ____longjmp_chk + +#ifdef PIC +# define CALL_FAIL leaq longjmp_msg(%rip), %rdi; \ + call __GI___fortify_fail +#else +# define CALL_FAIL movq $longjmp_msg, %rdi; \ + call __fortify_fail +#endif + +#define CHECK_RSP(reg) \ + cmpq reg, %rsp; \ + jbe .Lok; \ + CALL_FAIL; \ +.Lok: + +#include "__longjmp.S" diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S index a68e7a8a4f..7649e99242 100644 --- a/sysdeps/x86_64/__longjmp.S +++ b/sysdeps/x86_64/__longjmp.S @@ -32,6 +32,9 @@ ENTRY(__longjmp) PTR_DEMANGLE (%r8) PTR_DEMANGLE (%r9) PTR_DEMANGLE (%rdx) +#endif +#ifdef CHECK_RSP + CHECK_RSP (%r8) #endif /* We add unwind information for the target here. */ cfi_def_cfa(%rdi, 0) From 9a1fbe861d8ae41976f926a211d59098a030878f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 19:47:10 -0700 Subject: [PATCH 10/76] Cleanup some .gitignore files. --- .gitignore | 36 +++++++++++++++++++++++++++++------- manual/.gitignore | 40 +++++++++++++++++++++++++++++----------- 2 files changed, 58 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 1518b6ab38..d903bc6bd3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,35 @@ *~ -*.d *.o *.so *.po *.go *.bo stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz *.bz2 +*.d +*.o +*.so +*.po +*.go +*.bo +stamp.* +*.stamp +*.ustamp +*.udeps +*.gz +*.Z +*.tar +*.tgz +*.bz2 =* -TODO AUTHORS copyr-* copying.* +TODO +AUTHORS +copyr-* +copying.* glibc-* configparms -sun[43]* i[345]86* hp300* +sun[43]* +i[345]86* +hp300* -ieeetest hppa-sysdeps regex +ieeetest +hppa-sysdeps +regex gpl2lgpl.sed distinfo @@ -20,8 +40,10 @@ analysis docs releases -libc.prj .libc.prcs_aux -libc.proj .snprj +libc.prj +.libc.prcs_aux +libc.proj +.snprj TODO.html diff --git a/manual/.gitignore b/manual/.gitignore index 54abbbb5a4..27f045cc1f 100644 --- a/manual/.gitignore +++ b/manual/.gitignore @@ -1,14 +1,32 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz *.bz2 -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* +*.dvi* +*.info* +*.c.texi +*.ps +*.pdf +*.toc +*.aux +*.log +*.tmp +*.cp +*.cps +*.fn +*.fns +*.vr +*.vrs +*.tp +*.tps +*.ky +*.kys +*.pg +*.pgs -*.dvi* *.info* *.c.texi *.ps *.pdf -*.toc *.aux *.log *.tmp -*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs - -texis top-menu.texi chapters.texi summary.texi stamp-* -distinfo dir-add.texinfo dir-add.texi +texis +top-menu.texi +chapters.texi +summary.texi +stamp-* +distinfo +dir-add.texinfo +dir-add.texi libm-err.texi From bbc5d74dd0bd1c3dbe7ea8515f081dc7e318272c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 19:53:09 -0700 Subject: [PATCH 11/76] Add test for range error in expm1. --- ChangeLog | 2 ++ math/libm-test.inc | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index f317568d35..050431278b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-05-15 Ulrich Drepper + * math/libm-test.inc (expm1_test): Add test for range error. + * Versions.def: Add GLIBC_2.11 for libc. * debug/Makefile (routines): Add longjmp_chk. Add rules to build and run tst-longjmp_chk. diff --git a/math/libm-test.inc b/math/libm-test.inc index 8c5727ca27..260d3ec665 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -2603,6 +2603,10 @@ expm1_test (void) TEST_f_f (expm1, 1, M_El - 1.0); TEST_f_f (expm1, 0.75L, 1.11700001661267466854536981983709561L); + errno = 0; + TEST_f_f (expm1, 100000.0, plus_infty); + check_int ("errno for expm1(large) == ERANGE", errno, ERANGE, 0, 0, 0); + END (expm1); } From 9437b427cec6266abd303983848549a5c4ba0d0a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 20:42:36 -0700 Subject: [PATCH 12/76] Fix change to prevent cancel signal in unsafe places. The bits tested to decide when to delay the return when switching off async cancel mode were wrong. Fix that. Also close a race condition in pthread_cancel where the bit indicating the cancellation is unconditionally set even if the cancel type might have changed. --- nptl/ChangeLog | 6 ++++++ nptl/cancellation.c | 8 ++------ nptl/libc-cancellation.c | 8 ++------ nptl/pthread_cancel.c | 8 ++++++-- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 74a2a73666..f3bd32f577 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,11 @@ 2009-05-15 Ulrich Drepper + * cancellation.c (__pthread_disable_asynccancel): Correct the bits + to test when deciding on the delay. + * libc-cancellation.c (__libc_disable_asynccancel): Likewise. + * pthread_cancel.c: Close race between deciding on sending a signal + and setting the CANCELING_BIT bit. + * cancellation.c (__pthread_disable_asynccancel): Don't return if thread is canceled. * libc-cancellation.c (__libc_disable_asynccancel): Likewise. diff --git a/nptl/cancellation.c b/nptl/cancellation.c index 4d528cfc2f..2a6f83d28a 100644 --- a/nptl/cancellation.c +++ b/nptl/cancellation.c @@ -72,10 +72,6 @@ __pthread_disable_asynccancel (int oldtype) struct pthread *self = THREAD_SELF; int newval; -#ifdef THREAD_ATOMIC_AND - THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); - newval = THREAD_GETMEM (self, cancelhandling); -#else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) @@ -93,13 +89,13 @@ __pthread_disable_asynccancel (int oldtype) /* Prepare the next round. */ oldval = curval; } -#endif /* We cannot return when we are being canceled. Upon return the thread might be things which would have to be undone. The following loop should loop until the cancellation signal is delivered. */ - while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK)) + == CANCELING_BITMASK, 0)) { lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); newval = THREAD_GETMEM (self, cancelhandling); diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c index 35ac82b3d1..cada464d2b 100644 --- a/nptl/libc-cancellation.c +++ b/nptl/libc-cancellation.c @@ -88,10 +88,6 @@ __libc_disable_asynccancel (int oldtype) struct pthread *self = THREAD_SELF; int newval; -#ifdef THREAD_ATOMIC_AND - THREAD_ATOMIC_AND (self, cancelhandling, ~CANCELTYPE_BITMASK); - newval = THREAD_GETMEM (self, cancelhandling); -#else int oldval = THREAD_GETMEM (self, cancelhandling); while (1) @@ -109,13 +105,13 @@ __libc_disable_asynccancel (int oldtype) /* Prepare the next round. */ oldval = curval; } -#endif /* We cannot return when we are being canceled. Upon return the thread might be things which would have to be undone. The following loop should loop until the cancellation signal is delivered. */ - while (__builtin_expect (newval & CANCELED_BITMASK, 0)) + while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK)) + == CANCELING_BITMASK, 0)) { lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); newval = THREAD_GETMEM (self, cancelhandling); diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c index a13af56b37..55bb0da922 100644 --- a/nptl/pthread_cancel.c +++ b/nptl/pthread_cancel.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -44,6 +44,7 @@ pthread_cancel (th) int newval; do { + again: oldval = pd->cancelhandling; newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK; @@ -59,7 +60,10 @@ pthread_cancel (th) if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval)) { /* Mark the cancellation as "in progress". */ - atomic_bit_set (&pd->cancelhandling, CANCELING_BIT); + if (atomic_compare_and_exchange_bool_acq (&pd->cancelhandling, + oldval | CANCELING_BITMASK, + oldval)) + goto again; /* The cancellation handler will take care of marking the thread as canceled. */ From 9e471dad8e173806cbbfb704875d5ae40e36fa34 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 May 2009 20:48:08 -0700 Subject: [PATCH 13/76] Don't try to cleanup libselinux and libaudit. Because we are not shutting down the other threads first another thread might work on a query before the process shuts down. In this case the now uninitialized libselinux and libaudit might be used. Just don't free the resources. It's not necessary anyway because the process is about to terminate. --- nptl/ChangeLog | 7 +++++++ nscd/nscd.c | 4 ---- nscd/selinux.c | 13 +------------ nscd/selinux.h | 5 +---- 4 files changed, 9 insertions(+), 20 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index f3bd32f577..24474c3a5f 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2009-05-14 Jakub Jelinek + + * nscd/selinux.c (nscd_avc_destroy): Removed. + * nscd/selinux.h (nscd_avc_destroy): Likewise. + * nscd/nscd.c (termination_handler): Don't call + nscd_avc_destroy. + 2009-05-15 Ulrich Drepper * cancellation.c (__pthread_disable_asynccancel): Correct the bits diff --git a/nscd/nscd.c b/nscd/nscd.c index 3265ea8973..b9035f2131 100644 --- a/nscd/nscd.c +++ b/nscd/nscd.c @@ -488,10 +488,6 @@ termination_handler (int signum) msync (dbs[cnt].head, dbs[cnt].memsize, MS_ASYNC); } - /* Shutdown the SELinux AVC. */ - if (selinux_enabled) - nscd_avc_destroy (); - _exit (EXIT_SUCCESS); } diff --git a/nscd/selinux.c b/nscd/selinux.c index 9a167ec14d..e07a454bf8 100644 --- a/nscd/selinux.c +++ b/nscd/selinux.c @@ -1,5 +1,5 @@ /* SELinux access controls for nscd. - Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Matthew Rickard , 2004. @@ -418,15 +418,4 @@ nscd_avc_print_stats (struct avc_cache_stats *cstats) cstats->cav_probes, cstats->cav_misses); } - -/* Clean up the AVC before exiting. */ -void -nscd_avc_destroy (void) -{ - avc_destroy (); -#ifdef HAVE_LIBAUDIT - audit_close (audit_fd); -#endif -} - #endif /* HAVE_SELINUX */ diff --git a/nscd/selinux.h b/nscd/selinux.h index 27afcd6e86..67d981bb06 100644 --- a/nscd/selinux.h +++ b/nscd/selinux.h @@ -1,5 +1,5 @@ /* Header for nscd SELinux access controls. - Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Matthew Rickard , 2004. @@ -35,8 +35,6 @@ struct avc_cache_stats; /* Initialize the userspace AVC. */ extern void nscd_avc_init (void); -/* Destroy the userspace AVC. */ -extern void nscd_avc_destroy (void); /* Determine if we are running on an SELinux kernel. */ extern void nscd_selinux_enabled (int *selinux_enabled); /* Check if the client has permission for the request type. */ @@ -55,7 +53,6 @@ extern void install_real_capabilities (cap_t new_caps); #else # define selinux_enabled 0 # define nscd_avc_init() (void) 0 -# define nscd_avc_destroy() (void) 0 # define nscd_selinux_enabled(selinux_enabled) (void) 0 # define nscd_request_avc_has_perm(fd, req) 0 # define nscd_avc_cache_stats(cstats) (void) 0 From 1f3615a1c97a030bca59f728f998947f852679b9 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 May 2009 21:00:09 -0700 Subject: [PATCH 14/76] Add missing export of fallocate64 on 32-bit platforms. Due to a pasto the fallocate64 interface, introduced in glibc 2.10, isn't exported for 32-bit Linux platforms. It is too late for this now so exported them for glibc 2.11. --- nptl/ChangeLog | 18 ++++++++++++++++++ sysdeps/unix/sysv/linux/Versions | 2 +- sysdeps/unix/sysv/linux/fallocate64.c | 2 +- sysdeps/unix/sysv/linux/i386/Versions | 4 ++++ sysdeps/unix/sysv/linux/i386/fallocate64.c | 2 +- .../unix/sysv/linux/powerpc/powerpc32/Versions | 3 +++ sysdeps/unix/sysv/linux/s390/s390-32/Versions | 3 +++ sysdeps/unix/sysv/linux/sh/Versions | 3 +++ sysdeps/unix/sysv/linux/sparc/sparc32/Versions | 3 +++ sysdeps/unix/sysv/linux/wordsize-64/Versions | 5 +++++ 10 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/wordsize-64/Versions diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 24474c3a5f..d596325419 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,21 @@ +2009-05-14 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/fallocate64.c (__fallocate64_l64): + Rename ... + (fallocate64): ... to this. + * sysdeps/unix/sysv/linux/fallocate64.c (__fallocate64_l64): + Rename ... + (fallocate64): ... to this. + * sysdeps/unix/sysv/linux/Versions (libc): Remove fallocate64. + * sysdeps/unix/sysv/linux/wordsize-64/Versions (libc): Add + fallocate64@@GLIBC_2.10. + * sysdeps/unix/sysv/linux/i386/Versions (libc): Add + fallocate64@@GLIBC_2.11. + * sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/sh/Versions (libc): Likewise. + 2009-05-14 Jakub Jelinek * nscd/selinux.c (nscd_avc_destroy): Removed. diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index b348570bda..2b5f2fb03c 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -139,7 +139,7 @@ libc { epoll_create1; inotify_init1; } GLIBC_2.10 { - fallocate; fallocate64; + fallocate; } GLIBC_PRIVATE { # functions used in other libraries diff --git a/sysdeps/unix/sysv/linux/fallocate64.c b/sysdeps/unix/sysv/linux/fallocate64.c index ebcaf671b3..751a7b2275 100644 --- a/sysdeps/unix/sysv/linux/fallocate64.c +++ b/sysdeps/unix/sysv/linux/fallocate64.c @@ -23,7 +23,7 @@ /* Reserve storage for the data of the file associated with FD. */ int -__fallocate64_l64 (int fd, int mode, __off64_t offset, __off64_t len) +fallocate64 (int fd, int mode, __off64_t offset, __off64_t len) { #ifdef __NR_fallocate return INLINE_SYSCALL (fallocate, 6, fd, mode, diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions index abd1d152d7..f3544acb75 100644 --- a/sysdeps/unix/sysv/linux/i386/Versions +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -41,6 +41,10 @@ libc { # v* vm86; } + GLIBC_2.11 { + # f* + fallocate64; + } GLIBC_PRIVATE { __modify_ldt; } diff --git a/sysdeps/unix/sysv/linux/i386/fallocate64.c b/sysdeps/unix/sysv/linux/i386/fallocate64.c index b744710a96..4998f5e644 100644 --- a/sysdeps/unix/sysv/linux/i386/fallocate64.c +++ b/sysdeps/unix/sysv/linux/i386/fallocate64.c @@ -26,7 +26,7 @@ extern int __call_fallocate (int fd, int mode, __off64_t offset, __off64_t len) /* Reserve storage for the data of the file associated with FD. */ int -__fallocate64_l64 (int fd, int mode, __off64_t offset, __off64_t len) +fallocate64 (int fd, int mode, __off64_t offset, __off64_t len) { return __call_fallocate (fd, mode, offset, len); } diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions index 181d70150c..6fa0119e95 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions @@ -27,4 +27,7 @@ libc { GLIBC_2.3.4 { setcontext; getcontext; swapcontext; makecontext; } + GLIBC_2.11 { + fallocate64; + } } diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions index b6d608d0ae..24e0b1d4cd 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions +++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions @@ -43,6 +43,9 @@ libc { getutmp; getutmpx; } + GLIBC_2.11 { + fallocate64; + } } libutil { diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions index 763be60222..bd30f928d7 100644 --- a/sysdeps/unix/sysv/linux/sh/Versions +++ b/sysdeps/unix/sysv/linux/sh/Versions @@ -24,4 +24,7 @@ libc { GLIBC_2.3.3 { posix_fadvise64; posix_fallocate64; } + GLIBC_2.11 { + fallocate64; + } } diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions index c585af3602..c9a5b3e9d5 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/Versions +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Versions @@ -20,4 +20,7 @@ libc { GLIBC_2.3.3 { posix_fadvise64; posix_fallocate64; } + GLIBC_2.11 { + fallocate64; + } } diff --git a/sysdeps/unix/sysv/linux/wordsize-64/Versions b/sysdeps/unix/sysv/linux/wordsize-64/Versions new file mode 100644 index 0000000000..a3b40ccd17 --- /dev/null +++ b/sysdeps/unix/sysv/linux/wordsize-64/Versions @@ -0,0 +1,5 @@ +libc { + GLIBC_2.10 { + fallocate64; + } +} From 6dd78596d56c61e952acf1ab75fe17ab62f768c1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 21:03:49 -0700 Subject: [PATCH 15/76] ChangeLog entries incorrectly applied. --- ChangeLog | 25 +++++++++++++++++++++++++ nptl/ChangeLog | 25 ------------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 050431278b..aa121bae3f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2009-05-14 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/fallocate64.c (__fallocate64_l64): + Rename ... + (fallocate64): ... to this. + * sysdeps/unix/sysv/linux/fallocate64.c (__fallocate64_l64): + Rename ... + (fallocate64): ... to this. + * sysdeps/unix/sysv/linux/Versions (libc): Remove fallocate64. + * sysdeps/unix/sysv/linux/wordsize-64/Versions (libc): Add + fallocate64@@GLIBC_2.10. + * sysdeps/unix/sysv/linux/i386/Versions (libc): Add + fallocate64@@GLIBC_2.11. + * sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise. + * sysdeps/unix/sysv/linux/sh/Versions (libc): Likewise. + +2009-05-14 Jakub Jelinek + + * nscd/selinux.c (nscd_avc_destroy): Removed. + * nscd/selinux.h (nscd_avc_destroy): Likewise. + * nscd/nscd.c (termination_handler): Don't call + nscd_avc_destroy. + 2009-05-15 Ulrich Drepper * math/libm-test.inc (expm1_test): Add test for range error. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index d596325419..f3bd32f577 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,28 +1,3 @@ -2009-05-14 Jakub Jelinek - - * sysdeps/unix/sysv/linux/i386/fallocate64.c (__fallocate64_l64): - Rename ... - (fallocate64): ... to this. - * sysdeps/unix/sysv/linux/fallocate64.c (__fallocate64_l64): - Rename ... - (fallocate64): ... to this. - * sysdeps/unix/sysv/linux/Versions (libc): Remove fallocate64. - * sysdeps/unix/sysv/linux/wordsize-64/Versions (libc): Add - fallocate64@@GLIBC_2.10. - * sysdeps/unix/sysv/linux/i386/Versions (libc): Add - fallocate64@@GLIBC_2.11. - * sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise. - * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Likewise. - * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise. - * sysdeps/unix/sysv/linux/sh/Versions (libc): Likewise. - -2009-05-14 Jakub Jelinek - - * nscd/selinux.c (nscd_avc_destroy): Removed. - * nscd/selinux.h (nscd_avc_destroy): Likewise. - * nscd/nscd.c (termination_handler): Don't call - nscd_avc_destroy. - 2009-05-15 Ulrich Drepper * cancellation.c (__pthread_disable_asynccancel): Correct the bits From 3b1b533bc3239ef6df1e40e0088e7270ac060be6 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 May 2009 21:08:55 -0700 Subject: [PATCH 16/76] Avoid double definition of catomic_compare_and_exchange_val_acq. --- ChangeLog | 6 ++++++ include/atomic.h | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index aa121bae3f..26ebd219a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-12 Jakub Jelinek + + * include/atomic.h: Formatting. + (catomic_compare_and_exchange_val_acq): Don't define if already + defined by bits/atomic.h. + 2009-05-14 Jakub Jelinek * sysdeps/unix/sysv/linux/i386/fallocate64.c (__fallocate64_l64): diff --git a/include/atomic.h b/include/atomic.h index 7c0548b004..9366f78734 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -95,14 +95,15 @@ #endif -#if !defined catomic_compare_and_exchange_val_acq \ - && defined __arch_c_compare_and_exchange_val_32_acq -# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \ +#ifndef catomic_compare_and_exchange_val_acq +# ifdef __arch_c_compare_and_exchange_val_32_acq +# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \ __atomic_val_bysize (__arch_c_compare_and_exchange_val,acq, \ mem, newval, oldval) -#else -# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \ +# else +# define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \ atomic_compare_and_exchange_val_acq (mem, newval, oldval) +# endif #endif @@ -125,8 +126,8 @@ # define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ __atomic_bool_bysize (__arch_compare_and_exchange_bool,acq, \ mem, newval, oldval) -# else -# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ +# else +# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ ({ /* Cannot use __oldval here, because macros later in this file might \ call this macro with __oldval argument. */ \ __typeof (oldval) __atg3_old = (oldval); \ @@ -142,8 +143,8 @@ # define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ __atomic_bool_bysize (__arch_c_compare_and_exchange_bool,acq, \ mem, newval, oldval) -# else -# define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ +# else +# define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ ({ /* Cannot use __oldval here, because macros later in this file might \ call this macro with __oldval argument. */ \ __typeof (oldval) __atg4_old = (oldval); \ From cfe1fc1013d0e7e4863c974fa0e78891cc0a2ed2 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 May 2009 21:17:08 -0700 Subject: [PATCH 17/76] Robustify libc-side nscd database reader. The nscd database mapped in processes can change at any time. We have to be more vigilant when it comes to using that memory. Test the data entries are valid in their entire size, don't read data again from memory once we verified it, and make sure the trailing pointer is not going off the deep end. --- ChangeLog | 27 +++++++++++++++++++-------- nscd/nscd-client.h | 5 +++-- nscd/nscd_getai.c | 5 +++-- nscd/nscd_getgr_r.c | 5 +++-- nscd/nscd_gethst_r.c | 6 ++++-- nscd/nscd_getpw_r.c | 5 +++-- nscd/nscd_getserv_r.c | 5 +++-- nscd/nscd_helper.c | 27 +++++++++++++++++++-------- nscd/nscd_initgroups.c | 5 +++-- 9 files changed, 60 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index 26ebd219a1..aa415cbac2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,18 @@ -2009-05-12 Jakub Jelinek - - * include/atomic.h: Formatting. - (catomic_compare_and_exchange_val_acq): Don't define if already - defined by bits/atomic.h. - 2009-05-14 Jakub Jelinek + * nscd/nscd_helper.c: Include stddef.h. + (__nscd_cache_search): Add datalen argument. Use atomic_forced_read + in a couple of places. Return NULL if trail is not less than + datasize, don't consider dataheads with length smaller than + offsetof (struct datahead, data) + datalen. + * nscd/nscd_client.h (__nscd_cache_search): Adjust prototype. + * nscd/nscd_gethst_r.c (nscd_gethst_r): Adjust callers. + * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise. + * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise. + * nscd/nscd_getai.c (__nscd_getai): Likewise. + * nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise. + * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. + * sysdeps/unix/sysv/linux/i386/fallocate64.c (__fallocate64_l64): Rename ... (fallocate64): ... to this. @@ -22,13 +29,17 @@ * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise. * sysdeps/unix/sysv/linux/sh/Versions (libc): Likewise. -2009-05-14 Jakub Jelinek - * nscd/selinux.c (nscd_avc_destroy): Removed. * nscd/selinux.h (nscd_avc_destroy): Likewise. * nscd/nscd.c (termination_handler): Don't call nscd_avc_destroy. +2009-05-12 Jakub Jelinek + + * include/atomic.h: Formatting. + (catomic_compare_and_exchange_val_acq): Don't define if already + defined by bits/atomic.h. + 2009-05-15 Ulrich Drepper * math/libm-test.inc (expm1_test): Add test for range error. diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h index 3c9688fd30..f66a658d2a 100644 --- a/nscd/nscd-client.h +++ b/nscd/nscd-client.h @@ -1,4 +1,4 @@ -/* Copyright (c) 1998, 1999, 2000, 2003, 2004, 2005, 2006, 2007 +/* Copyright (c) 1998, 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1998. @@ -329,7 +329,8 @@ static inline int __nscd_drop_map_ref (struct mapped_database *map, extern struct datahead *__nscd_cache_search (request_type type, const char *key, size_t keylen, - const struct mapped_database *mapped); + const struct mapped_database *mapped, + size_t datalen); /* Wrappers around read, readv and write that only read/write less than LEN bytes on error or EOF. */ diff --git a/nscd/nscd_getai.c b/nscd/nscd_getai.c index 674a5e7514..d1c5cd14e9 100644 --- a/nscd/nscd_getai.c +++ b/nscd/nscd_getai.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -75,7 +76,7 @@ __nscd_getai (const char *key, struct nscd_ai_result **result, int *h_errnop) if (mapped != NO_MAPPING) { struct datahead *found = __nscd_cache_search (GETAI, key, keylen, - mapped); + mapped, sizeof ai_resp); if (found != NULL) { respdata = (char *) (&found->data[0].aidata + 1); diff --git a/nscd/nscd_getgr_r.c b/nscd/nscd_getgr_r.c index b84b06b3ce..c2d204c3c8 100644 --- a/nscd/nscd_getgr_r.c +++ b/nscd/nscd_getgr_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2000, 2002-2005, 2006, 2007 +/* Copyright (C) 1998-2000, 2002-2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1998. @@ -107,7 +107,8 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type, if (mapped != NO_MAPPING) { - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped); + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped, + sizeof gr_resp); if (found != NULL) { len = (const uint32_t *) (&found->data[0].grdata + 1); diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c index aea8288594..70631fa961 100644 --- a/nscd/nscd_gethst_r.c +++ b/nscd/nscd_gethst_r.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1998-2005, 2006, 2007, 2008 Free Software Foundation, Inc. +/* Copyright (C) 1998-2005, 2006, 2007, 2008, 2009 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -137,7 +138,8 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type, if (mapped != NO_MAPPING) { /* No const qualifier, as it can change during garbage collection. */ - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped); + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped, + sizeof hst_resp); if (found != NULL) { h_name = (char *) (&found->data[0].hstdata + 1); diff --git a/nscd/nscd_getpw_r.c b/nscd/nscd_getpw_r.c index 21f792bb4e..8a4449d186 100644 --- a/nscd/nscd_getpw_r.c +++ b/nscd/nscd_getpw_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2003, 2004, 2005, 2007 +/* Copyright (C) 1998, 1999, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1998. @@ -104,7 +104,8 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type, if (mapped != NO_MAPPING) { - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped); + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped, + sizeof pw_resp); if (found != NULL) { pw_name = (const char *) (&found->data[0].pwdata + 1); diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c index b1ad7e2e43..dce4165482 100644 --- a/nscd/nscd_getserv_r.c +++ b/nscd/nscd_getserv_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007 Free Software Foundation, Inc. +/* Copyright (C) 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -104,7 +104,8 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, if (mapped != NO_MAPPING) { - struct datahead *found = __nscd_cache_search (type, key, keylen, mapped); + struct datahead *found = __nscd_cache_search (type, key, keylen, mapped, + sizeof serv_resp); if (found != NULL) { diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index cd3fa24196..db247962b9 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -472,18 +473,20 @@ __nscd_get_map_ref (request_type type, const char *name, garbage collection. */ struct datahead * __nscd_cache_search (request_type type, const char *key, size_t keylen, - const struct mapped_database *mapped) + const struct mapped_database *mapped, size_t datalen) { unsigned long int hash = __nis_hash (key, keylen) % mapped->head->module; size_t datasize = mapped->datasize; ref_t trail = mapped->head->array[hash]; + trail = atomic_forced_read (trail); ref_t work = trail; int tick = 0; while (work != ENDREF && work + sizeof (struct hashentry) <= datasize) { struct hashentry *here = (struct hashentry *) (mapped->data + work); + ref_t here_key, here_packet; #ifndef _STRING_ARCH_unaligned /* Although during garbage collection when moving struct hashentry @@ -498,13 +501,14 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, if (type == here->type && keylen == here->len - && here->key + keylen <= datasize - && memcmp (key, mapped->data + here->key, keylen) == 0 - && here->packet + sizeof (struct datahead) <= datasize) + && (here_key = atomic_forced_read (here->key)) + keylen <= datasize + && memcmp (key, mapped->data + here_key, keylen) == 0 + && ((here_packet = atomic_forced_read (here->packet)) + + sizeof (struct datahead) <= datasize)) { /* We found the entry. Increment the appropriate counter. */ struct datahead *dh - = (struct datahead *) (mapped->data + here->packet); + = (struct datahead *) (mapped->data + here_packet); #ifndef _STRING_ARCH_unaligned if ((uintptr_t) dh & (__alignof__ (*dh) - 1)) @@ -513,11 +517,14 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, /* See whether we must ignore the entry or whether something is wrong because garbage collection is in progress. */ - if (dh->usable && here->packet + dh->allocsize <= datasize) + if (dh->usable + && here_packet + dh->allocsize <= datasize + && (here_packet + offsetof (struct datahead, data) + datalen + <= datasize)) return dh; } - work = here->next; + work = atomic_forced_read (here->next); /* Prevent endless loops. This should never happen but perhaps the database got corrupted, accidentally or deliberately. */ if (work == trail) @@ -532,7 +539,11 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1)) return NULL; #endif - trail = trailelem->next; + + if (trail + sizeof (struct hashentry) > datasize) + return NULL; + + trail = atomic_forced_read (trailelem->next); } tick = 1 - tick; } diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c index 866455a96c..5ff60c080c 100644 --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -55,7 +55,8 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, if (mapped != NO_MAPPING) { struct datahead *found = __nscd_cache_search (INITGROUPS, user, - userlen, mapped); + userlen, mapped, + sizeof initgr_resp); if (found != NULL) { respdata = (char *) (&found->data[0].initgrdata + 1); From 831a40494d44045c0caaf8085ab1d35c0da23140 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 May 2009 21:33:43 -0700 Subject: [PATCH 18/76] Further robustify nscd database lookup. We can compute an absolute maximum for the number of elements which can fit into the currently mapped database. Stop after that many iterations. --- ChangeLog | 9 +++++++++ nscd/nscd-client.h | 7 ++++++- nscd/nscd.h | 5 ----- nscd/nscd_helper.c | 3 ++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index aa415cbac2..bf3dd4936d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-05-15 Ulrich Drepper + + * nscd/nscd.h: Move Definition for BLOCK_ALIGN_LOG, BLOCK_ALIGN, and + BLOCK_ALIGN_M1 to ... + * nscd/nscd-client.h: ...here. + * nscd/nscd_helper.c (__nscd_cache_search): Introduce loop counter. + Use it if we absolutely cannot reach any more correct list elements + because that many do not fit into the currently mapped database. + 2009-05-14 Jakub Jelinek * nscd/nscd_helper.c: Include stddef.h. diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h index f66a658d2a..81ca3d56b9 100644 --- a/nscd/nscd-client.h +++ b/nscd/nscd-client.h @@ -44,9 +44,14 @@ /* Path for the configuration file. */ #define _PATH_NSCDCONF "/etc/nscd.conf" -/* Maximu allowed length for the key. */ +/* Maximum allowed length for the key. */ #define MAXKEYLEN 1024 +/* Maximum alignment requirement we will encounter. */ +#define BLOCK_ALIGN_LOG 3 +#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG) +#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1) + /* Available services. */ typedef enum diff --git a/nscd/nscd.h b/nscd/nscd.h index 3279b85432..632bf58dc5 100644 --- a/nscd/nscd.h +++ b/nscd/nscd.h @@ -111,11 +111,6 @@ struct database_dyn /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" -/* Maximum alignment requirement we will encounter. */ -#define BLOCK_ALIGN_LOG 3 -#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG) -#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1) - /* Default value for the maximum size of the database files. */ #define DEFAULT_MAX_DB_SIZE (32 * 1024 * 1024) diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index db247962b9..80ee3e1dd9 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -481,6 +481,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, ref_t trail = mapped->head->array[hash]; trail = atomic_forced_read (trail); ref_t work = trail; + size_t loop_cnt = datasize / (offsetof (struct datahead, data) + datalen); int tick = 0; while (work != ENDREF && work + sizeof (struct hashentry) <= datasize) @@ -527,7 +528,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, work = atomic_forced_read (here->next); /* Prevent endless loops. This should never happen but perhaps the database got corrupted, accidentally or deliberately. */ - if (work == trail) + if (work == trail || loop_cnt-- > 0) break; if (tick) { From ff6ff38db28323c6de078614198c2d89e8e1df07 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sat, 16 May 2009 10:18:34 +0200 Subject: [PATCH 19/76] Remove redundant .gitignore files. --- assert/.gitignore | 6 ------ ctype/.gitignore | 6 ------ dirent/.gitignore | 6 ------ elf/.gitignore | 6 ------ gmon/.gitignore | 6 ------ gnulib/.gitignore | 6 ------ grp/.gitignore | 6 ------ hurd/.gitignore | 6 ------ inet/.gitignore | 6 ------ intl/.gitignore | 6 ------ io/.gitignore | 6 ------ locale/.gitignore | 6 ------ mach/.gitignore | 6 ------ math/.gitignore | 6 ------ misc/.gitignore | 6 ------ posix/.gitignore | 6 ------ pwd/.gitignore | 6 ------ resolv/.gitignore | 6 ------ resource/.gitignore | 6 ------ setjmp/.gitignore | 6 ------ signal/.gitignore | 6 ------ socket/.gitignore | 6 ------ string/.gitignore | 6 ------ sysvipc/.gitignore | 6 ------ termios/.gitignore | 6 ------ time/.gitignore | 6 ------ wcsmbs/.gitignore | 6 ------ wctype/.gitignore | 6 ------ 28 files changed, 168 deletions(-) delete mode 100644 assert/.gitignore delete mode 100644 ctype/.gitignore delete mode 100644 dirent/.gitignore delete mode 100644 elf/.gitignore delete mode 100644 gmon/.gitignore delete mode 100644 gnulib/.gitignore delete mode 100644 grp/.gitignore delete mode 100644 hurd/.gitignore delete mode 100644 inet/.gitignore delete mode 100644 intl/.gitignore delete mode 100644 io/.gitignore delete mode 100644 locale/.gitignore delete mode 100644 mach/.gitignore delete mode 100644 math/.gitignore delete mode 100644 misc/.gitignore delete mode 100644 posix/.gitignore delete mode 100644 pwd/.gitignore delete mode 100644 resolv/.gitignore delete mode 100644 resource/.gitignore delete mode 100644 setjmp/.gitignore delete mode 100644 signal/.gitignore delete mode 100644 socket/.gitignore delete mode 100644 string/.gitignore delete mode 100644 sysvipc/.gitignore delete mode 100644 termios/.gitignore delete mode 100644 time/.gitignore delete mode 100644 wcsmbs/.gitignore delete mode 100644 wctype/.gitignore diff --git a/assert/.gitignore b/assert/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/assert/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/ctype/.gitignore b/ctype/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/ctype/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/dirent/.gitignore b/dirent/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/dirent/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/elf/.gitignore b/elf/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/elf/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/gmon/.gitignore b/gmon/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/gmon/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/gnulib/.gitignore b/gnulib/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/gnulib/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/grp/.gitignore b/grp/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/grp/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/hurd/.gitignore b/hurd/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/hurd/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/inet/.gitignore b/inet/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/inet/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/intl/.gitignore b/intl/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/intl/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/io/.gitignore b/io/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/io/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/locale/.gitignore b/locale/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/locale/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/mach/.gitignore b/mach/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/mach/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/math/.gitignore b/math/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/math/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/misc/.gitignore b/misc/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/misc/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/posix/.gitignore b/posix/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/posix/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/pwd/.gitignore b/pwd/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/pwd/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/resolv/.gitignore b/resolv/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/resolv/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/resource/.gitignore b/resource/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/resource/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/setjmp/.gitignore b/setjmp/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/setjmp/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/signal/.gitignore b/signal/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/signal/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/socket/.gitignore b/socket/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/socket/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/string/.gitignore b/string/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/string/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/sysvipc/.gitignore b/sysvipc/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/sysvipc/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/termios/.gitignore b/termios/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/termios/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/time/.gitignore b/time/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/time/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/wcsmbs/.gitignore b/wcsmbs/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/wcsmbs/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo diff --git a/wctype/.gitignore b/wctype/.gitignore deleted file mode 100644 index 3fc9f4cdf1..0000000000 --- a/wctype/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO COPYING* AUTHORS copyr-* copying.* -glibc-* -distinfo From bb87237534eee688ad8c8eab10e433ae6238fc03 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 16 May 2009 09:16:27 +0200 Subject: [PATCH 20/76] remove COPYING* from .gitignore files --- csu/.gitignore | 2 +- libio/.gitignore | 2 +- stdio-common/.gitignore | 2 +- stdlib/.gitignore | 2 +- sunrpc/.gitignore | 2 +- sysdeps/mach/hurd/.gitignore | 2 +- sysdeps/unix/common/.gitignore | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/csu/.gitignore b/csu/.gitignore index da6e41b953..112daed819 100644 --- a/csu/.gitignore +++ b/csu/.gitignore @@ -1,7 +1,7 @@ *.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* distinfo specs diff --git a/libio/.gitignore b/libio/.gitignore index 602b74c1ae..97cc86e891 100644 --- a/libio/.gitignore +++ b/libio/.gitignore @@ -1,7 +1,7 @@ *.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* mpn-copy.mk diff --git a/stdio-common/.gitignore b/stdio-common/.gitignore index 602b74c1ae..97cc86e891 100644 --- a/stdio-common/.gitignore +++ b/stdio-common/.gitignore @@ -1,7 +1,7 @@ *.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* mpn-copy.mk diff --git a/stdlib/.gitignore b/stdlib/.gitignore index 602b74c1ae..97cc86e891 100644 --- a/stdlib/.gitignore +++ b/stdlib/.gitignore @@ -1,7 +1,7 @@ *.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* mpn-copy.mk diff --git a/sunrpc/.gitignore b/sunrpc/.gitignore index b2e79b502b..0da51c4793 100644 --- a/sunrpc/.gitignore +++ b/sunrpc/.gitignore @@ -1,7 +1,7 @@ *.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* rpcsrc-4.0 diff --git a/sysdeps/mach/hurd/.gitignore b/sysdeps/mach/hurd/.gitignore index 1f69fd919a..164bcc84a8 100644 --- a/sysdeps/mach/hurd/.gitignore +++ b/sysdeps/mach/hurd/.gitignore @@ -1,4 +1,4 @@ *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* diff --git a/sysdeps/unix/common/.gitignore b/sysdeps/unix/common/.gitignore index 1f69fd919a..164bcc84a8 100644 --- a/sysdeps/unix/common/.gitignore +++ b/sysdeps/unix/common/.gitignore @@ -1,4 +1,4 @@ *.gz *.Z *.tar *.tgz =* -TODO COPYING* AUTHORS copyr-* copying.* +TODO AUTHORS copyr-* copying.* glibc-* From 863615332688db0aa6db3dea642752241f051e5c Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 16 May 2009 09:28:06 +0200 Subject: [PATCH 21/76] remove mpn-copy.mk from .gitignore files --- libio/.gitignore | 2 +- stdio-common/.gitignore | 2 +- stdlib/.gitignore | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libio/.gitignore b/libio/.gitignore index 97cc86e891..1297114731 100644 --- a/libio/.gitignore +++ b/libio/.gitignore @@ -4,5 +4,5 @@ TODO AUTHORS copyr-* copying.* glibc-* -mpn-copy.mk + distinfo diff --git a/stdio-common/.gitignore b/stdio-common/.gitignore index 97cc86e891..1297114731 100644 --- a/stdio-common/.gitignore +++ b/stdio-common/.gitignore @@ -4,5 +4,5 @@ TODO AUTHORS copyr-* copying.* glibc-* -mpn-copy.mk + distinfo diff --git a/stdlib/.gitignore b/stdlib/.gitignore index 97cc86e891..1297114731 100644 --- a/stdlib/.gitignore +++ b/stdlib/.gitignore @@ -4,5 +4,5 @@ TODO AUTHORS copyr-* copying.* glibc-* -mpn-copy.mk + distinfo From edeabc047e56680a293c39992d227b4c430cc0a7 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 16 May 2009 09:52:16 +0200 Subject: [PATCH 22/76] remove subsumed .gitignore entries and files --- .gitignore | 1 - csu/.gitignore | 6 ------ libio/.gitignore | 8 -------- manual/.gitignore | 37 ++++++++++++++++------------------ stdio-common/.gitignore | 8 -------- stdlib/.gitignore | 8 -------- sunrpc/.gitignore | 7 ------- sysdeps/mach/hurd/.gitignore | 4 ---- sysdeps/unix/common/.gitignore | 4 ---- 9 files changed, 17 insertions(+), 66 deletions(-) delete mode 100644 libio/.gitignore delete mode 100644 stdio-common/.gitignore delete mode 100644 stdlib/.gitignore delete mode 100644 sysdeps/mach/hurd/.gitignore delete mode 100644 sysdeps/unix/common/.gitignore diff --git a/.gitignore b/.gitignore index d903bc6bd3..3b3f0e750f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,6 @@ regex gpl2lgpl.sed distinfo -distinfo test-include analysis diff --git a/csu/.gitignore b/csu/.gitignore index 112daed819..d8933cf691 100644 --- a/csu/.gitignore +++ b/csu/.gitignore @@ -1,7 +1 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* -distinfo specs diff --git a/libio/.gitignore b/libio/.gitignore deleted file mode 100644 index 1297114731..0000000000 --- a/libio/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* - - -distinfo diff --git a/manual/.gitignore b/manual/.gitignore index 27f045cc1f..e92cef39b4 100644 --- a/manual/.gitignore +++ b/manual/.gitignore @@ -1,32 +1,29 @@ -*.dvi* -*.info* -*.c.texi -*.ps -*.pdf -*.toc *.aux -*.log -*.tmp +*.c.texi *.cp *.cps +*.dvi* *.fn *.fns -*.vr -*.vrs -*.tp -*.tps +*.info* *.ky *.kys +*.log +*.pdf *.pg *.pgs - -texis -top-menu.texi +*.ps +*.tmp +*.toc +*.tp +*.tps +*.vr +*.vrs chapters.texi -summary.texi -stamp-* -distinfo -dir-add.texinfo dir-add.texi - +dir-add.texinfo libm-err.texi +stamp-* +summary.texi +texis +top-menu.texi diff --git a/stdio-common/.gitignore b/stdio-common/.gitignore deleted file mode 100644 index 1297114731..0000000000 --- a/stdio-common/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* - - -distinfo diff --git a/stdlib/.gitignore b/stdlib/.gitignore deleted file mode 100644 index 1297114731..0000000000 --- a/stdlib/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* - - -distinfo diff --git a/sunrpc/.gitignore b/sunrpc/.gitignore index 0da51c4793..fd6ab6babb 100644 --- a/sunrpc/.gitignore +++ b/sunrpc/.gitignore @@ -1,8 +1 @@ -*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* - rpcsrc-4.0 -distinfo diff --git a/sysdeps/mach/hurd/.gitignore b/sysdeps/mach/hurd/.gitignore deleted file mode 100644 index 164bcc84a8..0000000000 --- a/sysdeps/mach/hurd/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* diff --git a/sysdeps/unix/common/.gitignore b/sysdeps/unix/common/.gitignore deleted file mode 100644 index 164bcc84a8..0000000000 --- a/sysdeps/unix/common/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.gz *.Z *.tar *.tgz -=* -TODO AUTHORS copyr-* copying.* -glibc-* From a5b8b56df7ae93e156ad523e1c867f41fc1e007d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 08:57:49 -0700 Subject: [PATCH 23/76] Rename nptl/init.c to nptl/nptl-init.c. Needed to allow overwriting architectures init.c in csu and nptl individually. Fixes BZ #9924. --- nptl/ChangeLog | 6 ++++++ nptl/Makefile | 6 +++--- nptl/{init.c => nptl-init.c} | 0 3 files changed, 9 insertions(+), 3 deletions(-) rename nptl/{init.c => nptl-init.c} (100%) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index f3bd32f577..b83128e5af 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2009-05-16 Ulrich Drepper + + [BZ #9924] + * nptl-init.c: Renamed from init.c. + * Makefile: Change all occurences of init.c to nptl-init.c. + 2009-05-15 Ulrich Drepper * cancellation.c (__pthread_disable_asynccancel): Correct the bits diff --git a/nptl/Makefile b/nptl/Makefile index 71bf5ef913..07c098d23e 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -31,7 +31,7 @@ install-lib-ldscripts := libpthread.so routines = alloca_cutoff forward libc-lowlevellock libc-cancellation shared-only-routines = forward -libpthread-routines = init vars events version \ +libpthread-routines = nptl-init vars events version \ pthread_create pthread_exit pthread_detach \ pthread_join pthread_tryjoin pthread_timedjoin \ pthread_self pthread_equal pthread_yield \ @@ -139,8 +139,8 @@ CFLAGS-pthread_atfork.c = -DNOT_IN_libc # we have to compile some files with exception handling enabled, some # even with asynchronous unwind tables. -# init.c contains sigcancel_handler(). -CFLAGS-init.c = -fexceptions -fasynchronous-unwind-tables +# nptl-init.c contains sigcancel_handler(). +CFLAGS-nptl-init.c = -fexceptions -fasynchronous-unwind-tables # The unwind code itself, CFLAGS-unwind.c = -fexceptions CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables diff --git a/nptl/init.c b/nptl/nptl-init.c similarity index 100% rename from nptl/init.c rename to nptl/nptl-init.c From 95410b7ba23c44f6a038285d9c38ee84129e4cd6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 10:10:32 -0700 Subject: [PATCH 24/76] Fix exit condition. The patch to bound the search in the nscd caches used a wrong exit condition. Fixed now. --- ChangeLog | 5 +++++ nscd/nscd_helper.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bf3dd4936d..879b28586e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-16 Ulrich Drepper + + * nscd/nscd_helper.c (__nscd_cache_search): Fix exit condition in last + patch. + 2009-05-15 Ulrich Drepper * nscd/nscd.h: Move Definition for BLOCK_ALIGN_LOG, BLOCK_ALIGN, and diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index 80ee3e1dd9..c09f00859e 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -528,7 +528,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, work = atomic_forced_read (here->next); /* Prevent endless loops. This should never happen but perhaps the database got corrupted, accidentally or deliberately. */ - if (work == trail || loop_cnt-- > 0) + if (work == trail || loop_cnt-- == 0) break; if (tick) { From fa546abe9d0346d5d87b8fe19884993408476d77 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 10:29:43 -0700 Subject: [PATCH 25/76] Move BLOCK_ALIGN* macros back. The move to nscd-client.h was only needed for some interim version of the patch. The final version doesn't need it. Undo the change. --- ChangeLog | 3 --- nscd/nscd-client.h | 5 ----- nscd/nscd.h | 5 +++++ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 879b28586e..8d94a78b8c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,9 +5,6 @@ 2009-05-15 Ulrich Drepper - * nscd/nscd.h: Move Definition for BLOCK_ALIGN_LOG, BLOCK_ALIGN, and - BLOCK_ALIGN_M1 to ... - * nscd/nscd-client.h: ...here. * nscd/nscd_helper.c (__nscd_cache_search): Introduce loop counter. Use it if we absolutely cannot reach any more correct list elements because that many do not fit into the currently mapped database. diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h index 81ca3d56b9..c6c09cbddd 100644 --- a/nscd/nscd-client.h +++ b/nscd/nscd-client.h @@ -47,11 +47,6 @@ /* Maximum allowed length for the key. */ #define MAXKEYLEN 1024 -/* Maximum alignment requirement we will encounter. */ -#define BLOCK_ALIGN_LOG 3 -#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG) -#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1) - /* Available services. */ typedef enum diff --git a/nscd/nscd.h b/nscd/nscd.h index 632bf58dc5..3279b85432 100644 --- a/nscd/nscd.h +++ b/nscd/nscd.h @@ -111,6 +111,11 @@ struct database_dyn /* Path used when not using persistent storage. */ #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" +/* Maximum alignment requirement we will encounter. */ +#define BLOCK_ALIGN_LOG 3 +#define BLOCK_ALIGN (1 << BLOCK_ALIGN_LOG) +#define BLOCK_ALIGN_M1 (BLOCK_ALIGN - 1) + /* Default value for the maximum size of the database files. */ #define DEFAULT_MAX_DB_SIZE (32 * 1024 * 1024) From a64039b084ae3faca3336b7d95f2e40c497d20e1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 11:39:39 -0700 Subject: [PATCH 26/76] Unify __WAIT_INT definition in stdlib.h and sys/wait.h. This fixes BZ #10159. The stdlib.h definition was out of date. --- ChangeLog | 3 +++ stdlib/stdlib.h | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d94a78b8c..d8a8305c82 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2009-05-16 Ulrich Drepper + [BZ #10159] + * stdlib/stdlib.h (__WAIT_INT): Match the definition in . + * nscd/nscd_helper.c (__nscd_cache_search): Fix exit condition in last patch. diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 77bb860454..5b084efa3e 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -48,9 +48,9 @@ __BEGIN_DECLS as well as POSIX.1 use of `int' for the status word. */ # if defined __GNUC__ && !defined __cplusplus -# define __WAIT_INT(status) \ - (__extension__ ({ union { __typeof(status) __in; int __i; } __u; \ - __u.__in = (status); __u.__i; })) +# define __WAIT_INT(status) \ + (__extension__ (((union { __typeof(status) __in; int __i; }) \ + { .__in = (status) }).__i)) # else # define __WAIT_INT(status) (*(int *) &(status)) # endif From 8f0d3f499f556c634c120e8045f6a8e26be703ca Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 12:17:55 -0700 Subject: [PATCH 27/76] Non-code changes to stdlib.h. --- ChangeLog | 2 ++ stdlib/stdlib.h | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8a8305c82..c54ff5d717 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-05-16 Ulrich Drepper + * stdlib/stdlib.h: Fix types. Pretty printing. Correct comments. + [BZ #10159] * stdlib/stdlib.h (__WAIT_INT): Match the definition in . diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 5b084efa3e..1b88ce6a52 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -56,7 +56,7 @@ __BEGIN_DECLS # endif /* This is the type of the argument to `wait'. The funky union - causes redeclarations with ether `int *' or `union wait *' to be + causes redeclarations with either `int *' or `union wait *' to be allowed without complaint. __WAIT_STATUS_DEFN is the type used in the actual function definitions. */ @@ -82,14 +82,14 @@ typedef union # endif /* Use BSD. */ /* Define the macros also would define this way. */ -# define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) -# define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) -# define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) -# define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) -# define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) -# define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) +# define WEXITSTATUS(status) __WEXITSTATUS (__WAIT_INT (status)) +# define WTERMSIG(status) __WTERMSIG (__WAIT_INT (status)) +# define WSTOPSIG(status) __WSTOPSIG (__WAIT_INT (status)) +# define WIFEXITED(status) __WIFEXITED (__WAIT_INT (status)) +# define WIFSIGNALED(status) __WIFSIGNALED (__WAIT_INT (status)) +# define WIFSTOPPED(status) __WIFSTOPPED (__WAIT_INT (status)) # ifdef __WIFCONTINUED -# define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) +# define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status)) # endif #endif /* X/Open and not included. */ @@ -222,14 +222,14 @@ __END_NAMESPACE_C99 #ifdef __USE_GNU /* The concept of one static locale per category is not very well thought out. Many applications will need to process its data using - information from several different locales. Another application is + information from several different locales. Another problem is the implementation of the internationalization handling in the - upcoming ISO C++ standard library. To support this another set of - the functions using locale data exist which have an additional + ISO C++ standard library. To support this another set of + the functions using locale data exist which take an additional argument. - Attention: all these functions are *not* standardized in any form. - This is a proof-of-concept implementation. */ + Attention: even though several *_l interfaces are part of POSIX:2008, + these are not. */ /* Structure for reentrant locale using functions. This is an (almost) opaque type for the user level programs. */ From c457bc139ebd987f2bd2b8e4d9deb63a704e6473 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 12:47:15 -0700 Subject: [PATCH 28/76] Fix typos and pretty printing in sys/wait.h. --- ChangeLog | 3 ++- posix/sys/wait.h | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index c54ff5d717..04c04bab3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2009-05-16 Ulrich Drepper - * stdlib/stdlib.h: Fix types. Pretty printing. Correct comments. + * posix/sys/wait.h: Fix typos. Pretty printing. + * stdlib/stdlib.h: Likewise. Correct comments. [BZ #10159] * stdlib/stdlib.h (__WAIT_INT): Match the definition in . diff --git a/posix/sys/wait.h b/posix/sys/wait.h index fe103570db..d9248426dc 100644 --- a/posix/sys/wait.h +++ b/posix/sys/wait.h @@ -1,5 +1,5 @@ -/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007 - Free Software Foundation, Inc. +/* Copyright (C) 1991-1994,1996-2001,2003,2004,2005,2007,2009 + 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 @@ -51,7 +51,7 @@ __BEGIN_DECLS # endif /* This is the type of the argument to `wait'. The funky union - causes redeclarations with ether `int *' or `union wait *' to be + causes redeclarations with either `int *' or `union wait *' to be allowed without complaint. __WAIT_STATUS_DEFN is the type used in the actual function definitions. */ @@ -79,22 +79,22 @@ typedef union /* This will define all the `__W*' macros. */ # include -# define WEXITSTATUS(status) __WEXITSTATUS(__WAIT_INT(status)) -# define WTERMSIG(status) __WTERMSIG(__WAIT_INT(status)) -# define WSTOPSIG(status) __WSTOPSIG(__WAIT_INT(status)) -# define WIFEXITED(status) __WIFEXITED(__WAIT_INT(status)) -# define WIFSIGNALED(status) __WIFSIGNALED(__WAIT_INT(status)) -# define WIFSTOPPED(status) __WIFSTOPPED(__WAIT_INT(status)) +# define WEXITSTATUS(status) __WEXITSTATUS (__WAIT_INT (status)) +# define WTERMSIG(status) __WTERMSIG (__WAIT_INT (status)) +# define WSTOPSIG(status) __WSTOPSIG (__WAIT_INT (status)) +# define WIFEXITED(status) __WIFEXITED (__WAIT_INT (status)) +# define WIFSIGNALED(status) __WIFSIGNALED (__WAIT_INT (status)) +# define WIFSTOPPED(status) __WIFSTOPPED (__WAIT_INT (status)) # ifdef __WIFCONTINUED -# define WIFCONTINUED(status) __WIFCONTINUED(__WAIT_INT(status)) +# define WIFCONTINUED(status) __WIFCONTINUED (__WAIT_INT (status)) # endif #endif /* not included. */ #ifdef __USE_BSD # define WCOREFLAG __WCOREFLAG -# define WCOREDUMP(status) __WCOREDUMP(__WAIT_INT(status)) -# define W_EXITCODE(ret, sig) __W_EXITCODE(ret, sig) -# define W_STOPCODE(sig) __W_STOPCODE(sig) +# define WCOREDUMP(status) __WCOREDUMP (__WAIT_INT (status)) +# define W_EXITCODE(ret, sig) __W_EXITCODE (ret, sig) +# define W_STOPCODE(sig) __W_STOPCODE (sig) #endif /* The following values are used by the `waitid' function. */ From 7afc8bfcbb0739354dc841f9def786df8639db8b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 12:57:37 -0700 Subject: [PATCH 29/76] Remove sunrpc/.gitignore. We don't update the RPC sources from the original tarball anymore. No need to ignore that directory. --- sunrpc/.gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 sunrpc/.gitignore diff --git a/sunrpc/.gitignore b/sunrpc/.gitignore deleted file mode 100644 index fd6ab6babb..0000000000 --- a/sunrpc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -rpcsrc-4.0 From cba0ca7925f8e324e8af9f88187b3473363853a1 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 14:55:59 -0700 Subject: [PATCH 30/76] Unify source for async cancel handling. Unify all three places where we enable async cancellation for syscalls. Optimize a bit. --- nptl/ChangeLog | 5 ++ nptl/cancellation.c | 3 - nptl/libc-cancellation.c | 102 +--------------------- nptl/sysdeps/pthread/librt-cancellation.c | 91 +------------------ 4 files changed, 12 insertions(+), 189 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b83128e5af..23083611b4 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,10 @@ 2009-05-16 Ulrich Drepper + * cancellation.c (__pthread_disable_asynccancel): Remove unnecessary + test. + * libc-cancellation.c: Use -#include #include "pthreadP.h" -#include -#include -#ifndef NOT_IN_libc - -/* The next two functions are similar to pthread_setcanceltype() but - more specialized for the use in the cancelable functions like write(). - They do not need to check parameters etc. */ -int -attribute_hidden -__libc_enable_asynccancel (void) -{ - struct pthread *self = THREAD_SELF; - int oldval = THREAD_GETMEM (self, cancelhandling); - - while (1) - { - int newval = oldval | CANCELTYPE_BITMASK; - - if (__builtin_expect ((oldval & CANCELED_BITMASK) != 0, 0)) - { - /* If we are already exiting or if PTHREAD_CANCEL_DISABLED, - stop right here. */ - if ((oldval & (EXITING_BITMASK | CANCELSTATE_BITMASK)) != 0) - break; - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, - newval, oldval); - if (__builtin_expect (curval != oldval, 0)) - { - /* Somebody else modified the word, try again. */ - oldval = curval; - continue; - } - - THREAD_SETMEM (self, result, PTHREAD_CANCELED); - - __do_cancel (); - - /* NOTREACHED */ - } - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval, - oldval); - if (__builtin_expect (curval == oldval, 1)) - break; - - /* Prepare the next round. */ - oldval = curval; - } - - return oldval; -} - - -void -internal_function attribute_hidden -__libc_disable_asynccancel (int oldtype) -{ - /* If asynchronous cancellation was enabled before we do not have - anything to do. */ - if (oldtype & CANCELTYPE_BITMASK) - return; - - struct pthread *self = THREAD_SELF; - int newval; - - int oldval = THREAD_GETMEM (self, cancelhandling); - - while (1) - { - newval = oldval & ~CANCELTYPE_BITMASK; - - if (newval == oldval) - break; - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval, - oldval); - if (__builtin_expect (curval == oldval, 1)) - break; - - /* Prepare the next round. */ - oldval = curval; - } - - /* We cannot return when we are being canceled. Upon return the - thread might be things which would have to be undone. The - following loop should loop until the cancellation signal is - delivered. */ - while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK)) - == CANCELING_BITMASK, 0)) - { - lll_futex_wait (&self->cancelhandling, newval, LLL_PRIVATE); - newval = THREAD_GETMEM (self, cancelhandling); - } -} +#define __pthread_enable_asynccancel __libc_enable_asynccancel +#define __pthread_disable_asynccancel __libc_disable_asynccancel +#include void @@ -125,5 +31,3 @@ __libc_cleanup_routine (struct __pthread_cleanup_frame *f) if (f->__do_it) f->__cancel_routine (f->__cancel_arg); } - -#endif diff --git a/nptl/sysdeps/pthread/librt-cancellation.c b/nptl/sysdeps/pthread/librt-cancellation.c index 753a2d831e..d9f7ad9ea3 100644 --- a/nptl/sysdeps/pthread/librt-cancellation.c +++ b/nptl/sysdeps/pthread/librt-cancellation.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -17,92 +17,9 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include -#include -#include #include "pthreadP.h" -#include "atomic.h" -#ifdef IS_IN_librt -/* The next two functions are similar to pthread_setcanceltype() but - more specialized for the use in the cancelable functions like write(). - They do not need to check parameters etc. */ -int -attribute_hidden -__librt_enable_asynccancel (void) -{ - struct pthread *self = THREAD_SELF; - int oldval = THREAD_GETMEM (self, cancelhandling); - - while (1) - { - int newval = oldval | CANCELTYPE_BITMASK; - - if (__builtin_expect ((oldval & CANCELED_BITMASK) != 0, 0)) - { - /* If we are already exiting or if PTHREAD_CANCEL_DISABLED, - stop right here. */ - if ((oldval & (EXITING_BITMASK | CANCELSTATE_BITMASK)) != 0) - break; - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, - newval, oldval); - if (__builtin_expect (curval != oldval, 0)) - { - /* Somebody else modified the word, try again. */ - oldval = curval; - continue; - } - - THREAD_SETMEM (self, result, PTHREAD_CANCELED); - - __do_cancel (); - - /* NOTREACHED */ - } - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval, - oldval); - if (__builtin_expect (curval == oldval, 1)) - break; - - /* Prepare the next round. */ - oldval = curval; - } - - return oldval; -} - - -void -internal_function attribute_hidden -__librt_disable_asynccancel (int oldtype) -{ - /* If asynchronous cancellation was enabled before we do not have - anything to do. */ - if (oldtype & CANCELTYPE_BITMASK) - return; - - struct pthread *self = THREAD_SELF; - int oldval = THREAD_GETMEM (self, cancelhandling); - - while (1) - { - int newval = oldval & ~CANCELTYPE_BITMASK; - - if (newval == oldval) - break; - - int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval, - oldval); - if (__builtin_expect (curval == oldval, 1)) - break; - - /* Prepare the next round. */ - oldval = curval; - } -} - - -#endif +#define __pthread_enable_asynccancel __librt_enable_asynccancel +#define __pthread_disable_asynccancel __librt_disable_asynccancel +#include From e20c4ef0ef9075f80ca560f6bdd5ed3229673067 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 May 2009 15:04:27 -0700 Subject: [PATCH 31/76] libc-cancellation.c cleanup. The unrelated function __libc_cleanup_routine should not be in this file. Move it into its own file. --- nptl/ChangeLog | 4 ++++ nptl/Makefile | 6 +++--- nptl/libc-cancellation.c | 8 -------- nptl/libc-cleanup.c | 28 ++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 nptl/libc-cleanup.c diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 23083611b4..d83b46125c 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,9 @@ 2009-05-16 Ulrich Drepper + * libc-cancellation.c: Move __libc_cleanup_routine to... + * libc-cleanup.c: ...here. New file. + * Makefile (routines): Add libc-cleanup. + * cancellation.c (__pthread_disable_asynccancel): Remove unnecessary test. * libc-cancellation.c: Use - - -void -__libc_cleanup_routine (struct __pthread_cleanup_frame *f) -{ - if (f->__do_it) - f->__cancel_routine (f->__cancel_arg); -} diff --git a/nptl/libc-cleanup.c b/nptl/libc-cleanup.c new file mode 100644 index 0000000000..0256d09563 --- /dev/null +++ b/nptl/libc-cleanup.c @@ -0,0 +1,28 @@ +/* Copyright (C) 2002, 2003, 2005, 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include "pthreadP.h" + + +void +__libc_cleanup_routine (struct __pthread_cleanup_frame *f) +{ + if (f->__do_it) + f->__cancel_routine (f->__cancel_arg); +} From 5078fff6c4bc1c71c5d558ff7ec4775aa48b0c11 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 18 May 2009 10:19:50 -0700 Subject: [PATCH 32/76] Fix forced loop termination in nscd database lookup. There are two issues with the forced loop exit in the nscd lookup: 1. the estimate of the entry size isn't pessimistic enough for all databases, resulting potentially is too early exits 2. the combination of 64-bit process and 32-bit nscd would lead to rejecting valid records in the database. --- ChangeLog | 8 ++++++++ nscd/nscd_helper.c | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 04c04bab3b..dfe26cfbb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-05-18 Jakub Jelinek + Ulrich Drepper + + * nscd/nscd_helper.c (MINIMUM_HASHENTRY_SIZE): Define. + (__nscd_cache_search): Assume each entry in the + hash chain needs one hashentry and half of datahead. Use + MINIMUM_HASHENTRY_SIZE instead of sizeof(hashentry). + 2009-05-16 Ulrich Drepper * posix/sys/wait.h: Fix typos. Pretty printing. diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c index c09f00859e..fe63f9a7fe 100644 --- a/nscd/nscd_helper.c +++ b/nscd/nscd_helper.c @@ -468,6 +468,15 @@ __nscd_get_map_ref (request_type type, const char *name, } +/* Using sizeof (hashentry) is not always correct to determine the size of + the data structure as found in the nscd cache. The program could be + a 64-bit process and nscd could be a 32-bit process. In this case + sizeof (hashentry) would overestimate the size. The following is + the minimum size of such an entry, good enough for our tests here. */ +#define MINIMUM_HASHENTRY_SIZE \ + (offsetof (struct hashentry, dellist) + sizeof (int32_t)) + + /* Don't return const struct datahead *, as eventhough the record is normally constant, it can change arbitrarily during nscd garbage collection. */ @@ -481,10 +490,11 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, ref_t trail = mapped->head->array[hash]; trail = atomic_forced_read (trail); ref_t work = trail; - size_t loop_cnt = datasize / (offsetof (struct datahead, data) + datalen); + size_t loop_cnt = datasize / (MINIMUM_HASHENTRY_SIZE + + offsetof (struct datahead, data) / 2); int tick = 0; - while (work != ENDREF && work + sizeof (struct hashentry) <= datasize) + while (work != ENDREF && work + MINIMUM_HASHENTRY_SIZE <= datasize) { struct hashentry *here = (struct hashentry *) (mapped->data + work); ref_t here_key, here_packet; @@ -541,7 +551,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen, return NULL; #endif - if (trail + sizeof (struct hashentry) > datasize) + if (trail + MINIMUM_HASHENTRY_SIZE > datasize) return NULL; trail = atomic_forced_read (trailelem->next); From 04733592f8e83acd46a505b81fbfebc3ff70a7bc Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Mon, 18 May 2009 15:44:09 -0700 Subject: [PATCH 33/76] Add ____longjmp_chk for SH. Following the previous changes for x86 and x86-64. --- ChangeLog | 6 ++++ sysdeps/sh/____longjmp_chk.S | 70 ++++++++++++++++++++++++++++++++++++ sysdeps/sh/sh3/__longjmp.S | 9 ++++- sysdeps/sh/sh4/__longjmp.S | 7 ++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 sysdeps/sh/____longjmp_chk.S diff --git a/ChangeLog b/ChangeLog index dfe26cfbb1..d831dd540b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-18 Kaz Kojima + + * sysdeps/sh/____longjmp_chk.S: New file. + * sysdeps/sh/sh3/__longjmp.S: If CHECK_SP is defined, use it. + * sysdeps/sh/sh4/__longjmp.S: Likewise. + 2009-05-18 Jakub Jelinek Ulrich Drepper diff --git a/sysdeps/sh/____longjmp_chk.S b/sysdeps/sh/____longjmp_chk.S new file mode 100644 index 0000000000..2ff4f586ef --- /dev/null +++ b/sysdeps/sh/____longjmp_chk.S @@ -0,0 +1,70 @@ +/* Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + + .section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + .text + +#define __longjmp ____longjmp_chk + +#ifdef PIC +# define CALL_FAIL \ + mov.l .Lfail, r1; \ + mov.l .Lstr, r4; \ + mova .Lgot, r0; \ + mov.l .Lgot, r12; \ + add r0, r12; \ + bsrf r1; \ + add r12, r4; \ +.Lfail0: \ + bra 0f; \ + nop; \ + .align 2; \ +.Lgot: \ + .long _GLOBAL_OFFSET_TABLE_; \ +.Lstr: \ + .long longjmp_msg@GOTOFF; \ +.Lfail: \ + .long __GI___fortify_fail@PLT-(.Lfail0-.); \ +0: +#else +# define CALL_FAIL \ + mov.l .Lfail, r1; \ + mov.l .Lstr, r4; \ + jsr @r1; \ + nop; \ + bra 0f; \ + nop; \ + .align 2; \ +.Lstr: \ + .long longjmp_msg; \ +.Lfail: \ + .long __fortify_fail; \ +0: +#endif + +#define CHECK_SP(reg) \ + cmp/hs r15, reg; \ + bt .Lok; \ + CALL_FAIL \ +.Lok: + +#include <__longjmp.S> diff --git a/sysdeps/sh/sh3/__longjmp.S b/sysdeps/sh/sh3/__longjmp.S index c6d8a3214c..8c84aff9b4 100644 --- a/sysdeps/sh/sh3/__longjmp.S +++ b/sysdeps/sh/sh3/__longjmp.S @@ -1,5 +1,5 @@ /* longjmp for SH. - Copyright (C) 1999, 2000, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2005, 2006, 2009 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 @@ -42,6 +42,9 @@ ENTRY (__longjmp) mov r2, r14 mov.l @r4+, r2 PTR_DEMANGLE2 (r2, r1) +# ifdef CHECK_SP + CHECK_SP (r2) +# endif mov r2, r15 mov.l @r4+, r2 PTR_DEMANGLE2 (r2, r1) @@ -49,6 +52,10 @@ ENTRY (__longjmp) mov #0, r1 #else mov.l @r4+, r14 +# ifdef CHECK_SP + mov.l @r4, r2 + CHECK_SP (r2) +# endif mov.l @r4+, r15 lds.l @r4+, pr #endif diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S index 2fd137bcba..f2e4b7535a 100644 --- a/sysdeps/sh/sh4/__longjmp.S +++ b/sysdeps/sh/sh4/__longjmp.S @@ -42,6 +42,9 @@ ENTRY (__longjmp) mov r2, r14 mov.l @r4+, r2 PTR_DEMANGLE2 (r2, r1) +# ifdef CHECK_SP + CHECK_SP (r2) +# endif mov r2, r15 mov.l @r4+, r2 PTR_DEMANGLE2 (r2, r1) @@ -49,6 +52,10 @@ ENTRY (__longjmp) mov #0, r1 #else mov.l @r4+, r14 +# ifdef CHECK_SP + mov.l @r4, r2 + CHECK_SP (r2) +# endif mov.l @r4+, r15 lds.l @r4+, pr #endif From d4ab2f2a30973a87a6d313ae8f7a466385662ff2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 20 May 2009 07:12:32 -0700 Subject: [PATCH 34/76] Danish translation update from translation team. --- ChangeLog | 4 + po/da.po | 344 +++++++++++++++++++++++++++--------------------------- 2 files changed, 176 insertions(+), 172 deletions(-) diff --git a/ChangeLog b/ChangeLog index d831dd540b..511fa81642 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-05-20 Ulrich Drepper + + * po/da.po: Update from translation team. + 2009-05-18 Kaz Kojima * sysdeps/sh/____longjmp_chk.S: New file. diff --git a/po/da.po b/po/da.po index 0862d58137..e823bfcc6b 100644 --- a/po/da.po +++ b/po/da.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: libc-2.9.90\n" "POT-Creation-Date: 2009-02-06 12:40-0800\n" -"PO-Revision-Date: 2009-05-07 21:37+0200\n" +"PO-Revision-Date: 2009-05-20 11:37+0200\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" @@ -190,7 +190,7 @@ msgstr "kan ikke #: catgets/gencat.c:417 catgets/gencat.c:494 msgid "illegal set number" -msgstr "ulovligt sæt-nummer" +msgstr "ugyldigt sæt-nummer" #: catgets/gencat.c:444 msgid "duplicate set definition" @@ -241,7 +241,7 @@ msgstr "kan ikke #: catgets/gencat.c:1195 locale/programs/linereader.c:560 msgid "invalid escape sequence" -msgstr "ugyldig nudvigetegnsekvens" +msgstr "ugyldig undvigetegnsekvens" #: catgets/gencat.c:1217 msgid "unterminated message" @@ -860,7 +860,7 @@ msgstr "Kan ikke #: elf/ldconfig.c:1115 #, c-format msgid "%s:%u: bad syntax in hwcap line" -msgstr "%s:%u: ugyldig syntaks på hwcap-linje" +msgstr "%s:%u: dårlig syntaks på hwcap-linje" #: elf/ldconfig.c:1121 #, c-format @@ -1149,7 +1149,7 @@ msgstr "kan ikke indl #: elf/sprof.c:784 #, c-format msgid "while stat'ing profiling data file" -msgstr "under stat() af profileringsdatafil" +msgstr "ved 'stat' af profileringsdatafil" #: elf/sprof.c:792 #, c-format @@ -1194,7 +1194,7 @@ msgstr "fejl ved lukning af inddata '%s'" #: iconv/iconv_charmap.c:462 #, c-format msgid "illegal input sequence at position %Zd" -msgstr "ulovlig inddatasekvens ved position %Zd" +msgstr "ugyldig inddatasekvens ved position %Zd" #: iconv/iconv_charmap.c:481 iconv/iconv_prog.c:537 #, c-format @@ -1298,12 +1298,12 @@ msgstr "konvertering stoppet p #: iconv/iconv_prog.c:533 #, c-format msgid "illegal input sequence at position %ld" -msgstr "ulovlig inddatasekvens ved position %ld" +msgstr "ugyldig inddatasekvens ved position %ld" #: iconv/iconv_prog.c:541 #, c-format msgid "internal error (illegal descriptor)" -msgstr "intern fejl (ulovlig deskriptor)" +msgstr "intern fejl (ugyldig deskriptor)" #: iconv/iconv_prog.c:544 #, c-format @@ -1490,7 +1490,7 @@ msgstr "ugyldig definition" #: locale/programs/charmap.c:375 locale/programs/locfile.c:126 #: locale/programs/locfile.c:153 locale/programs/repertoire.c:175 msgid "bad argument" -msgstr "ugyldigt argument" +msgstr "dårligt argument" #: locale/programs/charmap.c:403 #, c-format @@ -1610,7 +1610,7 @@ msgstr "heksadecimalt interval-format b #: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 #, c-format msgid "<%s> and <%s> are invalid names for range" -msgstr "<%s> og <%s> er ulovlige navne for tegnområde" +msgstr "<%s> og <%s> er ugyldige navne for tegnområde" #: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456 msgid "upper limit in range is smaller than lower limit" @@ -1651,7 +1651,7 @@ msgstr "%s: felt '%s' ikke defineret" #: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117 #, c-format msgid "%s: field `%s' must not be empty" -msgstr "%s: felt '%s' skal være tomt" +msgstr "%s: felt '%s' må ikke være tomt" #: locale/programs/ld-address.c:170 #, c-format @@ -1677,7 +1677,7 @@ msgstr "%s: sprog-forkortelsen '%s' ikke defineret" #: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341 #, c-format msgid "%s: `%s' value does not match `%s' value" -msgstr "%s: '%s' værdi er ikke sammenlignelig med '%s' værdi" +msgstr "%s: '%s' værdi passer ikke overens med '%s' værdi" #: locale/programs/ld-address.c:314 #, c-format @@ -1776,7 +1776,7 @@ msgstr "%s: ikke nok sorteringsregler" #: locale/programs/ld-collate.c:780 #, c-format msgid "%s: empty weight string not allowed" -msgstr "%s: tomt vægt-streng ikke tilladt" +msgstr "%s: tom vægt-streng ikke tilladt" #: locale/programs/ld-collate.c:875 #, c-format @@ -1811,7 +1811,7 @@ msgstr "%s: bytesekvensen af det f #: locale/programs/ld-collate.c:1295 #, c-format msgid "%s: symbolic range ellipsis must not directly follow `order_start'" -msgstr "%s: symbolsk interval-ellipse må ikke komme umiddelbart efter 'order_end'" +msgstr "%s: symbolsk interval-ellipse må ikke komme umiddelbart efter 'order_start'" #: locale/programs/ld-collate.c:1299 #, c-format @@ -1836,7 +1836,7 @@ msgstr "%s: '%s' skal v #: locale/programs/ld-collate.c:1573 #, c-format msgid "%s: `position' must be used for a specific level in all sections or none" -msgstr "%s: 'position' skal bruges på det samme niveau i alle sektioner" +msgstr "%s: 'position' skal bruges på det samme niveau i alle sektioner, ellers ingen" #: locale/programs/ld-collate.c:1598 #, c-format @@ -1846,7 +1846,7 @@ msgstr "symbol '%s' ikke defineret" #: locale/programs/ld-collate.c:1674 locale/programs/ld-collate.c:1780 #, c-format msgid "symbol `%s' has the same encoding as" -msgstr "symbol '%s' har den samme kodning som " +msgstr "symbol '%s' har den samme kodning som" #: locale/programs/ld-collate.c:1678 locale/programs/ld-collate.c:1784 #, c-format @@ -1876,12 +1876,12 @@ msgstr "%s: Mere end #: locale/programs/ld-collate.c:2852 #, c-format msgid "%s: duplicate definition of `%s'" -msgstr "%s: duplikeret definition af '%s'" +msgstr "%s: duplikér definition af '%s'" #: locale/programs/ld-collate.c:2888 #, c-format msgid "%s: duplicate declaration of section `%s'" -msgstr "%s: duplikeret definition af sektion '%s'" +msgstr "%s: duplikér definition af sektion '%s'" #: locale/programs/ld-collate.c:3024 #, c-format @@ -1910,7 +1910,7 @@ msgstr "fejl under inds #: locale/programs/ld-collate.c:3221 #, c-format msgid "duplicate definition of script `%s'" -msgstr "duplikeret definition af skript '%s'" +msgstr "duplikér definition af skript '%s'" #: locale/programs/ld-collate.c:3269 #, c-format @@ -1920,17 +1920,17 @@ msgstr "%s: ukendt sektionsnavn '%.*s'" #: locale/programs/ld-collate.c:3298 #, c-format msgid "%s: multiple order definitions for section `%s'" -msgstr "%s: duplikerede definitioner af orden for sektion '%s'" +msgstr "%s: flere definitioner af orden for sektion '%s'" #: locale/programs/ld-collate.c:3326 #, c-format msgid "%s: invalid number of sorting rules" -msgstr "%s: ulovligt antal sorteringsregler" +msgstr "%s: ugyldigt antal sorteringsregler" #: locale/programs/ld-collate.c:3353 #, c-format msgid "%s: multiple order definitions for unnamed section" -msgstr "%s: duplikerede definitioner af orden for unavngiven sektion" +msgstr "%s: flere definitioner af orden for unavngiven sektion" #: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537 #: locale/programs/ld-collate.c:3900 @@ -1966,7 +1966,7 @@ msgstr "%s: sektion '%.*s' ukendt" #: locale/programs/ld-collate.c:3650 #, c-format msgid "%s: bad symbol <%.*s>" -msgstr "%s: ugyldigt symbol: <%.*s>" +msgstr "%s: dårligt symbol: <%.*s>" #: locale/programs/ld-collate.c:3846 #, c-format @@ -2146,7 +2146,7 @@ msgstr "%s: 'translit_start'-sektionen slutter ikke med 'translit_end'" #: locale/programs/ld-ctype.c:2863 #, c-format msgid "%s: duplicate `default_missing' definition" -msgstr "%s: duplikeret definition af 'default_missing'" +msgstr "%s: duplikér definition af 'default_missing'" #: locale/programs/ld-ctype.c:2868 msgid "previous definition was here" @@ -2214,7 +2214,7 @@ msgstr "%s: ingen identifikation for kategori '%s'" #: locale/programs/ld-identification.c:435 #, c-format msgid "%s: duplicate category version definition" -msgstr "%s: duplikeret definition af kategoriversion" +msgstr "%s: duplikér definition af kategoriversion" #: locale/programs/ld-measurement.c:113 #, c-format @@ -2230,7 +2230,7 @@ msgstr "%s: felt '%s' udefineret" #: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118 #, c-format msgid "%s: value for field `%s' must not be an empty string" -msgstr "%s: værdien på felt '%s' må ikke være en tom streng" +msgstr "%s: værdien for felt '%s' må ikke være en tom streng" #: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171 #, c-format @@ -2240,12 +2240,12 @@ msgstr "%s: intet korrekt regul #: locale/programs/ld-monetary.c:224 #, c-format msgid "%s: value of field `int_curr_symbol' has wrong length" -msgstr "%s: værdien for feltet 'int_curr_symbol' har forkert længde" +msgstr "%s: værdien for felt 'int_curr_symbol' har forkert længde" #: locale/programs/ld-monetary.c:237 #, c-format msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217" -msgstr "%s: værdien for feltet 'int_curr_symbol' svarer ikke til et gyldigt navn i ISO 4217" +msgstr "%s: værdien for felt 'int_curr_symbol' svarer ikke til et gyldigt navn i ISO 4217" #: locale/programs/ld-monetary.c:285 locale/programs/ld-monetary.c:315 #, c-format @@ -2275,7 +2275,7 @@ msgstr "vekselkurs-v #: locale/programs/ld-telephone.c:149 #, c-format msgid "%s: invalid escape sequence in field `%s'" -msgstr "%s: ulovlig undvigetegnsekvens i felt '%s'" +msgstr "%s: ugyldig undvigetegnsekvens i felt '%s'" #: locale/programs/ld-time.c:247 #, c-format @@ -2290,7 +2290,7 @@ msgstr "%s: retningsflag i streng %Zd i 'era'-felt er ikke et enkelt tegn" #: locale/programs/ld-time.c:271 #, c-format msgid "%s: invalid number for offset in string %Zd in `era' field" -msgstr "%s: ulovligt tal for tillægsværdi i streng %Zd i 'era'-felt" +msgstr "%s: ugyldigt tal for tillægsværdi i streng %Zd i 'era'-felt" #: locale/programs/ld-time.c:279 #, c-format @@ -2300,7 +2300,7 @@ msgstr "%s: snavs i slutningen af till #: locale/programs/ld-time.c:330 #, c-format msgid "%s: invalid starting date in string %Zd in `era' field" -msgstr "%s: ulovlig startdato i streng %Zd i 'era'-felt" +msgstr "%s: ugyldig startdato i streng %Zd i 'era'-felt" #: locale/programs/ld-time.c:339 #, c-format @@ -2315,7 +2315,7 @@ msgstr "%s: startdato er ugyldig i streng %Zd i 'era'-felt" #: locale/programs/ld-time.c:407 locale/programs/ld-time.c:435 #, c-format msgid "%s: invalid stopping date in string %Zd in `era' field" -msgstr "%s: ulovlig slutdato i streng %Zd i 'era'-felt" +msgstr "%s: ugyldig slutdato i streng %Zd i 'era'-felt" #: locale/programs/ld-time.c:416 #, c-format @@ -2375,7 +2375,7 @@ msgstr "uafsluttet symbolsk navn" #: locale/programs/linereader.c:623 msgid "illegal escape sequence at end of string" -msgstr "ulovlig undvigetegnsekvens ved slutningen af streng" +msgstr "ugyldig undvigetegnsekvens ved slutningen af streng" #: locale/programs/linereader.c:627 locale/programs/linereader.c:855 msgid "unterminated string" @@ -2393,7 +2393,7 @@ msgstr "symbol '%.*s' ikke i tegntabel" #: locale/programs/linereader.c:837 #, c-format msgid "symbol `%.*s' not in repertoire map" -msgstr "symbol '%.*s' repertoiretabel" +msgstr "symbol '%.*s' ikke i repertoiretabel" #: locale/programs/locale.c:74 msgid "System information:" @@ -2401,23 +2401,23 @@ msgstr "Systeminformation:" #: locale/programs/locale.c:76 msgid "Write names of available locales" -msgstr "Skriv navnene til tilgængelige lokaler" +msgstr "Skriv navnene på tilgængelige lokaler" #: locale/programs/locale.c:78 msgid "Write names of available charmaps" -msgstr "Skriv navnene til tilgængelige tegntabel" +msgstr "Skriv navnene på tilgængelige tegntabeller" #: locale/programs/locale.c:79 msgid "Modify output format:" -msgstr "Ændre format for uddata:" +msgstr "Ændr format for uddata:" #: locale/programs/locale.c:80 msgid "Write names of selected categories" -msgstr "Skriv navnene til valgte kategorier" +msgstr "Skriv navnene på valgte kategorier" #: locale/programs/locale.c:81 msgid "Write names of selected keywords" -msgstr "Skriv navnene til valgte nøgleord" +msgstr "Skriv navnene på valgte nøgleord" #: locale/programs/locale.c:82 msgid "Print more information" @@ -2438,31 +2438,31 @@ msgstr "" #: locale/programs/locale.c:194 #, c-format msgid "Cannot set LC_CTYPE to default locale" -msgstr "Kan ikke sætte LC_CTYPE til forvalgt locale" +msgstr "Kan ikke sætte LC_CTYPE til forvalgt lokale" #: locale/programs/locale.c:196 #, c-format msgid "Cannot set LC_MESSAGES to default locale" -msgstr "Kan ikke sætte LC_MESSAGES til forvalgt locale" +msgstr "Kan ikke sætte LC_MESSAGES til forvalgt lokale" #: locale/programs/locale.c:209 #, c-format msgid "Cannot set LC_COLLATE to default locale" -msgstr "Kan ikke sætte LC_COLLATE til forvalgt locale" +msgstr "Kan ikke sætte LC_COLLATE til forvalgt lokale" #: locale/programs/locale.c:225 #, c-format msgid "Cannot set LC_ALL to default locale" -msgstr "Kan ikke sætte LC_ALL til forvalgt locale" +msgstr "Kan ikke sætte LC_ALL til forvalgt lokale" #: locale/programs/locale.c:518 #, c-format msgid "while preparing output" -msgstr "da uddata blev forberedt" +msgstr "under forberedelse af uddata" #: locale/programs/localedef.c:120 msgid "Input Files:" -msgstr "Indfiler:" +msgstr "Inddatafiler:" #: locale/programs/localedef.c:122 msgid "Symbolic character names defined in FILE" @@ -2470,7 +2470,7 @@ msgstr "Symbolske tegnnavne defineret i FIL" #: locale/programs/localedef.c:123 msgid "Source definitions are found in FILE" -msgstr "Kildedefinitioner ikke fundet i FIL" +msgstr "Kildedefinitioner er fundet i FIL" #: locale/programs/localedef.c:125 msgid "FILE contains mapping from symbolic names to UCS4 values" @@ -2506,11 +2506,11 @@ msgstr "Arkivkontrol:" #: locale/programs/localedef.c:138 msgid "Don't add new data to archive" -msgstr "Tilføj ikke nye data til arkivet" +msgstr "Tilføj ikke nye data til arkiv" #: locale/programs/localedef.c:140 msgid "Add locales named by parameters to archive" -msgstr "Tilføj lokaler navngivet af parametre til arkivet" +msgstr "Tilføj lokaler navngivet af parametre til arkiv" #: locale/programs/localedef.c:141 msgid "Replace existing archive content" @@ -2518,15 +2518,15 @@ msgstr "Erstat eksisterende arkivindhold" #: locale/programs/localedef.c:143 msgid "Remove locales named by parameters from archive" -msgstr "Fjern lokaler navngivet af parametre fra arkivet" +msgstr "Fjern lokaler navngivet af parametre fra arkiv" #: locale/programs/localedef.c:144 msgid "List content of archive" -msgstr "Vis indeholdet i arkivet" +msgstr "Vis indeholdet i arkiv" #: locale/programs/localedef.c:146 msgid "locale.alias file to consult when making archive" -msgstr "locale.alias-fil som skal bruges når arkivet laves" +msgstr "locale.alias-fil som skal bruges når arkiv laves" #: locale/programs/localedef.c:151 msgid "Compile locale specification" @@ -2599,7 +2599,7 @@ msgstr "kan ikke initiere arkivfil" #: locale/programs/locarchive.c:125 locale/programs/locarchive.c:314 #, c-format msgid "cannot resize archive file" -msgstr "kan ikke skifte størrelse på arkivfil" +msgstr "kan ikke ændre størrelse på arkivfil" #: locale/programs/locarchive.c:134 locale/programs/locarchive.c:323 #: locale/programs/locarchive.c:527 @@ -2615,7 +2615,7 @@ msgstr "kunne ikke oprette nyt lokalearkiv" #: locale/programs/locarchive.c:168 #, c-format msgid "cannot change mode of new locale archive" -msgstr "kan ikke ændre adgangtilstand på nyt lokalearkiv" +msgstr "kan ikke ændre tilstand på nyt lokalearkiv" #: locale/programs/locarchive.c:255 #, c-format @@ -2702,7 +2702,7 @@ msgstr "kan ikke #: locale/programs/locarchive.c:1233 #, c-format msgid "incomplete set of locale files in \"%s\"" -msgstr "ufuldstændig opsætning af lokalefiler i \"%s\"" +msgstr "ufuldstændigt sæt af lokalefiler i \"%s\"" #: locale/programs/locarchive.c:1297 #, c-format @@ -2712,7 +2712,7 @@ msgstr "kan ikke l #: locale/programs/locarchive.c:1367 #, c-format msgid "locale \"%s\" not in archive" -msgstr "lokale \"%s\" findes ikke i arkivet" +msgstr "lokale \"%s\" findes ikke i arkiv" #: locale/programs/locfile.c:132 #, c-format @@ -2721,7 +2721,7 @@ msgstr "argument til '%s' skal v #: locale/programs/locfile.c:252 msgid "syntax error: not inside a locale definition section" -msgstr "syntaksfejl: ikke inde i en lokaledefinition" +msgstr "syntaksfejl: ikke inde i en lokaledefinitionssektion" #: locale/programs/locfile.c:626 #, c-format @@ -2748,7 +2748,7 @@ msgstr "lokale-navn b #: locale/programs/locfile.c:805 msgid "no other keyword shall be specified when `copy' is used" -msgstr "ingen andre nøgleord må angives når 'copy' bruges" +msgstr "ingen andre nøgleord skal angives når 'copy' bruges" #: locale/programs/locfile.c:819 #, c-format @@ -2807,11 +2807,11 @@ msgstr "hukommelsen er konsistent, biblioteket er fejlbeh #: malloc/mcheck.c:333 msgid "memory clobbered before allocated block\n" -msgstr "området foran tildelt hukommelsesblok snavset til\n" +msgstr "hukommelse før tildelt blok er snavset til\n" #: malloc/mcheck.c:336 msgid "memory clobbered past end of allocated block\n" -msgstr "området efter tildelt hukommelsesblok snavset til\n" +msgstr "hukommelse efter tildelt blok er snavset til\n" #: malloc/mcheck.c:339 msgid "block freed twice\n" @@ -2889,8 +2889,8 @@ msgid "" " PROGRAM [PROGRAMOPTION]..." msgstr "" "Syntaks: memusage [--data=FIL] [--progname=NAVN] [--png=FIL] [--unbuffered]\n" -" [--buffer=ANTAL] [--no-timer] [--time-based] [--total]\n" -" [--title=STRENG] [--x-size=ANTAL] [--y-size=ANTAL]\n" +" [--buffer=STØRRELSE] [--no-timer] [--time-based] [--total]\n" +" [--title=STRENG] [--x-size=STØRRELSE] [--y-size=STØRRELSE]\n" " PROGRAM [PROGRAMFLAG]..." #: malloc/memusage.sh:193 @@ -2915,7 +2915,7 @@ msgstr "Overskriftsstreng brugt i uddatagrafik" #: malloc/memusagestat.c:59 msgid "Generate output linear to time (default is linear to number of function calls)" -msgstr "Generér uddata efter tid (standard er efter antal af funktionskald)" +msgstr "Generér uddata efter lineær tid (standard er efter antal af funktionskald)" #: malloc/memusagestat.c:61 msgid "Also draw graph for total memory consumption" @@ -3033,7 +3033,7 @@ msgstr "Ikke fundet, ikke noget s #: nis/nis_error.h:22 msgid "Name/entry isn't unique" -msgstr "Navn/indtastninger er ikke unikt" +msgstr "Navn/indtastning er ikke unikt" #: nis/nis_error.h:23 msgid "Modification failed" @@ -3049,7 +3049,7 @@ msgstr "Indgangs-/tabel-type stemmer ikke overens" #: nis/nis_error.h:26 msgid "Link points to illegal name" -msgstr "Lænke peger til ulovligt navn" +msgstr "Lænke peger til ugyldigt navn" #: nis/nis_error.h:27 msgid "Partial success" @@ -3093,7 +3093,7 @@ msgstr " #: nis/nis_error.h:37 msgid "Query illegal for named table" -msgstr "Spørgsmål ulovligt for given tabel" +msgstr "Spørgsmål ugyldigt for given tabel" #: nis/nis_error.h:38 msgid "Attempt to remove a non-empty table" @@ -3129,7 +3129,7 @@ msgstr "Ikke i stand til at autentificere NIS+-klient" #: nis/nis_error.h:46 msgid "No file space on server" -msgstr "Ikke mere plads på enheden" +msgstr "Ikke mere plads på server" #: nis/nis_error.h:47 msgid "Unable to create process on server" @@ -3142,7 +3142,7 @@ msgstr "Hovedserver optaget, fuld lagring udsat." #: nis/nis_local_names.c:122 #, c-format msgid "LOCAL entry for UID %d in directory %s not unique\n" -msgstr "LOKALT indtastning for UID %d i katalog %s er ikke unikt\n" +msgstr "LOKAL indtastning for UID %d i katalog %s er ikke unikt\n" #: nis/nis_print.c:51 msgid "UNKNOWN" @@ -3154,7 +3154,7 @@ msgstr "FALSKT OBJEKT\n" #: nis/nis_print.c:112 msgid "NO OBJECT\n" -msgstr "IKKE NOGET OBJEKT\n" +msgstr "INTET OBJEKT\n" #: nis/nis_print.c:115 msgid "DIRECTORY\n" @@ -3170,7 +3170,7 @@ msgstr "TABEL\n" #: nis/nis_print.c:124 msgid "ENTRY\n" -msgstr "INDGANG\n" +msgstr "POST\n" #: nis/nis_print.c:127 msgid "LINK\n" @@ -3402,7 +3402,7 @@ msgstr "Objekt #%d:\n" #: nis/nis_print_group_entry.c:117 #, c-format msgid "Group entry for \"%s.%s\" group:\n" -msgstr "Gruppeindtastninger for '%s.%s'-gruppen:\n" +msgstr "Gruppeindtastning for '%s.%s'-gruppen:\n" #: nis/nis_print_group_entry.c:125 msgid " Explicit members:\n" @@ -3456,7 +3456,7 @@ msgstr " Ingen rekursive ikke-medlemmer\n" #: nis/nss_nisplus/nisplus-publickey.c:183 #, c-format msgid "DES entry for netname %s not unique\n" -msgstr "DES-indtastninger for netnavn %s er ikke unikt\n" +msgstr "DES-indtastning for netnavn %s er ikke unikt\n" #: nis/nss_nisplus/nisplus-publickey.c:220 #, c-format @@ -3474,7 +3474,7 @@ msgstr "netname2user: (nis+-opslag): %s\n" #: nis/nss_nisplus/nisplus-publickey.c:321 #, c-format msgid "netname2user: DES entry for %s in directory %s not unique" -msgstr "netname2user: DES-indtastninger for %s i katalog %s er ikke unikt" +msgstr "netname2user: DES-indtastning for %s i katalog %s er ikke unikt" #: nis/nss_nisplus/nisplus-publickey.c:339 #, c-format @@ -3484,7 +3484,7 @@ msgstr "netname2user: navn p #: nis/nss_nisplus/nisplus-publickey.c:395 #, c-format msgid "netname2user: LOCAL entry for %s in directory %s not unique" -msgstr "netname2user: LOKAL-indtastninger for %s i katalog %s er ikke unikt" +msgstr "netname2user: LOKAL-indtastning for %s i katalog %s er ikke unikt" #: nis/nss_nisplus/nisplus-publickey.c:402 msgid "netname2user: should not have uid 0" @@ -3501,7 +3501,7 @@ msgstr "RPC-fejl ved NIS-operation" # nis/ypclnt.c:637+ #: nis/ypclnt.c:842 msgid "Can't bind to server which serves this domain" -msgstr "Kan ikke koble til server for dette domæne" +msgstr "Kan ikke forbinde til server for dette domæne" #: nis/ypclnt.c:845 msgid "No such map in server's domain" @@ -3521,7 +3521,7 @@ msgstr "Tildelingsfejl for lokal ressource" #: nis/ypclnt.c:857 msgid "No more records in map database" -msgstr "Ikke flere poster i tabellen" +msgstr "Ikke flere poster i tabel-database" #: nis/ypclnt.c:860 msgid "Can't communicate with portmapper" @@ -3541,7 +3541,7 @@ msgstr "Lokalt dom #: nis/ypclnt.c:872 msgid "NIS map database is bad" -msgstr "NIS' tabel-database er korrupt" +msgstr "NIS' tabel-database er dårlig" #: nis/ypclnt.c:875 msgid "NIS client/server version mismatch - can't supply service" @@ -3606,7 +3606,7 @@ msgstr "kan ikke udf #: nscd/cache.c:328 #, c-format msgid "pruning %s cache; time %ld" -msgstr "beskærer %s cache; tid %ld" +msgstr "formindsker %s cache; tid %ld" #: nscd/cache.c:357 #, c-format @@ -3616,7 +3616,7 @@ msgstr "overvejer %s-post \"%s\", tidsgr #: nscd/connections.c:570 #, c-format msgid "invalid persistent database file \"%s\": %s" -msgstr "Ugyldig viderelevende databasefil '%s': %s" +msgstr "Ugyldig overlevende databasefil '%s': %s" #: nscd/connections.c:578 msgid "uninitialized header" @@ -3628,7 +3628,7 @@ msgstr "hovedst #: nscd/connections.c:593 msgid "file size does not match" -msgstr "flistørrelse er ikke overensstemmende" +msgstr "filstørrelse er ikke overensstemmende" #: nscd/connections.c:610 msgid "verification failed" @@ -3637,12 +3637,12 @@ msgstr "efterpr #: nscd/connections.c:624 #, c-format msgid "suggested size of table for database %s larger than the persistent database's table" -msgstr "foreslået størrelse på tabellen for database %s er større end den viderelevende databases tabel" +msgstr "foreslået størrelse på tabellen for database %s er større end den overlevende databases tabel" #: nscd/connections.c:635 nscd/connections.c:720 #, c-format msgid "cannot create read-only descriptor for \"%s\"; no mmap" -msgstr "kan ikke oprette læsbar filidentifikator for \"%s\", ingen mmap" +msgstr "kan ikke oprette kun læsbar filidentifikator for \"%s\", ingen mmap" #: nscd/connections.c:651 #, c-format @@ -3657,7 +3657,7 @@ msgstr "database for %s #: nscd/connections.c:706 #, c-format msgid "cannot create %s; no persistent database used" -msgstr "kan ikke oprette %s, ingen viderelevende database brugt" +msgstr "kan ikke oprette %s, ingen overlevende database brugt" #: nscd/connections.c:709 #, c-format @@ -3687,7 +3687,7 @@ msgstr "kan ikke #: nscd/connections.c:930 #, c-format msgid "cannot set socket to close on exec: %s" -msgstr "kan ikke få sokkel til at lukke ved afslutning: %s" +msgstr "kan ikke få sokkel til at lukke ved programstart: %s" #: nscd/connections.c:943 #, c-format @@ -3707,16 +3707,16 @@ msgstr "kan ikke h #: nscd/connections.c:1077 #, c-format msgid "request from %ld not handled due to missing permission" -msgstr "forespørgsel fra %ld ikke behandlet da rettigheder mangles" +msgstr "forespørgsel fra %ld ikke behandlet da rettigheder mangler" #: nscd/connections.c:1082 #, c-format msgid "request from '%s' [%ld] not handled due to missing permission" -msgstr "forespørgsel fra \"%s\" [%ld] ikke behandlet da rettigheder mangles" +msgstr "forespørgsel fra \"%s\" [%ld] ikke behandlet da rettigheder mangler" #: nscd/connections.c:1087 msgid "request not handled due to missing permission" -msgstr "forespørgsel ikke behandlet da rettigheder mangles" +msgstr "forespørgsel ikke behandlet da rettigheder mangler" #: nscd/connections.c:1125 nscd/connections.c:1178 #, c-format @@ -3741,17 +3741,17 @@ msgstr "kan ikke l #: nscd/connections.c:1374 #, c-format msgid "cannot change to old UID: %s; disabling paranoia mode" -msgstr "kan ikke skifte til foregående UID: %s; deaktiverer paranoiatilstand" +msgstr "kan ikke ændre til foregående UID: %s; deaktiverer paranoiatilstand" #: nscd/connections.c:1384 #, c-format msgid "cannot change to old GID: %s; disabling paranoia mode" -msgstr "kan ikke skifte til foregående GID: %s; deaktiverer paranoiatilstand" +msgstr "kan ikke ændre til foregående GID: %s; deaktiverer paranoiatilstand" #: nscd/connections.c:1397 #, c-format msgid "cannot change to old working directory: %s; disabling paranoia mode" -msgstr "kan ikke skifte til foregående arbejdskatalog: %s; deaktiverer paranoiatilstand" +msgstr "kan ikke ændre til foregående arbejdskatalog: %s; deaktiverer paranoiatilstand" #: nscd/connections.c:1429 #, c-format @@ -3761,7 +3761,7 @@ msgstr "genstart mislykkedes: %s; deaktiverer paranoiatilstand" #: nscd/connections.c:1438 #, c-format msgid "cannot change current working directory to \"/\": %s" -msgstr "kan ikke skifte aktuelt arbejdskatalog to \"/\": %s" +msgstr "kan ikke ændre aktuelt arbejdskatalog to \"/\": %s" #: nscd/connections.c:1644 #, c-format @@ -3841,7 +3841,7 @@ msgstr "Har ikke fundet '%s' i gruppe-n #: nscd/grpcache.c:440 nscd/initgrcache.c:80 #, c-format msgid "Reloading \"%s\" in group cache!" -msgstr "Geindlæser '%s' i gruppe-nærbuffer!" +msgstr "Genindlæser '%s' i gruppe-nærbuffer!" #: nscd/grpcache.c:517 #, c-format @@ -3864,7 +3864,7 @@ msgstr "L #: nscd/nscd.c:103 msgid "Do not fork and display messages on the current tty" -msgstr "Udspalt ikke ny proces og vis meddelelser på nuværende tty" +msgstr "Forgren ikke ny proces og vis meddelelser på nuværende tty" #: nscd/nscd.c:104 msgid "NUMBER" @@ -3876,7 +3876,7 @@ msgstr "Start ANTAL tr #: nscd/nscd.c:105 msgid "Shut the server down" -msgstr "Afbryd serveren" +msgstr "Luk serveren ned" #: nscd/nscd.c:106 msgid "Print current configuration statistics" @@ -3925,7 +3925,7 @@ msgstr "kan ikke duplikere program" #: nscd/nscd.c:244 #, c-format msgid "cannot change current working directory to \"/\"" -msgstr "kan ikke skifte aktuelt arbejdskatalog til \"/\"" +msgstr "kan ikke ændre aktuelt arbejdskatalog til \"/\"" #: nscd/nscd.c:252 msgid "Could not create log file" @@ -4048,22 +4048,22 @@ msgstr "" #: nscd/nscd_stat.c:230 #, c-format msgid "%3ud %2uh %2um %2lus server runtime\n" -msgstr "%3ud %2uh %2um %2lus servers kørselstid\n" +msgstr "%3ud %2uh %2um %2lus kørende server\n" #: nscd/nscd_stat.c:233 #, c-format msgid " %2uh %2um %2lus server runtime\n" -msgstr " %2uh %2um %2lus servers kørselstid\n" +msgstr " %2uh %2um %2lus kørende server\n" #: nscd/nscd_stat.c:235 #, c-format msgid " %2um %2lus server runtime\n" -msgstr " %2um %2lus servers kørselstid\n" +msgstr " %2um %2lus kørende server\n" #: nscd/nscd_stat.c:237 #, c-format msgid " %2lus server runtime\n" -msgstr " %2lus servers kørselstid\n" +msgstr " %2lus kørende server\n" #: nscd/nscd_stat.c:239 #, c-format @@ -4111,7 +4111,7 @@ msgstr "" "%s hurtigbuffer (cache):\n" "\n" "%15s hurtigbuffer er aktiveret\n" -"%15s hurtigbuffer viderelever mellem sessioner\n" +"%15s hurtigbuffer overlever mellem sessioner\n" "%15s hurtigbuffer er delt\n" "%15zu foreslået størrelse\n" "%15zu total størrelse af datapulje\n" @@ -4149,11 +4149,11 @@ msgstr "Ugyldig numerisk bruger-id (uid) \"%s\"!" #: nscd/selinux.c:156 #, c-format msgid "Failed opening connection to the audit subsystem: %m" -msgstr "Mislykkedes med at åbne en forbindelse til undersystemet for granskning (audit): %m" +msgstr "Kunne ikke åbne en forbindelse til undersystemet for revision (audit): %m" #: nscd/selinux.c:177 msgid "Failed to set keep-capabilities" -msgstr "Mislykkedes med at sætte \"keep\"-kapabiliteter" +msgstr "Kunne ikke sætte \"keep\"-kapabiliteter" #: nscd/selinux.c:178 nscd/selinux.c:241 #, c-format @@ -4162,7 +4162,7 @@ msgstr "prctl(KEEPCAPS) mislykkedes" #: nscd/selinux.c:192 msgid "Failed to initialize drop of capabilities" -msgstr "Mislykkedes med at initiere fjernelse af kapabiliteter" +msgstr "Kunne ikke initiere fjernelse af kapabiliteter" #: nscd/selinux.c:193 #, c-format @@ -4171,7 +4171,7 @@ msgstr "cap_init mislykkedes" #: nscd/selinux.c:214 nscd/selinux.c:231 msgid "Failed to drop capabilities" -msgstr "Mislykkedes med at fjerne kapabiliteter" +msgstr "Kunne ikke fjerne kapabiliteter" #: nscd/selinux.c:215 nscd/selinux.c:232 #, c-format @@ -4180,16 +4180,16 @@ msgstr "cap_set_proc mislykkedes" #: nscd/selinux.c:240 msgid "Failed to unset keep-capabilities" -msgstr "Mislykkedes med at fjerne \"keep\"-kapabiliteter" +msgstr "Kunne ikke fjerne \"keep\"-kapabiliteter" #: nscd/selinux.c:256 msgid "Failed to determine if kernel supports SELinux" -msgstr "Mislykkedes med at finde ud af om kernen understøtter SELinux" +msgstr "Kunne ikke finde ud af om kernen understøtter SELinux" #: nscd/selinux.c:271 #, c-format msgid "Failed to start AVC thread" -msgstr "Mislykkedes med at starte AVC-tråd" +msgstr "Kunne ikke starte AVC-tråd" #: nscd/selinux.c:293 #, c-format @@ -4219,7 +4219,7 @@ msgstr "Kunne ikke hente \"sid\" fra kontekst" #: nscd/selinux.c:374 msgid "compile-time support for database policy missing" -msgstr "indkompileret understøttelse for databasepolicy mangles" +msgstr "indkompileret understøttelse for databasepolicy mangler" #: nscd/selinux.c:407 #, c-format @@ -4242,7 +4242,7 @@ msgstr "" "%15u postopslag\n" "%15u posttræffere\n" "%15u postmissere\n" -"%15u bortkastede poster\n" +"%15u afviste poster\n" "%15u CAV-opslag\n" "%15u CAV-træffere\n" "%15u CAV-sonderinger\n" @@ -4268,7 +4268,7 @@ msgstr "Tjenestekonfiguration som skal bruges" #: nss/getent.c:62 msgid "Get entries from administrative database." -msgstr "Hent indtastninger fra administrativ database." +msgstr "Hent poster fra administrativ database." #: nss/getent.c:143 nss/getent.c:408 #, c-format @@ -4299,11 +4299,11 @@ msgstr "Skriv ikke meddelelser under opbygning af databasen" #: nss/makedb.c:65 msgid "Print content of database file, one entry a line" -msgstr "Skriv indholdet af en databasefil ud, en indtastning per linje" +msgstr "Skriv indholdet af en databasefil ud, en post per linje" #: nss/makedb.c:70 msgid "Create simple DB database from textual input." -msgstr "Lav en enkel DB-database fra tekst-indput." +msgstr "Lav en enkel DB-database fra tekst-inddata." #: nss/makedb.c:73 msgid "" @@ -4331,7 +4331,7 @@ msgstr "forkert formatteret fil" #: nss/makedb.c:331 msgid "duplicate key" -msgstr "duplikeret nøgle" +msgstr "duplikér nøgle" #: nss/makedb.c:337 #, c-format @@ -4341,12 +4341,12 @@ msgstr "under skrivning til databasefil" #: nss/makedb.c:348 #, c-format msgid "problems while reading `%s'" -msgstr "problem ved læsning af '%s'" +msgstr "problemer ved læsning af '%s'" #: nss/makedb.c:368 nss/makedb.c:385 #, c-format msgid "while reading database" -msgstr "da databasen blev læst" +msgstr "ved læsning af database" #: posix/getconf.c:945 #, c-format @@ -4486,7 +4486,7 @@ msgstr "Ubalanceret \\{" #: posix/regcomp.c:163 msgid "Invalid content of \\{\\}" -msgstr "Ugyldig brug af \\{\\}" +msgstr "Ugyldig indhold af \\{\\}" #: posix/regcomp.c:166 msgid "Invalid range end" @@ -4538,7 +4538,7 @@ msgstr "Ukendt server-fejl" #: resolv/herror.c:72 msgid "No address associated with name" -msgstr "Ingen adresse associeret med navnet" +msgstr "Ingen adresse knyttet til navnet" #: resolv/herror.c:107 msgid "Resolver internal error" @@ -4566,12 +4566,12 @@ msgstr "%s: linje %d: forventede 'on' eller 'off', fandt '%s'\n" #: resolv/res_hconf.c:247 #, c-format msgid "%s: line %d: bad command `%s'\n" -msgstr "%s: linje %d: forkert kommando `%s'\n" +msgstr "%s: linje %d: dårlig kommando `%s'\n" #: resolv/res_hconf.c:282 #, c-format msgid "%s: line %d: ignoring trailing garbage `%s'\n" -msgstr "%s: linje %d: ignorerer efterfølgende fnadder '%s'\n" +msgstr "%s: linje %d: ignorerer efterfølgende snavs '%s'\n" #: stdio-common/psignal.c:51 #, c-format @@ -4633,7 +4633,7 @@ msgstr "RPC: Succes" #: sunrpc/clnt_perr.c:162 msgid "RPC: Can't encode arguments" -msgstr "RPC: Kan ikke kode argumentet" +msgstr "RPC: Kan ikke kode argumenterne" #: sunrpc/clnt_perr.c:166 msgid "RPC: Can't decode result" @@ -4645,7 +4645,7 @@ msgstr "RPC: Kan ikke sende" #: sunrpc/clnt_perr.c:174 msgid "RPC: Unable to receive" -msgstr "RPC: Kan ikke tage imod" +msgstr "RPC: Kan ikke modtage" #: sunrpc/clnt_perr.c:178 msgid "RPC: Timed out" @@ -4677,7 +4677,7 @@ msgstr "RPC: Server kan ikke afkode argumenterne" #: sunrpc/clnt_perr.c:206 msgid "RPC: Remote system error" -msgstr "RPC: Systemfejl hos modtager" +msgstr "RPC: Fjernsystemfejl" #: sunrpc/clnt_perr.c:210 msgid "RPC: Unknown host" @@ -4709,11 +4709,11 @@ msgstr "Autentificering OK" #: sunrpc/clnt_perr.c:333 msgid "Invalid client credential" -msgstr "Ugyldige klientreferencer" +msgstr "Ugyldig klientlegitimation" #: sunrpc/clnt_perr.c:337 msgid "Server rejected credential" -msgstr "Server afviste referencerne" +msgstr "Server afviste legitimation" #: sunrpc/clnt_perr.c:341 msgid "Invalid client verifier" @@ -4765,7 +4765,7 @@ msgstr "Problem med 'polling' ved rundsending" #: sunrpc/pmap_rmt.c:345 msgid "Cannot receive reply to broadcast" -msgstr "Kan ikke tage imod svar på rundsending" +msgstr "Kan ikke modtage svar på rundsending" #: sunrpc/rpc_main.c:290 #, c-format @@ -4804,7 +4804,7 @@ msgstr "%s: C-pr #: sunrpc/rpc_main.c:464 #, c-format msgid "illegal nettype: `%s'\n" -msgstr "ulovlig nettype: '%s'\n" +msgstr "ugyldig nettype: '%s'\n" #: sunrpc/rpc_main.c:1130 #, c-format @@ -4916,7 +4916,7 @@ msgstr "-Dnavn[=v #: sunrpc/rpc_main.c:1475 #, c-format msgid "-h\t\tgenerate header file\n" -msgstr "-h\t\tgenerér hovedfiler\n" +msgstr "-h\t\tgenerér hovedfil\n" #: sunrpc/rpc_main.c:1476 #, c-format @@ -4956,12 +4956,12 @@ msgstr "-M\t\tgener #: sunrpc/rpc_main.c:1483 #, c-format msgid "-n netid\tgenerate server code that supports named netid\n" -msgstr "-n netid\tgenerér serverkode som understøtter navngiven netid\n" +msgstr "-n netid\tgenerér serverkode som understøtter navngivet netid\n" #: sunrpc/rpc_main.c:1484 #, c-format msgid "-N\t\tsupports multiple arguments and call-by-value\n" -msgstr "-N\t\tunderstøtter multiple argumenter og kald-via-værdi\n" +msgstr "-N\t\tunderstøtter flere argumenter og kald-via-værdi\n" #: sunrpc/rpc_main.c:1485 #, c-format @@ -4971,7 +4971,7 @@ msgstr "-o uddatafil\tnavn p #: sunrpc/rpc_main.c:1486 #, c-format msgid "-s nettype\tgenerate server code that supports named nettype\n" -msgstr "-s nettype\t\tgenerér serverkode som understøtter navngiven nettype\n" +msgstr "-s nettype\tgenerér serverkode som understøtter navngiven nettype\n" #: sunrpc/rpc_main.c:1487 #, c-format @@ -5009,7 +5009,7 @@ msgstr "konstant eller identifikator ventet" #: sunrpc/rpc_scan.c:310 msgid "illegal character in file: " -msgstr "ulovligt tegn i fil: " +msgstr "ugyldigt tegn i fil: " #: sunrpc/rpc_scan.c:349 sunrpc/rpc_scan.c:375 msgid "unterminated string constant" @@ -5026,14 +5026,14 @@ msgstr "pr #: sunrpc/rpcinfo.c:254 sunrpc/rpcinfo.c:400 #, c-format msgid "program %lu is not available\n" -msgstr "program %lu er ikke tilgængelig\n" +msgstr "program %lu er ikke tilgængeligt\n" #: sunrpc/rpcinfo.c:281 sunrpc/rpcinfo.c:327 sunrpc/rpcinfo.c:350 #: sunrpc/rpcinfo.c:424 sunrpc/rpcinfo.c:470 sunrpc/rpcinfo.c:493 #: sunrpc/rpcinfo.c:527 #, c-format msgid "program %lu version %lu is not available\n" -msgstr "program %lu version %lu er ikke tilgængelig\n" +msgstr "program %lu version %lu er ikke tilgængeligt\n" #: sunrpc/rpcinfo.c:532 #, c-format @@ -5218,7 +5218,7 @@ msgstr "Afbrudt (SIGABRT)" #: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34 msgid "Floating point exception" -msgstr "Undtagelsestilfælde ved flydendetals-operation" +msgstr "Undtagelsestilfælde ved flydende taloperation" #: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35 msgid "Killed" @@ -5230,7 +5230,7 @@ msgstr "Busfejl" #: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37 msgid "Segmentation fault" -msgstr "Lagersegmentfejl" +msgstr "Segmentfejl" #. TRANS Broken pipe; there is no process reading from the other end of a pipe. #. TRANS Every library function that returns this error code also generates a @@ -5240,11 +5240,11 @@ msgstr "Lagersegmentfejl" #: sysdeps/generic/siglist.h:39 sysdeps/gnu/errlist.c:359 #: sysdeps/unix/siglist.c:39 msgid "Broken pipe" -msgstr "Røret blev brudt" +msgstr "Kanalen blev brudt" #: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40 msgid "Alarm clock" -msgstr "Alarmen gik" +msgstr "Alarmklokke" #: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41 msgid "Terminated" @@ -5312,7 +5312,7 @@ msgstr "Brugerdefineret signal 2" #: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33 msgid "EMT trap" -msgstr "Emulatorfælde" +msgstr "EMT-fælde" #: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38 msgid "Bad system call" @@ -5359,7 +5359,7 @@ msgstr "Afbrudt systemkald" #. TRANS Input/output error; usually used for physical read or write errors. #: sysdeps/gnu/errlist.c:69 msgid "Input/output error" -msgstr "Ind/ud-fejl" +msgstr "Inddata/uddata-fejl" #. TRANS No such device or address. The system tried to use the device #. TRANS represented by a file you specified, and it couldn't find the device. @@ -5404,7 +5404,7 @@ msgstr "Ingen b #. TRANS noticed; it might just hang. @xref{File Locks}, for an example. #: sysdeps/gnu/errlist.c:138 msgid "Resource deadlock avoided" -msgstr "Klarede at undgå vranglås ved tildeling af ressource" +msgstr "Klarede at undgå baglås ved tildeling af ressource" #. TRANS No memory available. The system cannot allocate more virtual memory #. TRANS because its capacity is full. @@ -5628,7 +5628,7 @@ msgstr "Protokollen er ikke tilg #. TRANS @xref{Creating a Socket}. #: sysdeps/gnu/errlist.c:504 msgid "Protocol not supported" -msgstr "Protokollen er ikke tilgængelig" +msgstr "Protokollen er ikke understøttet" #. TRANS The socket type is not supported. #: sysdeps/gnu/errlist.c:513 @@ -5666,7 +5666,7 @@ msgstr "Adressen er allerede i brug" #. TRANS @xref{Socket Addresses}. #: sysdeps/gnu/errlist.c:566 msgid "Cannot assign requested address" -msgstr "Kan ikke benytte den ønskede adresse" +msgstr "Kan ikke tildele den ønskede adresse" #. TRANS A socket operation failed because the network was down. #: sysdeps/gnu/errlist.c:575 @@ -5707,7 +5707,7 @@ msgstr "Ikke mere buffer-plads tilg #. TRANS @xref{Connecting}. #: sysdeps/gnu/errlist.c:635 msgid "Transport endpoint is already connected" -msgstr "Transport-endepunkterne er allerede sammenkoblet" +msgstr "Transport-endepunkt er allerede forbundet" #. TRANS The socket is not connected to anything. You get this error when you #. TRANS try to transmit data over a socket, without first specifying a @@ -5715,7 +5715,7 @@ msgstr "Transport-endepunkterne er allerede sammenkoblet" #. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead. #: sysdeps/gnu/errlist.c:647 msgid "Transport endpoint is not connected" -msgstr "Transport-endepunkterne er ikke sammenkoblet" +msgstr "Transport-endepunkt er ikke forbundet" #. TRANS No default destination address was set for the socket. You get this #. TRANS error when you try to transmit data over a connectionless socket, @@ -5727,7 +5727,7 @@ msgstr "M #. TRANS The socket has already been shut down. #: sysdeps/gnu/errlist.c:667 msgid "Cannot send after transport endpoint shutdown" -msgstr "Kan ikke sende efter at transportendepunktet har koblet ned" +msgstr "Kan ikke sende efter at transportendepunktet er lukket ned" #. TRANS ??? #: sysdeps/gnu/errlist.c:676 @@ -5812,7 +5812,7 @@ msgstr "Er et fjernobjekt" #. TRANS ??? #: sysdeps/gnu/errlist.c:808 msgid "RPC struct is bad" -msgstr "RPC-strukturen er ugyldig" +msgstr "RPC-strukturen er dårlig" #. TRANS ??? #: sysdeps/gnu/errlist.c:817 @@ -5822,7 +5822,7 @@ msgstr "forkert RPC-version" #. TRANS ??? #: sysdeps/gnu/errlist.c:826 msgid "RPC program not available" -msgstr "RPC-programmet er ikke tilgængelig" +msgstr "RPC-programmet er ikke tilgængeligt" #. TRANS ??? #: sysdeps/gnu/errlist.c:835 @@ -5832,7 +5832,7 @@ msgstr "RPC: forkert programversion" #. TRANS ??? #: sysdeps/gnu/errlist.c:844 msgid "RPC bad procedure for program" -msgstr "RPC: ugyldig procedure for program" +msgstr "RPC: dårlig procedure for program" #. TRANS No locks available. This is used by the file locking facilities; see #. TRANS @ref{File Locks}. This error is never generated by the GNU system, but @@ -5973,7 +5973,7 @@ msgstr "Protokolfejl" #: sysdeps/gnu/errlist.c:1081 msgid "Timer expired" -msgstr "Tidsgrænse udløb" +msgstr "Tidstager udløb" #. TRANS Operation canceled; an asynchronous operation was canceled before it #. TRANS completed. @xref{Asynchronous I/O}. When you call @code{aio_cancel}, @@ -5985,7 +5985,7 @@ msgstr "Operationen afbrudt" #: sysdeps/gnu/errlist.c:1101 msgid "Interrupted system call should be restarted" -msgstr "Afbrudt systemkald burde startes om" +msgstr "Afbrudt systemkald bør genstartes" #: sysdeps/gnu/errlist.c:1109 msgid "Channel number out of range" @@ -6045,11 +6045,11 @@ msgstr "Ugyldig plads" #: sysdeps/gnu/errlist.c:1221 msgid "File locking deadlock error" -msgstr "Fillåsning fejlede på grund af vranglås" +msgstr "Fillåsning fejlede på grund af baglås" #: sysdeps/gnu/errlist.c:1229 msgid "Bad font file format" -msgstr "Ugyldigt format på typesnitsfil" +msgstr "Ugyldigt format på skrifttypefil" #: sysdeps/gnu/errlist.c:1237 msgid "Machine is not on the network" @@ -6081,7 +6081,7 @@ msgstr "Navnet er ikke unikt p #: sysdeps/gnu/errlist.c:1293 msgid "File descriptor in bad state" -msgstr "Fildeskriptor i ugyldig tilstand" +msgstr "Fildeskriptor i dårlig tilstand" #: sysdeps/gnu/errlist.c:1301 msgid "Remote address changed" @@ -6089,11 +6089,11 @@ msgstr "Fjernadresse #: sysdeps/gnu/errlist.c:1309 msgid "Can not access a needed shared library" -msgstr "Kan ikke tilgå et nødvendig delt bibliotek" +msgstr "Kan ikke få adgang til et nødvendigt delt bibliotek" #: sysdeps/gnu/errlist.c:1317 msgid "Accessing a corrupted shared library" -msgstr "Aksesserer et skadet delt bibliotek" +msgstr "Får adgang til et skadet delt bibliotek" #: sysdeps/gnu/errlist.c:1325 msgid ".lib section in a.out corrupted" @@ -6109,7 +6109,7 @@ msgstr "Kan ikke eksekvere et delt bibliotek direkte" #: sysdeps/gnu/errlist.c:1349 msgid "Streams pipe error" -msgstr "Strøm-rørfejl" +msgstr "Strøm-kanalfejl" #: sysdeps/gnu/errlist.c:1357 msgid "Structure needs cleaning" @@ -6117,7 +6117,7 @@ msgstr "Strukturen tr #: sysdeps/gnu/errlist.c:1365 msgid "Not a XENIX named type file" -msgstr "Ikke en XENIX navngiven fil" +msgstr "Ikke en XENIX navngiven typefil" #: sysdeps/gnu/errlist.c:1373 msgid "No XENIX semaphores available" @@ -6129,15 +6129,15 @@ msgstr "Er en navngiven filtype" #: sysdeps/gnu/errlist.c:1389 msgid "Remote I/O error" -msgstr "I/O-fejl på fjern maskine" +msgstr "I/O-fejl på fjernmaskine" #: sysdeps/gnu/errlist.c:1397 msgid "No medium found" -msgstr "Medium ikke fundet" +msgstr "Medie ikke fundet" #: sysdeps/gnu/errlist.c:1405 msgid "Wrong medium type" -msgstr "Gal mediatype" +msgstr "Forkert medietype" #: sysdeps/gnu/errlist.c:1413 msgid "Required key not available" @@ -6213,7 +6213,7 @@ msgstr "Systemfejl" #: sysdeps/posix/gai_strerror-strs.h:12 msgid "Processing request in progress" -msgstr "Operationen er under udførelse" +msgstr "Procesforespørgsel er under udførelse" #: sysdeps/posix/gai_strerror-strs.h:13 msgid "Request canceled" @@ -6225,7 +6225,7 @@ msgstr "Foresp #: sysdeps/posix/gai_strerror-strs.h:15 msgid "All requests done" -msgstr "Alle forespørgsler behandlet" +msgstr "Alle forespørgsler udført" #: sysdeps/posix/gai_strerror-strs.h:16 msgid "Interrupted by a signal" @@ -6384,7 +6384,7 @@ msgstr "%s: Kan ikke oprette l #: timezone/zic.c:745 timezone/zic.c:747 msgid "same rule name in multiple files" -msgstr "samme regel i flere filer" +msgstr "samme regelnavn i flere filer" #: timezone/zic.c:788 msgid "unruly zone" @@ -6397,7 +6397,7 @@ msgstr "%s i zone uden regel" #: timezone/zic.c:816 msgid "standard input" -msgstr "standard indkanal" +msgstr "standard inddata" #: timezone/zic.c:821 #, c-format @@ -6477,7 +6477,7 @@ msgstr "'Zone %s'-linje og flaget -p udelukker hinanden" #: timezone/zic.c:1015 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" -msgstr "duplikeret zonenavn %s (fil '%s', linje %d)" +msgstr "duplikér zonenavn %s (fil '%s', linje %d)" #: timezone/zic.c:1031 msgid "wrong number of fields on Zone continuation line" @@ -6521,7 +6521,7 @@ msgstr "tid for lille" #: timezone/zic.c:1186 msgid "time too large" -msgstr "For stor tid" +msgstr "tid for stor" #: timezone/zic.c:1190 timezone/zic.c:1295 msgid "invalid time of day" @@ -6529,15 +6529,15 @@ msgstr "ugyldig tid p #: timezone/zic.c:1209 msgid "illegal CORRECTION field on Leap line" -msgstr "ulovligt 'CORRECTION'-felt på 'Leap'-linje" +msgstr "ugyldigt 'CORRECTION'-felt på 'Leap'-linje" #: timezone/zic.c:1214 msgid "illegal Rolling/Stationary field on Leap line" -msgstr "ulovligt 'Rolling/Stationary'-felt på 'Leap'-linje" +msgstr "ugyldigt 'Rolling/Stationary'-felt på 'Leap'-linje" #: timezone/zic.c:1230 msgid "wrong number of fields on Link line" -msgstr "galt antal felter på 'Link'-linje" +msgstr "forkert antal felter på 'Link'-linje" #: timezone/zic.c:1234 msgid "blank FROM field on Link line" @@ -6561,7 +6561,7 @@ msgstr "start #: timezone/zic.c:1349 msgid "typed single year" -msgstr "satte type på bare et år" +msgstr "indtastede enkelt år" #: timezone/zic.c:1384 msgid "invalid weekday name" @@ -6596,15 +6596,15 @@ msgstr "for mange overgange?!" #: timezone/zic.c:2237 msgid "internal error - addtype called with bad isdst" -msgstr "intern fejl - addtype kaldt med fejlagtig isdst" +msgstr "intern fejl - addtype kaldt med dårlig isdst" #: timezone/zic.c:2241 msgid "internal error - addtype called with bad ttisstd" -msgstr "intern fejl - addtype kaldt med fejlagtig ttisstd" +msgstr "intern fejl - addtype kaldt med dårlig ttisstd" #: timezone/zic.c:2245 msgid "internal error - addtype called with bad ttisgmt" -msgstr "intern fejl - addtype kaldt med fejlagtig ttisgmt" +msgstr "intern fejl - addtype kaldt med dårlig ttisgmt" #: timezone/zic.c:2264 msgid "too many local time types" From ab09b221594f12d90a63d29cbf5488d91f39d3f3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 20 May 2009 21:57:37 -0700 Subject: [PATCH 35/76] Sun agreed to a change of the license for the RPC code to a BSD-like license. --- ChangeLog | 93 +++++++++++++++++++++ sunrpc/auth_des.c | 51 ++++++------ sunrpc/auth_none.c | 51 ++++++------ sunrpc/auth_unix.c | 51 ++++++------ sunrpc/authdes_prot.c | 51 ++++++------ sunrpc/authuxprot.c | 51 ++++++------ sunrpc/bindrsvprt.c | 51 ++++++------ sunrpc/clnt_gen.c | 51 ++++++------ sunrpc/clnt_perr.c | 59 ++++++-------- sunrpc/clnt_raw.c | 58 ++++++------- sunrpc/clnt_simp.c | 60 +++++++------- sunrpc/clnt_tcp.c | 58 ++++++------- sunrpc/clnt_udp.c | 58 ++++++------- sunrpc/clnt_unix.c | 54 ++++++------- sunrpc/des_crypt.c | 60 +++++++------- sunrpc/des_soft.c | 48 +++++------ sunrpc/get_myaddr.c | 60 +++++++------- sunrpc/getrpcport.c | 56 ++++++------- sunrpc/key_call.c | 51 ++++++------ sunrpc/key_prot.c | 54 ++++++------- sunrpc/openchild.c | 52 ++++++------ sunrpc/pm_getmaps.c | 60 +++++++------- sunrpc/pm_getport.c | 60 +++++++------- sunrpc/pmap_clnt.c | 51 ++++++------ sunrpc/pmap_prot.c | 60 +++++++------- sunrpc/pmap_prot2.c | 60 +++++++------- sunrpc/pmap_rmt.c | 60 +++++++------- sunrpc/rpc/auth.h | 55 ++++++------- sunrpc/rpc/auth_unix.h | 56 ++++++------- sunrpc/rpc/clnt.h | 55 ++++++------- sunrpc/rpc/des_crypt.h | 49 ++++++----- sunrpc/rpc/key_prot.h | 143 ++++++++++++++++----------------- sunrpc/rpc/netdb.h | 48 +++++------ sunrpc/rpc/pmap_clnt.h | 57 +++++++------ sunrpc/rpc/pmap_prot.h | 57 +++++++------ sunrpc/rpc/pmap_rmt.h | 57 +++++++------ sunrpc/rpc/rpc.h | 57 +++++++------ sunrpc/rpc/rpc_des.h | 55 +++++++------ sunrpc/rpc/rpc_msg.h | 58 +++++++------ sunrpc/rpc/svc.h | 54 ++++++------- sunrpc/rpc/svc_auth.h | 56 ++++++------- sunrpc/rpc/types.h | 48 +++++------ sunrpc/rpc/xdr.h | 54 ++++++------- sunrpc/rpc_clntout.c | 59 ++++++-------- sunrpc/rpc_cmsg.c | 59 ++++++-------- sunrpc/rpc_common.c | 48 +++++------ sunrpc/rpc_cout.c | 53 ++++++------ sunrpc/rpc_dtable.c | 51 ++++++------ sunrpc/rpc_hout.c | 53 ++++++------ sunrpc/rpc_main.c | 53 ++++++------ sunrpc/rpc_parse.c | 53 ++++++------ sunrpc/rpc_parse.h | 55 ++++++------- sunrpc/rpc_prot.c | 58 ++++++------- sunrpc/rpc_sample.c | 53 ++++++------ sunrpc/rpc_scan.c | 53 ++++++------ sunrpc/rpc_scan.h | 64 +++++++-------- sunrpc/rpc_svcout.c | 53 ++++++------ sunrpc/rpc_tblout.c | 53 ++++++------ sunrpc/rpc_util.c | 53 ++++++------ sunrpc/rpc_util.h | 55 ++++++------- sunrpc/rpcinfo.c | 62 +++++++------- sunrpc/rpcsvc/bootparam_prot.x | 54 ++++++------- sunrpc/rpcsvc/key_prot.x | 115 +++++++++++++------------- sunrpc/rpcsvc/klm_prot.x | 57 +++++++------ sunrpc/rpcsvc/mount.x | 48 +++++------ sunrpc/rpcsvc/nfs_prot.x | 54 ++++++------- sunrpc/rpcsvc/rex.x | 48 +++++------ sunrpc/rpcsvc/rstat.x | 52 ++++++------ sunrpc/rpcsvc/rusers.x | 49 ++++++----- sunrpc/rpcsvc/sm_inter.x | 58 ++++++------- sunrpc/rpcsvc/spray.x | 56 ++++++------- sunrpc/rpcsvc/yppasswd.x | 56 +++++++------ sunrpc/rtime.c | 55 ++++++------- sunrpc/svc.c | 55 +++++++------ sunrpc/svc_auth.c | 58 ++++++------- sunrpc/svc_authux.c | 56 +++++++------ sunrpc/svc_raw.c | 60 +++++++------- sunrpc/svc_run.c | 49 ++++++----- sunrpc/svc_simple.c | 60 +++++++------- sunrpc/svc_tcp.c | 58 ++++++------- sunrpc/svc_udp.c | 60 +++++++------- sunrpc/svc_unix.c | 54 ++++++------- sunrpc/svcauth_des.c | 52 ++++++------ sunrpc/xcrypt.c | 52 ++++++------ sunrpc/xdr.c | 58 ++++++------- sunrpc/xdr_array.c | 62 +++++++------- sunrpc/xdr_float.c | 58 ++++++------- sunrpc/xdr_mem.c | 55 ++++++------- sunrpc/xdr_rec.c | 56 +++++++------ sunrpc/xdr_ref.c | 62 +++++++------- sunrpc/xdr_sizeof.c | 53 ++++++------ sunrpc/xdr_stdio.c | 54 ++++++------- 92 files changed, 2524 insertions(+), 2726 deletions(-) diff --git a/ChangeLog b/ChangeLog index 511fa81642..001ae9012c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,98 @@ 2009-05-20 Ulrich Drepper + Sun approved the change of the license. + * sunrpc/auth_des.c: Replace license text. + * sunrpc/auth_none.c: Likewise. + * sunrpc/auth_unix.c: Likewise. + * sunrpc/authdes_prot.c: Likewise. + * sunrpc/authuxprot.c: Likewise. + * sunrpc/bindrsvprt.c: Likewise. + * sunrpc/clnt_gen.c: Likewise. + * sunrpc/clnt_perr.c: Likewise. + * sunrpc/clnt_raw.c: Likewise. + * sunrpc/clnt_simp.c: Likewise. + * sunrpc/clnt_tcp.c: Likewise. + * sunrpc/clnt_udp.c: Likewise. + * sunrpc/clnt_unix.c: Likewise. + * sunrpc/des_crypt.c: Likewise. + * sunrpc/des_soft.c: Likewise. + * sunrpc/get_myaddr.c: Likewise. + * sunrpc/getrpcport.c: Likewise. + * sunrpc/key_call.c: Likewise. + * sunrpc/key_prot.c: Likewise. + * sunrpc/openchild.c: Likewise. + * sunrpc/pm_getmaps.c: Likewise. + * sunrpc/pm_getport.c: Likewise. + * sunrpc/pmap_clnt.c: Likewise. + * sunrpc/pmap_prot.c: Likewise. + * sunrpc/pmap_prot2.c: Likewise. + * sunrpc/pmap_rmt.c: Likewise. + * sunrpc/rpc/auth.h: Likewise. + * sunrpc/rpc/auth_unix.h: Likewise. + * sunrpc/rpc/clnt.h: Likewise. + * sunrpc/rpc/des_crypt.h: Likewise. + * sunrpc/rpc/key_prot.h: Likewise. + * sunrpc/rpc/netdb.h: Likewise. + * sunrpc/rpc/pmap_clnt.h: Likewise. + * sunrpc/rpc/pmap_prot.h: Likewise. + * sunrpc/rpc/pmap_rmt.h: Likewise. + * sunrpc/rpc/rpc.h: Likewise. + * sunrpc/rpc/rpc_des.h: Likewise. + * sunrpc/rpc/rpc_msg.h: Likewise. + * sunrpc/rpc/svc.h: Likewise. + * sunrpc/rpc/svc_auth.h: Likewise. + * sunrpc/rpc/types.h: Likewise. + * sunrpc/rpc/xdr.h: Likewise. + * sunrpc/rpc_clntout.c: Likewise. + * sunrpc/rpc_cmsg.c: Likewise. + * sunrpc/rpc_common.c: Likewise. + * sunrpc/rpc_cout.c: Likewise. + * sunrpc/rpc_dtable.c: Likewise. + * sunrpc/rpc_hout.c: Likewise. + * sunrpc/rpc_main.c: Likewise. + * sunrpc/rpc_parse.c: Likewise. + * sunrpc/rpc_parse.h: Likewise. + * sunrpc/rpc_prot.c: Likewise. + * sunrpc/rpc_sample.c: Likewise. + * sunrpc/rpc_scan.c: Likewise. + * sunrpc/rpc_scan.h: Likewise. + * sunrpc/rpc_svcout.c: Likewise. + * sunrpc/rpc_tblout.c: Likewise. + * sunrpc/rpc_util.c: Likewise. + * sunrpc/rpc_util.h: Likewise. + * sunrpc/rpcinfo.c: Likewise. + * sunrpc/rpcsvc/bootparam_prot.x: Likewise. + * sunrpc/rpcsvc/key_prot.x: Likewise. + * sunrpc/rpcsvc/klm_prot.x: Likewise. + * sunrpc/rpcsvc/mount.x: Likewise. + * sunrpc/rpcsvc/nfs_prot.x: Likewise. + * sunrpc/rpcsvc/rex.x: Likewise. + * sunrpc/rpcsvc/rstat.x: Likewise. + * sunrpc/rpcsvc/rusers.x: Likewise. + * sunrpc/rpcsvc/sm_inter.x: Likewise. + * sunrpc/rpcsvc/spray.x: Likewise. + * sunrpc/rpcsvc/yppasswd.x: Likewise. + * sunrpc/rtime.c: Likewise. + * sunrpc/svc.c: Likewise. + * sunrpc/svc_auth.c: Likewise. + * sunrpc/svc_authux.c: Likewise. + * sunrpc/svc_raw.c: Likewise. + * sunrpc/svc_run.c: Likewise. + * sunrpc/svc_simple.c: Likewise. + * sunrpc/svc_tcp.c: Likewise. + * sunrpc/svc_udp.c: Likewise. + * sunrpc/svc_unix.c: Likewise. + * sunrpc/svcauth_des.c: Likewise. + * sunrpc/xcrypt.c: Likewise. + * sunrpc/xdr.c: Likewise. + * sunrpc/xdr_array.c: Likewise. + * sunrpc/xdr_float.c: Likewise. + * sunrpc/xdr_mem.c: Likewise. + * sunrpc/xdr_rec.c: Likewise. + * sunrpc/xdr_ref.c: Likewise. + * sunrpc/xdr_sizeof.c: Likewise. + * sunrpc/xdr_stdio.c: Likewise. + * po/da.po: Update from translation team. 2009-05-18 Kaz Kojima diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c index a76f0278ce..acd8eb4e30 100644 --- a/sunrpc/auth_des.c +++ b/sunrpc/auth_des.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * auth_des.c, client-side implementation of DES authentication diff --git a/sunrpc/auth_none.c b/sunrpc/auth_none.c index f459520a2c..b78f1e1289 100644 --- a/sunrpc/auth_none.c +++ b/sunrpc/auth_none.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * auth_none.c diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c index 734eb088f3..3a371c7f4b 100644 --- a/sunrpc/auth_unix.c +++ b/sunrpc/auth_unix.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * auth_unix.c, Implements UNIX style authentication parameters. diff --git a/sunrpc/authdes_prot.c b/sunrpc/authdes_prot.c index a8891088d1..392e0ffdfe 100644 --- a/sunrpc/authdes_prot.c +++ b/sunrpc/authdes_prot.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * authdes_prot.c, XDR routines for DES authentication diff --git a/sunrpc/authuxprot.c b/sunrpc/authuxprot.c index 60d3ddbbf5..979cd6836c 100644 --- a/sunrpc/authuxprot.c +++ b/sunrpc/authuxprot.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * authunix_prot.c diff --git a/sunrpc/bindrsvprt.c b/sunrpc/bindrsvprt.c index 003c3dfd46..22aaecd1ac 100644 --- a/sunrpc/bindrsvprt.c +++ b/sunrpc/bindrsvprt.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1987 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (c) 1987 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/clnt_gen.c b/sunrpc/clnt_gen.c index c7468f4d93..cbb4dd7754 100644 --- a/sunrpc/clnt_gen.c +++ b/sunrpc/clnt_gen.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1987, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (C) 1987, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/clnt_perr.c b/sunrpc/clnt_perr.c index c15796fa0e..7c860a31a3 100644 --- a/sunrpc/clnt_perr.c +++ b/sunrpc/clnt_perr.c @@ -1,41 +1,34 @@ -/* @(#)clnt_perror.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro"; -#endif - /* * clnt_perror.c * * Copyright (C) 1984, Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c index 74d90c8051..d94032df78 100644 --- a/sunrpc/clnt_raw.c +++ b/sunrpc/clnt_raw.c @@ -1,40 +1,34 @@ -/* @(#)clnt_raw.c 2.2 88/08/01 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * clnt_raw.c * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * clnt_raw.c + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Memory based rpc for simple testing and timing. * Interface to create an rpc client and server in the same process. diff --git a/sunrpc/clnt_simp.c b/sunrpc/clnt_simp.c index 631ec8afbc..11cdf8d7e5 100644 --- a/sunrpc/clnt_simp.c +++ b/sunrpc/clnt_simp.c @@ -1,41 +1,35 @@ -/* @(#)clnt_simple.c 2.2 88/08/01 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)clnt_simple.c 1.35 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * clnt_simple.c * Simplified front end to rpc. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c index 6825ca57ee..1552be87ad 100644 --- a/sunrpc/clnt_tcp.c +++ b/sunrpc/clnt_tcp.c @@ -1,40 +1,34 @@ -/* @(#)clnt_tcp.c 2.2 88/08/01 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * clnt_tcp.c, Implements a TCP/IP based, client side RPC. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro"; -#endif - -/* - * clnt_tcp.c, Implements a TCP/IP based, client side RPC. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * TCP based RPC supports 'batched calls'. * A sequence of calls may be batched-up in a send buffer. The rpc call diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c index 548c987e69..62ee3a1c99 100644 --- a/sunrpc/clnt_udp.c +++ b/sunrpc/clnt_udp.c @@ -1,40 +1,34 @@ -/* @(#)clnt_udp.c 2.2 88/08/01 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * clnt_udp.c, Implements a UDP/IP based, client side RPC. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * clnt_udp.c, Implements a UDP/IP based, client side RPC. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c index 4107c62294..db3ea312af 100644 --- a/sunrpc/clnt_unix.c +++ b/sunrpc/clnt_unix.c @@ -1,36 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * clnt_unix.c, Implements a TCP/IP based, client side RPC. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * clnt_unix.c, Implements a TCP/IP based, client side RPC. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * TCP based RPC supports 'batched calls'. * A sequence of calls may be batched-up in a send buffer. The rpc call diff --git a/sunrpc/des_crypt.c b/sunrpc/des_crypt.c index 87389b47ce..b66589bdbb 100644 --- a/sunrpc/des_crypt.c +++ b/sunrpc/des_crypt.c @@ -1,37 +1,33 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSID) -static char sccsid[] = "@(#)des_crypt.c 2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI"; -#endif /* * des_crypt.c, DES encryption library routines * Copyright (C) 1986, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include @@ -80,7 +76,7 @@ common_crypt (char *key, char *buf, register unsigned len, desdev = mode & DES_DEVMASK; COPY8 (key, desp->des_key); - /* + /* * software */ if (!_des_crypt (buf, len, desp)) diff --git a/sunrpc/des_soft.c b/sunrpc/des_soft.c index 521d97c796..4573d9dda0 100644 --- a/sunrpc/des_soft.c +++ b/sunrpc/des_soft.c @@ -2,32 +2,32 @@ static char sccsid[] = "@(#)des_soft.c 2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI"; #endif /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/get_myaddr.c b/sunrpc/get_myaddr.c index 4449c53c06..7f200059ca 100644 --- a/sunrpc/get_myaddr.c +++ b/sunrpc/get_myaddr.c @@ -1,41 +1,35 @@ -/* @(#)get_myaddress.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)get_myaddress.c 1.4 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * get_myaddress.c * * Get client's IP address via ioctl. This avoids using the yellowpages. * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/getrpcport.c b/sunrpc/getrpcport.c index a8f1326f08..7786701671 100644 --- a/sunrpc/getrpcport.c +++ b/sunrpc/getrpcport.c @@ -1,38 +1,32 @@ -/* @(#)getrpcport.c 2.1 88/07/29 4.0 RPCSRC */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)getrpcport.c 1.3 87/08/11 SMI"; -#endif /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1985 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * Copyright (c) 1985 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c index 319d8017e8..3ad066a0dd 100644 --- a/sunrpc/key_call.c +++ b/sunrpc/key_call.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * The original source is from the RPCSRC 4.0 package from Sun Microsystems. diff --git a/sunrpc/key_prot.c b/sunrpc/key_prot.c index 63d2538957..b2eb233846 100644 --- a/sunrpc/key_prot.c +++ b/sunrpc/key_prot.c @@ -1,36 +1,32 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. +/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if 0 -#pragma ident "@(#)key_prot.x 1.7 94/04/29 SMI" -#endif - -/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */ #include "rpc/key_prot.h" diff --git a/sunrpc/openchild.c b/sunrpc/openchild.c index 29ddfa6b75..defd93a683 100644 --- a/sunrpc/openchild.c +++ b/sunrpc/openchild.c @@ -1,34 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/pm_getmaps.c b/sunrpc/pm_getmaps.c index b21e7ea85c..983b2bae8a 100644 --- a/sunrpc/pm_getmaps.c +++ b/sunrpc/pm_getmaps.c @@ -1,42 +1,36 @@ -/* @(#)pmap_getmaps.c 2.2 88/08/01 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)pmap_getmaps.c 1.10 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * pmap_getmap.c * Client interface to pmap rpc service. * contains pmap_getmaps, which is only tcp service involved * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c index 2d309841f3..e37f6e73e6 100644 --- a/sunrpc/pm_getport.c +++ b/sunrpc/pm_getport.c @@ -1,41 +1,35 @@ -/* @(#)pmap_getport.c 2.2 88/08/01 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)pmap_getport.c 1.9 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * pmap_getport.c * Client interface to pmap rpc service. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/pmap_clnt.c b/sunrpc/pmap_clnt.c index 3e42960893..64a53b67de 100644 --- a/sunrpc/pmap_clnt.c +++ b/sunrpc/pmap_clnt.c @@ -1,33 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * pmap_clnt.c diff --git a/sunrpc/pmap_prot.c b/sunrpc/pmap_prot.c index 3db27a90a4..cc574567e6 100644 --- a/sunrpc/pmap_prot.c +++ b/sunrpc/pmap_prot.c @@ -1,41 +1,35 @@ -/* @(#)pmap_prot.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)pmap_prot.c 1.17 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * pmap_prot.c * Protocol for the local binder service, or pmap. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/pmap_prot2.c b/sunrpc/pmap_prot2.c index 9dd4925a19..43e62e35ee 100644 --- a/sunrpc/pmap_prot2.c +++ b/sunrpc/pmap_prot2.c @@ -1,41 +1,35 @@ -/* @(#)pmap_prot2.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)pmap_prot2.c 1.3 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * pmap_prot2.c * Protocol for the local binder service, or pmap. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c index e068848919..15a9591199 100644 --- a/sunrpc/pmap_rmt.c +++ b/sunrpc/pmap_rmt.c @@ -1,42 +1,36 @@ -/* @(#)pmap_rmt.c 2.2 88/08/01 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro"; -#endif - /* * pmap_rmt.c * Client interface to pmap rpc service. * remote call and broadcast service * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/rpc/auth.h b/sunrpc/rpc/auth.h index 7c931d8873..0c2663917b 100644 --- a/sunrpc/rpc/auth.h +++ b/sunrpc/rpc/auth.h @@ -1,37 +1,34 @@ -/* @(#)auth.h 2.3 88/08/07 4.0 RPCSRC; from 1.17 88/02/08 SMI */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * auth.h, Authentication interface. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * auth.h, Authentication interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The data structures are completely opaque to the client. The client * is required to pass a AUTH * to routines that create rpc diff --git a/sunrpc/rpc/auth_unix.h b/sunrpc/rpc/auth_unix.h index 424661d9ce..268c2b59ed 100644 --- a/sunrpc/rpc/auth_unix.h +++ b/sunrpc/rpc/auth_unix.h @@ -1,38 +1,34 @@ -/* @(#)auth_unix.h 2.2 88/07/29 4.0 RPCSRC; from 1.8 88/02/08 SMI */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * auth_unix.h, Protocol for UNIX style authentication parameters for RPC * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* @(#)auth_unix.h 1.5 86/07/16 SMI */ - -/* - * auth_unix.h, Protocol for UNIX style authentication parameters for RPC - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc/clnt.h b/sunrpc/rpc/clnt.h index 265bbe2528..5b03b86c0f 100644 --- a/sunrpc/rpc/clnt.h +++ b/sunrpc/rpc/clnt.h @@ -1,37 +1,34 @@ -/* @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.31 88/02/08 SMI*/ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * clnt.h - Client side remote procedure call interface. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * clnt.h - Client side remote procedure call interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_CLNT_H diff --git a/sunrpc/rpc/des_crypt.h b/sunrpc/rpc/des_crypt.h index 6a65887d3b..6e843985bb 100644 --- a/sunrpc/rpc/des_crypt.h +++ b/sunrpc/rpc/des_crypt.h @@ -3,34 +3,33 @@ * * des_crypt.h, des library routine interface * Copyright (C) 1986, Sun Microsystems, Inc. - */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __DES_CRYPT_H__ diff --git a/sunrpc/rpc/key_prot.h b/sunrpc/rpc/key_prot.h index 3e2eb7208e..16f03ff3c4 100644 --- a/sunrpc/rpc/key_prot.h +++ b/sunrpc/rpc/key_prot.h @@ -8,40 +8,37 @@ #include -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. +/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if 0 -#pragma ident "@(#)key_prot.x 1.7 94/04/29 SMI" -#endif -/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */ -/* +/* * Compiled from key_prot.x using rpcgen. * DO NOT EDIT THIS FILE! * This is NOT source code! @@ -60,33 +57,33 @@ enum keystatus { KEY_SYSTEMERR = 3, }; typedef enum keystatus keystatus; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_keystatus(XDR *, keystatus*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_keystatus(XDR *, keystatus*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_keystatus(); -#endif /* Old Style C */ +#endif /* Old Style C */ typedef char keybuf[HEXKEYBYTES]; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_keybuf(XDR *, keybuf); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_keybuf(XDR *, keybuf); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_keybuf(); -#endif /* Old Style C */ +#endif /* Old Style C */ typedef char *netnamestr; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_netnamestr(XDR *, netnamestr*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_netnamestr(XDR *, netnamestr*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_netnamestr(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct cryptkeyarg { @@ -94,13 +91,13 @@ struct cryptkeyarg { des_block deskey; }; typedef struct cryptkeyarg cryptkeyarg; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_cryptkeyarg(XDR *, cryptkeyarg*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_cryptkeyarg(XDR *, cryptkeyarg*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_cryptkeyarg(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct cryptkeyarg2 { @@ -109,13 +106,13 @@ struct cryptkeyarg2 { des_block deskey; }; typedef struct cryptkeyarg2 cryptkeyarg2; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_cryptkeyarg2(XDR *, cryptkeyarg2*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_cryptkeyarg2(XDR *, cryptkeyarg2*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_cryptkeyarg2(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct cryptkeyres { @@ -125,13 +122,13 @@ struct cryptkeyres { } cryptkeyres_u; }; typedef struct cryptkeyres cryptkeyres; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_cryptkeyres(XDR *, cryptkeyres*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_cryptkeyres(XDR *, cryptkeyres*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_cryptkeyres(); -#endif /* Old Style C */ +#endif /* Old Style C */ #define MAXGIDS 16 @@ -144,13 +141,13 @@ struct unixcred { } gids; }; typedef struct unixcred unixcred; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_unixcred(XDR *, unixcred*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_unixcred(XDR *, unixcred*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_unixcred(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct getcredres { @@ -160,13 +157,13 @@ struct getcredres { } getcredres_u; }; typedef struct getcredres getcredres; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_getcredres(XDR *, getcredres*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_getcredres(XDR *, getcredres*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_getcredres(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct key_netstarg { @@ -175,13 +172,13 @@ struct key_netstarg { netnamestr st_netname; }; typedef struct key_netstarg key_netstarg; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_key_netstarg(XDR *, key_netstarg*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_key_netstarg(XDR *, key_netstarg*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_key_netstarg(); -#endif /* Old Style C */ +#endif /* Old Style C */ struct key_netstres { @@ -191,13 +188,13 @@ struct key_netstres { } key_netstres_u; }; typedef struct key_netstres key_netstres; -#ifdef __cplusplus +#ifdef __cplusplus extern "C" bool_t xdr_key_netstres(XDR *, key_netstres*); -#elif __STDC__ +#elif __STDC__ extern bool_t xdr_key_netstres(XDR *, key_netstres*); -#else /* Old Style C */ +#else /* Old Style C */ bool_t xdr_key_netstres(); -#endif /* Old Style C */ +#endif /* Old Style C */ #ifndef opaque @@ -242,7 +239,7 @@ extern des_block * key_gen_1_svc(void *, struct svc_req *); extern getcredres * key_getcred_1(netnamestr *, CLIENT *); extern getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *); -#else /* Old Style C */ +#else /* Old Style C */ #define KEY_SET ((u_long)1) extern keystatus * key_set_1(); extern keystatus * key_set_1_svc(); @@ -258,7 +255,7 @@ extern des_block * key_gen_1_svc(); #define KEY_GETCRED ((u_long)5) extern getcredres * key_getcred_1(); extern getcredres * key_getcred_1_svc(); -#endif /* Old Style C */ +#endif /* Old Style C */ #define KEY_VERS2 ((u_long)2) #ifdef __cplusplus @@ -315,7 +312,7 @@ extern key_netstres * key_net_get_2_svc(void *, struct svc_req *); extern cryptkeyres * key_get_conv_2(opaque *, CLIENT *); extern cryptkeyres * key_get_conv_2_svc(opaque *, struct svc_req *); -#else /* Old Style C */ +#else /* Old Style C */ extern keystatus * key_set_2(); extern keystatus * key_set_2_svc(); extern cryptkeyres * key_encrypt_2(); @@ -341,6 +338,6 @@ extern key_netstres * key_net_get_2_svc(); #define KEY_GET_CONV ((u_long)10) extern cryptkeyres * key_get_conv_2(); extern cryptkeyres * key_get_conv_2_svc(); -#endif /* Old Style C */ +#endif /* Old Style C */ #endif /* !_KEY_PROT_H_RPCGEN */ diff --git a/sunrpc/rpc/netdb.h b/sunrpc/rpc/netdb.h index 539d8c3263..bcb0de29b1 100644 --- a/sunrpc/rpc/netdb.h +++ b/sunrpc/rpc/netdb.h @@ -1,31 +1,31 @@ /* @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* @(#)rpc.h 1.8 87/07/24 SMI */ diff --git a/sunrpc/rpc/pmap_clnt.h b/sunrpc/rpc/pmap_clnt.h index 997dddb323..7564f992e8 100644 --- a/sunrpc/rpc/pmap_clnt.h +++ b/sunrpc/rpc/pmap_clnt.h @@ -1,38 +1,35 @@ -/* @(#)pmap_clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.11 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * pmap_clnt.h * Supplies C routines to get to portmap services. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_PMAP_CLNT_H diff --git a/sunrpc/rpc/pmap_prot.h b/sunrpc/rpc/pmap_prot.h index cd64e36de5..39d6176e32 100644 --- a/sunrpc/rpc/pmap_prot.h +++ b/sunrpc/rpc/pmap_prot.h @@ -1,38 +1,35 @@ -/* @(#)pmap_prot.h 2.1 88/07/29 4.0 RPCSRC; from 1.14 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * pmap_prot.h * Protocol for the local binder service, or pmap. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_PMAP_PROT_H diff --git a/sunrpc/rpc/pmap_rmt.h b/sunrpc/rpc/pmap_rmt.h index 7a38b5f5f7..4ecb206cba 100644 --- a/sunrpc/rpc/pmap_rmt.h +++ b/sunrpc/rpc/pmap_rmt.h @@ -1,38 +1,35 @@ -/* @(#)pmap_rmt.h 2.1 88/07/29 4.0 RPCSRC; from 1.2 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * Structures and XDR routines for parameters to and replies from * the portmapper remote-call-service. * * Copyright (C) 1986, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_PMAP_RMT_H diff --git a/sunrpc/rpc/rpc.h b/sunrpc/rpc/rpc.h index 38e43859dd..4c16c39727 100644 --- a/sunrpc/rpc/rpc.h +++ b/sunrpc/rpc/rpc.h @@ -1,38 +1,35 @@ -/* @(#)rpc.h 2.3 88/08/10 4.0 RPCSRC; from 1.9 88/02/08 SMI */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * rpc.h, Just includes the billions of rpc header files necessary to * do remote procedure calling. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_RPC_H diff --git a/sunrpc/rpc/rpc_des.h b/sunrpc/rpc/rpc_des.h index 0f36d16977..f70db03cec 100644 --- a/sunrpc/rpc/rpc_des.h +++ b/sunrpc/rpc/rpc_des.h @@ -1,35 +1,34 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ /* * Generic DES driver interface * Keep this file hardware independent! * Copyright (c) 1986 by Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _DES_H diff --git a/sunrpc/rpc/rpc_msg.h b/sunrpc/rpc/rpc_msg.h index 636d60ea91..292cf906f5 100644 --- a/sunrpc/rpc/rpc_msg.h +++ b/sunrpc/rpc/rpc_msg.h @@ -1,33 +1,36 @@ -/* @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * rpc_msg.h + * rpc message definition * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* @(#)rpc_msg.h 1.7 86/07/16 SMI */ #ifndef _RPC_MSG_H #define _RPC_MSG_H 1 @@ -37,13 +40,6 @@ #include #include -/* - * rpc_msg.h - * rpc message definition - * - * Copyright (C) 1984, Sun Microsystems, Inc. - */ - #define RPC_MSG_VERSION ((u_long) 2) #define RPC_SERVICE_PORT ((u_short) 2048) diff --git a/sunrpc/rpc/svc.h b/sunrpc/rpc/svc.h index f29615d5d0..e7b126c1df 100644 --- a/sunrpc/rpc/svc.h +++ b/sunrpc/rpc/svc.h @@ -1,36 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * svc.h, Server-side remote procedure call interface. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * svc.h, Server-side remote procedure call interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_SVC_H diff --git a/sunrpc/rpc/svc_auth.h b/sunrpc/rpc/svc_auth.h index 1c1a7156ac..f72f4f119e 100644 --- a/sunrpc/rpc/svc_auth.h +++ b/sunrpc/rpc/svc_auth.h @@ -1,38 +1,34 @@ -/* @(#)svc_auth.h 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * svc_auth.h, Service side of rpc authentication. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* @(#)svc_auth.h 1.6 86/07/16 SMI */ - -/* - * svc_auth.h, Service side of rpc authentication. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_SVC_AUTH_H diff --git a/sunrpc/rpc/types.h b/sunrpc/rpc/types.h index 871f3fd6b0..5744e5a4bf 100644 --- a/sunrpc/rpc/types.h +++ b/sunrpc/rpc/types.h @@ -1,30 +1,30 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* fixincludes should not add extern "C" to this file */ /* diff --git a/sunrpc/rpc/xdr.h b/sunrpc/rpc/xdr.h index 75bc302980..f5ba7b3897 100644 --- a/sunrpc/rpc/xdr.h +++ b/sunrpc/rpc/xdr.h @@ -1,36 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * xdr.h, External Data Representation Serialization Routines. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * xdr.h, External Data Representation Serialization Routines. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _RPC_XDR_H diff --git a/sunrpc/rpc_clntout.c b/sunrpc/rpc_clntout.c index 08d9601212..8c0f9cc5df 100644 --- a/sunrpc/rpc_clntout.c +++ b/sunrpc/rpc_clntout.c @@ -1,40 +1,33 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * rpc_clntout.c, Client-stub outputter for the RPC protocol compiler + * Copyright (C) 1987, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_clntout.c 1.11 89/02/22 (C) 1987 SMI - */ - -/* - * rpc_clntout.c, Client-stub outputter for the RPC protocol compiler - * Copyright (C) 1987, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include diff --git a/sunrpc/rpc_cmsg.c b/sunrpc/rpc_cmsg.c index 9a7568b55a..097490302f 100644 --- a/sunrpc/rpc_cmsg.c +++ b/sunrpc/rpc_cmsg.c @@ -1,41 +1,34 @@ -/* @(#)rpc_callmsg.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)rpc_callmsg.c 1.4 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * rpc_callmsg.c * * Copyright (C) 1984, Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/rpc_common.c b/sunrpc/rpc_common.c index 3fb0bda489..ba89953112 100644 --- a/sunrpc/rpc_common.c +++ b/sunrpc/rpc_common.c @@ -1,30 +1,30 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/rpc_cout.c b/sunrpc/rpc_cout.c index 21056e84a6..e0e6535107 100644 --- a/sunrpc/rpc_cout.c +++ b/sunrpc/rpc_cout.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_cout.c 1.13 89/02/22 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_cout.c 1.13 89/02/22 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_dtable.c b/sunrpc/rpc_dtable.c index fbbb3c1d5c..9aff675a4d 100644 --- a/sunrpc/rpc_dtable.c +++ b/sunrpc/rpc_dtable.c @@ -1,35 +1,32 @@ /* @(#)rpc_dtablesize.c 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro"; -#endif #include #include diff --git a/sunrpc/rpc_hout.c b/sunrpc/rpc_hout.c index 270d149a6e..346e154219 100644 --- a/sunrpc/rpc_hout.c +++ b/sunrpc/rpc_hout.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_hout.c 1.12 89/02/22 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_hout.c 1.12 89/02/22 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c index 8a7d3695e2..fcb094df9a 100644 --- a/sunrpc/rpc_main.c +++ b/sunrpc/rpc_main.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From @(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI; * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From @(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c index f66538701f..56ec1a48ca 100644 --- a/sunrpc/rpc_parse.c +++ b/sunrpc/rpc_parse.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_parse.c 1.8 89/02/22 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_parse.c 1.8 89/02/22 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_parse.h b/sunrpc/rpc_parse.h index 8d48c85a07..815c7808c1 100644 --- a/sunrpc/rpc_parse.h +++ b/sunrpc/rpc_parse.h @@ -1,36 +1,33 @@ +/* @(#)rpc_parse.h 1.3 90/08/29 (C) 1987 SMI */ + /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* @(#)rpc_parse.h 1.3 90/08/29 (C) 1987 SMI */ - -/* * rpc_parse.h, Definitions for the RPCL parser */ diff --git a/sunrpc/rpc_prot.c b/sunrpc/rpc_prot.c index 69b0b6cd9d..d926083415 100644 --- a/sunrpc/rpc_prot.c +++ b/sunrpc/rpc_prot.c @@ -1,40 +1,34 @@ -/* @(#)rpc_prot.c 2.3 88/08/07 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * rpc_prot.c * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)rpc_prot.c 1.36 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * rpc_prot.c - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This set of routines implements the rpc message definition, * its serializer and some common rpc utility routines. diff --git a/sunrpc/rpc_sample.c b/sunrpc/rpc_sample.c index 00b58d5bc2..1f3bfd0cbb 100644 --- a/sunrpc/rpc_sample.c +++ b/sunrpc/rpc_sample.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_sample.c 1.1 90/08/30 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_sample.c 1.1 90/08/30 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_scan.c b/sunrpc/rpc_scan.c index af90ef6973..d4f518f6b4 100644 --- a/sunrpc/rpc_scan.c +++ b/sunrpc/rpc_scan.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_scan.c 1.11 89/02/22 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_scan.c 1.11 89/02/22 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_scan.h b/sunrpc/rpc_scan.h index 74d77b0fbb..384f807d7a 100644 --- a/sunrpc/rpc_scan.h +++ b/sunrpc/rpc_scan.h @@ -1,41 +1,38 @@ +/* @(#)rpc_scan.h 1.3 90/08/29 (C) 1987 SMI */ + /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* @(#)rpc_scan.h 1.3 90/08/29 (C) 1987 SMI */ - -/* - * rpc_scan.h, Definitions for the RPCL scanner + * rpc_scan.h, Definitions for the RPCL scanner */ /* - * kinds of tokens + * kinds of tokens */ enum tok_kind { TOK_IDENT, @@ -81,7 +78,7 @@ enum tok_kind { typedef enum tok_kind tok_kind; /* - * a token + * a token */ struct token { tok_kind kind; @@ -91,7 +88,7 @@ typedef struct token token; /* - * routine interface + * routine interface */ void scan(tok_kind expect, token *tokp); void scan2(tok_kind expect1, tok_kind expect2, token *tokp); @@ -104,4 +101,3 @@ void expected1(tok_kind exp1) __attribute__ ((noreturn)); void expected2(tok_kind exp1, tok_kind exp2) __attribute__ ((noreturn)); void expected3(tok_kind exp1, tok_kind exp2, tok_kind exp3) __attribute__ ((noreturn)); - diff --git a/sunrpc/rpc_svcout.c b/sunrpc/rpc_svcout.c index 6774cc8c0f..1887b75e42 100644 --- a/sunrpc/rpc_svcout.c +++ b/sunrpc/rpc_svcout.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_svcout.c 1.29 89/03/30 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_svcout.c 1.29 89/03/30 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_tblout.c b/sunrpc/rpc_tblout.c index 8fd2b1267d..2d77c606ca 100644 --- a/sunrpc/rpc_tblout.c +++ b/sunrpc/rpc_tblout.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_tblout.c 1.4 89/02/22 (C) 1988 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_tblout.c 1.4 89/02/22 (C) 1988 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_util.c b/sunrpc/rpc_util.c index b910401a31..6a6c0e42e2 100644 --- a/sunrpc/rpc_util.c +++ b/sunrpc/rpc_util.c @@ -1,35 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * From: @(#)rpc_util.c 1.11 89/02/22 (C) 1987 SMI * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * From: @(#)rpc_util.c 1.11 89/02/22 (C) 1987 SMI + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpc_util.h b/sunrpc/rpc_util.h index cb1ceb9921..72f08eb34f 100644 --- a/sunrpc/rpc_util.h +++ b/sunrpc/rpc_util.h @@ -1,36 +1,33 @@ +/* @(#)rpc_util.h 1.5 90/08/29 (C) 1987 SMI */ + /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user or with the express written consent of - * Sun Microsystems, Inc. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* @(#)rpc_util.h 1.5 90/08/29 (C) 1987 SMI */ - -/* * rpc_util.h, Useful definitions for the RPC protocol compiler */ diff --git a/sunrpc/rpcinfo.c b/sunrpc/rpcinfo.c index 91f360c2f3..5e00be9f78 100644 --- a/sunrpc/rpcinfo.c +++ b/sunrpc/rpcinfo.c @@ -1,11 +1,32 @@ - -/* @(#)rpcinfo.c 2.2 88/08/11 4.0 RPCSRC */ -#if !defined(lint) && defined (SCCSID) -static char sccsid[] = "@(#)rpcinfo.c 1.22 87/08/12 SMI"; -#endif - /* * Copyright (C) 1986, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* @@ -13,35 +34,6 @@ static char sccsid[] = "@(#)rpcinfo.c 1.22 87/08/12 SMI"; * or dump the portmapper */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - #include #include #include diff --git a/sunrpc/rpcsvc/bootparam_prot.x b/sunrpc/rpcsvc/bootparam_prot.x index 65bc0dcbfb..f272d52ae5 100644 --- a/sunrpc/rpcsvc/bootparam_prot.x +++ b/sunrpc/rpcsvc/bootparam_prot.x @@ -2,32 +2,32 @@ /* @(#)bootparam_prot.x 1.2 87/06/24 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* @@ -82,7 +82,7 @@ struct bp_getfile_arg { bp_machine_name_t client_name; bp_fileid_t file_id; }; - + struct bp_getfile_res { bp_machine_name_t server_name; bp_address server_address; diff --git a/sunrpc/rpcsvc/key_prot.x b/sunrpc/rpcsvc/key_prot.x index d9272cbcfa..0350250825 100644 --- a/sunrpc/rpcsvc/key_prot.x +++ b/sunrpc/rpcsvc/key_prot.x @@ -1,35 +1,34 @@ -%/* -% * Sun RPC is a product of Sun Microsystems, Inc. and is provided for -% * unrestricted use provided that this legend is included on all tape -% * media and as a part of the software program in whole or part. Users -% * may copy or modify Sun RPC without charge, but are not authorized -% * to license or distribute it to anyone else except as part of a product or -% * program developed by the user. -% * -% * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE -% * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR -% * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. -% * -% * Sun RPC is provided with no support and without any obligation on the -% * part of Sun Microsystems, Inc. to assist in its use, correction, -% * modification or enhancement. -% * -% * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE -% * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC -% * OR ANY PART THEREOF. -% * -% * In no event will Sun Microsystems, Inc. be liable for any lost revenue -% * or profits or other special, indirect and consequential damages, even if -% * Sun has been advised of the possibility of such damages. -% * -% * Sun Microsystems, Inc. -% * 2550 Garcia Avenue -% * Mountain View, California 94043 -% */ /* * Key server protocol definition * Copyright (C) 1990, 1991 Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * The keyserver is a public key storage/encryption/decryption service * The encryption method used is based on the Diffie-Hellman exponential * key exchange technology. @@ -49,7 +48,7 @@ % %/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */ % -%/* +%/* % * Compiled from key_prot.x using rpcgen. % * DO NOT EDIT THIS FILE! % * This is NOT source code! @@ -95,7 +94,7 @@ typedef opaque keybuf[HEXKEYBYTES]; /* store key in hex */ typedef string netnamestr; /* - * Argument to ENCRYPT or DECRYPT + * Argument to ENCRYPT or DECRYPT */ struct cryptkeyarg { netnamestr remotename; @@ -125,12 +124,12 @@ default: const MAXGIDS = 16; /* max number of gids in gid list */ /* - * Unix credential - */ + * Unix credential + */ struct unixcred { u_int uid; u_int gid; - u_int gids; + u_int gids; }; /* @@ -157,7 +156,7 @@ case KEY_SUCCESS: key_netstarg knet; default: void; -}; +}; #ifdef RPC_HDR % @@ -173,15 +172,15 @@ program KEY_PROG { * This is my secret key. * Store it for me. */ - keystatus - KEY_SET(keybuf) = 1; - + keystatus + KEY_SET(keybuf) = 1; + /* * I want to talk to X. * Encrypt a conversation key for me. */ cryptkeyres - KEY_ENCRYPT(cryptkeyarg) = 2; + KEY_ENCRYPT(cryptkeyarg) = 2; /* * X just sent me a message. @@ -193,7 +192,7 @@ program KEY_PROG { /* * Generate a secure conversation key for me */ - des_block + des_block KEY_GEN(void) = 4; /* @@ -215,15 +214,15 @@ program KEY_PROG { * This is my secret key. * Store it for me. */ - keystatus - KEY_SET(keybuf) = 1; - + keystatus + KEY_SET(keybuf) = 1; + /* * I want to talk to X. * Encrypt a conversation key for me. */ cryptkeyres - KEY_ENCRYPT(cryptkeyarg) = 2; + KEY_ENCRYPT(cryptkeyarg) = 2; /* * X just sent me a message. @@ -235,7 +234,7 @@ program KEY_PROG { /* * Generate a secure conversation key for me */ - des_block + des_block KEY_GEN(void) = 4; /* @@ -244,13 +243,13 @@ program KEY_PROG { */ getcredres KEY_GETCRED(netnamestr) = 5; - + /* * I want to talk to X. and I know X's public key * Encrypt a conversation key for me. */ cryptkeyres - KEY_ENCRYPT_PK(cryptkeyarg2) = 6; + KEY_ENCRYPT_PK(cryptkeyarg2) = 6; /* * X just sent me a message. and I know X's public key @@ -258,29 +257,27 @@ program KEY_PROG { */ cryptkeyres KEY_DECRYPT_PK(cryptkeyarg2) = 7; - - /* - * Store my public key, netname and private key. + + /* + * Store my public key, netname and private key. */ keystatus KEY_NET_PUT(key_netstarg) = 8; - + /* - * Retrieve my public key, netname and private key. + * Retrieve my public key, netname and private key. */ key_netstres KEY_NET_GET(void) = 9; - + /* - * Return me the conversation key that is constructed - * from my secret key and this publickey. + * Return me the conversation key that is constructed + * from my secret key and this publickey. */ - cryptkeyres - KEY_GET_CONV(keybuf) = 10; + cryptkeyres + KEY_GET_CONV(keybuf) = 10; + - } = 2; } = 100029; - - diff --git a/sunrpc/rpcsvc/klm_prot.x b/sunrpc/rpcsvc/klm_prot.x index 5f3e12e7d3..7b4c152f17 100644 --- a/sunrpc/rpcsvc/klm_prot.x +++ b/sunrpc/rpcsvc/klm_prot.x @@ -1,39 +1,37 @@ /* @(#)klm_prot.x 2.1 88/08/01 4.0 RPCSRC */ /* @(#)klm_prot.x 1.7 87/07/08 Copyr 1987 Sun Micro */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * Kernel/lock manager protocol definition * Copyright (C) 1986 Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * protocol used between the UNIX kernel (the "client") and the * local lock manager. The local lock manager is a deamon running * above the kernel. @@ -131,4 +129,3 @@ lock request */ klm_stat KLM_UNLOCK (struct klm_unlockargs) = 4; } = 1; } = 100020; - diff --git a/sunrpc/rpcsvc/mount.x b/sunrpc/rpcsvc/mount.x index 310b4ca542..da61c4eee9 100644 --- a/sunrpc/rpcsvc/mount.x +++ b/sunrpc/rpcsvc/mount.x @@ -2,32 +2,32 @@ /* @(#)mount.x 1.2 87/09/18 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpcsvc/nfs_prot.x b/sunrpc/rpcsvc/nfs_prot.x index 630dab24d1..2a685402bb 100644 --- a/sunrpc/rpcsvc/nfs_prot.x +++ b/sunrpc/rpcsvc/nfs_prot.x @@ -1,37 +1,35 @@ /* @(#)nfs_prot.x 2.1 88/08/01 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * nfs_prot.x 1.2 87/10/12 + * Copyright 1987 Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * nfs_prot.x 1.2 87/10/12 - * Copyright 1987 Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ const NFS_PORT = 2049; const NFS_MAXDATA = 8192; diff --git a/sunrpc/rpcsvc/rex.x b/sunrpc/rpcsvc/rex.x index 949d9f0747..253b8a7a2b 100644 --- a/sunrpc/rpcsvc/rex.x +++ b/sunrpc/rpcsvc/rex.x @@ -2,32 +2,32 @@ /* @(#)rex.x 1.3 87/09/18 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpcsvc/rstat.x b/sunrpc/rpcsvc/rstat.x index 6367c43943..b2c6b6e185 100644 --- a/sunrpc/rpcsvc/rstat.x +++ b/sunrpc/rpcsvc/rstat.x @@ -2,32 +2,32 @@ /* @(#)rstat.x 1.2 87/09/18 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* diff --git a/sunrpc/rpcsvc/rusers.x b/sunrpc/rpcsvc/rusers.x index b72c293905..bcf5fd2e73 100644 --- a/sunrpc/rpcsvc/rusers.x +++ b/sunrpc/rpcsvc/rusers.x @@ -1,32 +1,31 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - %/* % * Find out about remote users % */ diff --git a/sunrpc/rpcsvc/sm_inter.x b/sunrpc/rpcsvc/sm_inter.x index 9cbb7011a6..9c20383ca3 100644 --- a/sunrpc/rpcsvc/sm_inter.x +++ b/sunrpc/rpcsvc/sm_inter.x @@ -1,39 +1,33 @@ -/* @(#)sm_inter.x 2.2 88/08/01 4.0 RPCSRC */ -/* @(#)sm_inter.x 1.7 87/06/24 Copyr 1987 Sun Micro */ - -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * Status monitor protocol specification * Copyright (C) 1986 Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ diff --git a/sunrpc/rpcsvc/spray.x b/sunrpc/rpcsvc/spray.x index b242f0ac75..2830722aea 100644 --- a/sunrpc/rpcsvc/spray.x +++ b/sunrpc/rpcsvc/spray.x @@ -2,32 +2,32 @@ /* @(#)spray.x 1.2 87/09/18 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* @@ -62,7 +62,7 @@ program SPRAYPROG { version SPRAYVERS { /* * Just throw away the data and increment the counter - * This call never returns, so the client should always + * This call never returns, so the client should always * time it out. */ void @@ -72,7 +72,7 @@ program SPRAYPROG { * Get the value of the counter and elapsed time since * last CLEAR. */ - spraycumul + spraycumul SPRAYPROC_GET(void) = 2; /* diff --git a/sunrpc/rpcsvc/yppasswd.x b/sunrpc/rpcsvc/yppasswd.x index ad349adbfa..b8ff7c2759 100644 --- a/sunrpc/rpcsvc/yppasswd.x +++ b/sunrpc/rpcsvc/yppasswd.x @@ -2,32 +2,32 @@ /* @(#)yppasswd.x 1.1 87/04/13 Copyr 1987 Sun Micro */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* @@ -37,7 +37,7 @@ program YPPASSWDPROG { version YPPASSWDVERS { /* - * Update my passwd entry + * Update my passwd entry */ int YPPASSWDPROC_UPDATE(yppasswd) = 1; @@ -59,5 +59,3 @@ struct yppasswd { string oldpass<>; /* unencrypted old password */ passwd newpw; /* new passwd entry */ }; - - diff --git a/sunrpc/rtime.c b/sunrpc/rtime.c index ff71a55aeb..790bf4bc8d 100644 --- a/sunrpc/rtime.c +++ b/sunrpc/rtime.c @@ -1,37 +1,32 @@ -#if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)rtime.c 2.2 88/08/10 4.0 RPCSRC; from 1.8 88/02/08 SMI"; -#endif /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* * rtime - get time from remote machine diff --git a/sunrpc/svc.c b/sunrpc/svc.c index 60f6fcdd79..d389a5285d 100644 --- a/sunrpc/svc.c +++ b/sunrpc/svc.c @@ -1,31 +1,3 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ /* * svc.c, Server-side remote procedure call interface. * @@ -34,6 +6,33 @@ * list of service routines. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_auth.c b/sunrpc/svc_auth.c index 68ed4f100b..11555c5976 100644 --- a/sunrpc/svc_auth.c +++ b/sunrpc/svc_auth.c @@ -1,40 +1,34 @@ -/* @(#)svc_auth.c 2.4 88/08/15 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * svc_auth.c, Server-side rpc authenticator interface. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_auth.c 1.19 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * svc_auth.c, Server-side rpc authenticator interface. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_authux.c b/sunrpc/svc_authux.c index 5b64c3d036..477ff25022 100644 --- a/sunrpc/svc_authux.c +++ b/sunrpc/svc_authux.c @@ -1,32 +1,3 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * svc_auth_unix.c * Handles UNIX flavor authentication parameters on the service side of rpc. @@ -36,6 +7,33 @@ * Note: the shorthand has been gutted for efficiency. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_raw.c b/sunrpc/svc_raw.c index ff8fa7ccd9..924135bb6a 100644 --- a/sunrpc/svc_raw.c +++ b/sunrpc/svc_raw.c @@ -1,36 +1,3 @@ -/* @(#)svc_raw.c 2.1 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_raw.c 1.15 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * svc_raw.c, This a toy for simple testing and timing. * Interface to create an rpc client and server in the same UNIX process. @@ -38,6 +5,33 @@ static char sccsid[] = "@(#)svc_raw.c 1.15 87/08/11 Copyr 1984 Sun Micro"; * any interference from the kernel. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c index f1f47fbf30..1bb8c87c0f 100644 --- a/sunrpc/svc_run.c +++ b/sunrpc/svc_run.c @@ -1,32 +1,31 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* * This is the rpc server side idle loop * Wait for input, call server program. */ diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c index 6c1c9c914e..1d6f51588f 100644 --- a/sunrpc/svc_simple.c +++ b/sunrpc/svc_simple.c @@ -1,41 +1,35 @@ -/* @(#)svc_simple.c 2.2 88/08/01 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_simple.c 1.18 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * svc_simple.c * Simplified front end to rpc. * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c index beeb10646e..2048fdf0e0 100644 --- a/sunrpc/svc_tcp.c +++ b/sunrpc/svc_tcp.c @@ -1,40 +1,34 @@ -/* @(#)svc_tcp.c 2.2 88/08/01 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * svc_tcp.c, Server side for TCP/IP based RPC. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * svc_tcp.c, Server side for TCP/IP based RPC. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Actually implements two flavors of transporter - * a tcp rendezvouser (a listener and connection establisher) diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c index 496d6d9602..b9fccab262 100644 --- a/sunrpc/svc_udp.c +++ b/sunrpc/svc_udp.c @@ -1,42 +1,36 @@ -/* @(#)svc_udp.c 2.2 88/07/29 4.0 RPCSRC */ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro"; -#endif - /* * svc_udp.c, * Server side for UDP/IP based RPC. (Does some caching in the hopes of * achieving execute-at-most-once semantics.) * * Copyright (C) 1984, Sun Microsystems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c index f103ed96f3..f22a23acda 100644 --- a/sunrpc/svc_unix.c +++ b/sunrpc/svc_unix.c @@ -1,36 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * svc_unix.c, Server side for TCP/IP based RPC. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * svc_unix.c, Server side for TCP/IP based RPC. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Actually implements two flavors of transporter - * a unix rendezvouser (a listener and connection establisher) diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c index 933d001341..573891e21f 100644 --- a/sunrpc/svcauth_des.c +++ b/sunrpc/svcauth_des.c @@ -1,35 +1,33 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * Copyright (c) 1988 by Sun Microsystems, Inc. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * Copyright (c) 1988 by Sun Microsystems, Inc. - */ -/* * svcauth_des.c, server-side des authentication * * We insure for the service the following: diff --git a/sunrpc/xcrypt.c b/sunrpc/xcrypt.c index ea8ff45105..f430a1dab6 100644 --- a/sunrpc/xcrypt.c +++ b/sunrpc/xcrypt.c @@ -1,34 +1,32 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (c) 1986-1991 by Sun Microsystems Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * Copyright (c) 1986-1991 by Sun Microsystems Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #if 0 diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index 8a70d2e557..c5e961f52b 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -1,40 +1,34 @@ -/* @(#)xdr.c 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr.c, Generic XDR routines implementation. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1986, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)xdr.c 1.35 87/08/12"; -#endif - -/* - * xdr.c, Generic XDR routines implementation. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1986, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * These are the "generic" xdr routines used to serialize and de-serialize * most common data items. See xdr.h for more info on the interface to diff --git a/sunrpc/xdr_array.c b/sunrpc/xdr_array.c index e7c8925f5c..02728b08f6 100644 --- a/sunrpc/xdr_array.c +++ b/sunrpc/xdr_array.c @@ -1,43 +1,37 @@ -/* @(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr_array.c, Generic XDR routines implementation. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * xdr_array.c, Generic XDR routines implementation. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * These are the "non-trivial" xdr primitives used to serialize and de-serialize - * arrays. See xdr.h for more info on the interface to xdr. + * These are the "non-trivial" xdr primitives used to serialize and + * de-serialize arrays. See xdr.h for more info on the interface to xdr. */ #include diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c index 0a7d9707d5..75dc70ca93 100644 --- a/sunrpc/xdr_float.c +++ b/sunrpc/xdr_float.c @@ -1,40 +1,34 @@ -/* @(#)xdr_float.c 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr_float.c, Generic XDR routines implementation. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro"; -#endif - -/* - * xdr_float.c, Generic XDR routines implementation. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * These are the "floating point" xdr routines used to (de)serialize * most common data items. See xdr.h for more info on the interface to diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c index 7b1261bbae..f9a0b1495d 100644 --- a/sunrpc/xdr_mem.c +++ b/sunrpc/xdr_mem.c @@ -1,41 +1,38 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr_mem.h, XDR implementation using memory buffers. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * xdr_mem.h, XDR implementation using memory buffers. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * If you have some data to be interpreted as external data representation * or to be converted to external data representation in a memory buffer, * then this is the package for you. - * */ #include diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c index 6854034c63..a66462c599 100644 --- a/sunrpc/xdr_rec.c +++ b/sunrpc/xdr_rec.c @@ -1,38 +1,36 @@ -/* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - /* * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking" * layer above tcp (for rpc's use). * * Copyright (C) 1984, Sun Microsystems, Inc. * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * These routines interface XDRSTREAMS to a tcp/ip connection. * There is a record marking layer between the xdr stream * and the tcp transport level. A record is composed on one or more diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c index 532804fadb..e2acb84754 100644 --- a/sunrpc/xdr_ref.c +++ b/sunrpc/xdr_ref.c @@ -1,43 +1,37 @@ -/* @(#)xdr_reference.c 2.1 88/07/29 4.0 RPCSRC */ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr_reference.c, Generic XDR routines implementation. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright (C) 1987, Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -#if !defined(lint) && defined(SCCSIDS) -static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI"; -#endif - -/* - * xdr_reference.c, Generic XDR routines implementation. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright (C) 1987, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * These are the "non-trivial" xdr primitives used to serialize and de-serialize - * "pointers". See xdr.h for more info on the interface to xdr. + * These are the "non-trivial" xdr primitives used to serialize and + * de-serialize "pointers". See xdr.h for more info on the interface to xdr. */ #include diff --git a/sunrpc/xdr_sizeof.c b/sunrpc/xdr_sizeof.c index dc3e19ebe3..d4bada3c4d 100644 --- a/sunrpc/xdr_sizeof.c +++ b/sunrpc/xdr_sizeof.c @@ -1,35 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * xdr_sizeof.c * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Copyright 1990 Sun Microsystems, Inc. * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ -/* - * xdr_sizeof.c + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Copyright 1990 Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * General purpose routine to see how much space something will use * when serialized using XDR. diff --git a/sunrpc/xdr_stdio.c b/sunrpc/xdr_stdio.c index e73c5a5202..f58465a186 100644 --- a/sunrpc/xdr_stdio.c +++ b/sunrpc/xdr_stdio.c @@ -1,36 +1,34 @@ /* - * Sun RPC is a product of Sun Microsystems, Inc. and is provided for - * unrestricted use provided that this legend is included on all tape - * media and as a part of the software program in whole or part. Users - * may copy or modify Sun RPC without charge, but are not authorized - * to license or distribute it to anyone else except as part of a product or - * program developed by the user. - * - * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE - * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. + * xdr_stdio.c, XDR implementation on standard i/o file. * - * Sun RPC is provided with no support and without any obligation on the - * part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. + * Copyright (C) 1984, Sun Microsystems, Inc. * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC - * OR ANY PART THEREOF. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * xdr_stdio.c, XDR implementation on standard i/o file. - * - * Copyright (C) 1984, Sun Microsystems, Inc. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This set of routines implements a XDR on a stdio stream. * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes From a2292378d0d629c26edfae6b197efbdb362a7094 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 21 May 2009 18:15:26 -0700 Subject: [PATCH 36/76] Correct socketcall argument for accept4. The header had the old name (paccept). --- ChangeLog | 7 ++++++- sysdeps/unix/sysv/linux/socketcall.h | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 001ae9012c..057e6cd699 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-21 Jakub Jelinek + + * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_paccept): Remove. + (SOCKOP_accept4): Define. + 2009-05-20 Ulrich Drepper Sun approved the change of the license. @@ -100,7 +105,7 @@ * sysdeps/sh/____longjmp_chk.S: New file. * sysdeps/sh/sh3/__longjmp.S: If CHECK_SP is defined, use it. * sysdeps/sh/sh4/__longjmp.S: Likewise. - + 2009-05-18 Jakub Jelinek Ulrich Drepper diff --git a/sysdeps/unix/sysv/linux/socketcall.h b/sysdeps/unix/sysv/linux/socketcall.h index 24ec9ee2ac..adf01b6e10 100644 --- a/sysdeps/unix/sysv/linux/socketcall.h +++ b/sysdeps/unix/sysv/linux/socketcall.h @@ -1,5 +1,5 @@ /* ID for functions called via socketcall system call. - Copyright (C) 1995, 1996, 2008 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 2008, 2009 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 @@ -43,6 +43,6 @@ #define SOCKOP_getsockopt 15 #define SOCKOP_sendmsg 16 #define SOCKOP_recvmsg 17 -#define SOCKOP_paccept 18 +#define SOCKOP_accept4 18 #endif /* sys/socketcall.h */ From d14eda9310125ddf8fe66df01bbe46ab7d226a5e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 21 May 2009 18:16:59 -0700 Subject: [PATCH 37/76] Remove __NR_accept4 definition. This definition was meant to be removed before the checkin. It was used in the development. --- ChangeLog | 2 ++ sysdeps/unix/sysv/linux/accept4.c | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 057e6cd699..a88d8e990c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-05-21 Jakub Jelinek + * sysdeps/unix/sysv/linux/accept4.c (__NR_accept4): Don't define. + * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_paccept): Remove. (SOCKOP_accept4): Define. diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c index 97f7b8ce62..4be710f76d 100644 --- a/sysdeps/unix/sysv/linux/accept4.c +++ b/sysdeps/unix/sysv/linux/accept4.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2008. @@ -24,8 +24,6 @@ #include #include -#define __NR_accept4 288 - #ifdef __NR_accept4 int From 3533b1a6a6a6b7e350b7a9459f8152b1f9f0364a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 21 May 2009 18:23:57 -0700 Subject: [PATCH 38/76] Don't define __ASSUME_ACCEPT4 for IA-64. --- ChangeLog | 5 +++++ sysdeps/unix/sysv/linux/kernel-features.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a88d8e990c..5ff02794b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/kernel-features.h: Don't define + __ASSUME_ACCEPT4 for IA-64. + 2009-05-21 Jakub Jelinek * sysdeps/unix/sysv/linux/accept4.c (__NR_accept4): Don't define. diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 473360a13c..4562515790 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -521,7 +521,7 @@ /* Support for the accept4 syscall was added in 2.6.28. */ #if __LINUX_KERNEL_VERSION >= 0x02061c \ && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \ - || defined __ia64__ || defined __sparc__ || defined __s390__) + || defined __sparc__ || defined __s390__) # define __ASSUME_ACCEPT4 1 #endif From e7535de78f5e027e91cab6d4288a45b03ba0097f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 21 May 2009 18:38:11 -0700 Subject: [PATCH 39/76] Add missing .text directives. The ____longjmp_chk functions on x86 and x86-64 were placed in .rodata.str1.1. --- ChangeLog | 5 +++++ sysdeps/i386/__longjmp.S | 1 + sysdeps/x86_64/__longjmp.S | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5ff02794b5..bbd282c08c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-21 H.J. Lu + + * sysdeps/i386/__longjmp.S: Add .text. + * sysdeps/x86_64/__longjmp.S: Likewise. + 2009-05-21 Ulrich Drepper * sysdeps/unix/sysv/linux/kernel-features.h: Don't define diff --git a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S index 15c9e55ec7..8b0732056a 100644 --- a/sysdeps/i386/__longjmp.S +++ b/sysdeps/i386/__longjmp.S @@ -28,6 +28,7 @@ #define JBUF PARMS #define VAL JBUF+PTR_SIZE + .text ENTRY (BP_SYM (__longjmp)) ENTER diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S index 7649e99242..24552ece37 100644 --- a/sysdeps/x86_64/__longjmp.S +++ b/sysdeps/x86_64/__longjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2001,2004,2005,2006 Free Software Foundation, Inc. +/* Copyright (C) 2001,2004,2005,2006,2009 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,6 +23,7 @@ /* Jump to the position specified by ENV, causing the setjmp call there to return VAL, or 1 if VAL is 0. void __longjmp (__jmp_buf env, int val). */ + .text ENTRY(__longjmp) /* Restore registers. */ movq (JB_RSP*8)(%rdi),%r8 From d2812fc6d26adc7fc74d85079874a8ee944343da Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 21 May 2009 18:43:45 -0700 Subject: [PATCH 40/76] Add ____longjmp_chk support for IA-64. --- ChangeLog | 4 ++++ sysdeps/unix/sysv/linux/ia64/__longjmp.S | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bbd282c08c..5746edee24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-05-21 H.J. Lu + * sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S: New file. + * sysdeps/unix/sysv/linux/ia64/__longjmp.S: If CHECK_RSP is defined, + use it. + * sysdeps/i386/__longjmp.S: Add .text. * sysdeps/x86_64/__longjmp.S: Likewise. diff --git a/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/sysdeps/unix/sysv/linux/ia64/__longjmp.S index aa18fadf9c..2e74904385 100644 --- a/sysdeps/unix/sysv/linux/ia64/__longjmp.S +++ b/sysdeps/unix/sysv/linux/ia64/__longjmp.S @@ -42,7 +42,11 @@ /* __longjmp(__jmp_buf buf, int val) */ LEAF(__longjmp) +#ifdef CHECK_RSP + alloc r8=ar.pfs,2,1,1,0 +#else alloc r8=ar.pfs,2,1,0,0 +#endif mov r27=ar.rsc add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr ;; @@ -70,14 +74,18 @@ LEAF(__longjmp) add r3=8,in0 // r3 <- &jmpbuf.r1 shl r9=r25,r17 ;; + ld8.fill.nta r28=[r2],16 // r28 <- jmpbuf.sp or r25=r8,r9 ;; mov r26=ar.rnat mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12) ;; - ld8.fill.nta sp=[r2],16 // r12 (sp) +#ifdef CHECK_RSP + CHECK_RSP (r28) +#endif ld8.fill.nta gp=[r3],16 // r1 (gp) dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp) + mov sp=r28 // r12 (sp) ;; ld8.nta r16=[r2],16 // caller's unat ld8.nta r17=[r3],16 // fpsr From fa64b7f76b97930cd2aaf7bfd305cac3d925cd8f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 21 May 2009 18:47:59 -0700 Subject: [PATCH 41/76] Fix IA-64 memchr read-ahead. The latest stratcliff extension exposed a bug in the IA-64 memchr which uses non-speculative loads to prefetch data. Change the code to use speculative loads with appropriate fixup. Fixes BZ 10162. --- ChangeLog | 5 +++++ sysdeps/ia64/memchr.S | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5746edee24..4247797ee8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-21 H.J. Lu + + [BZ #10162] + * sysdeps/ia64/memchr.S: Use speculative load. + 2009-05-21 H.J. Lu * sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S: New file. diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S index e9a7ba8230..cd062b2dd5 100644 --- a/sysdeps/ia64/memchr.S +++ b/sysdeps/ia64/memchr.S @@ -96,7 +96,8 @@ ENTRY(__memchr) mov pr.rot = 1 << 16 ;; .l2: (p[0]) mov addr[0] = ret0 -(p[0]) ld8 value[0] = [ret0], 8 +(p[0]) ld8.s value[0] = [ret0], 8 // speculative load +(p[MEMLAT]) chk.s value[MEMLAT], .recovery // check and recovery (p[MEMLAT]) xor aux[0] = value[MEMLAT], chrx8 (p[MEMLAT+1]) czx1.r poschr[0] = aux[1] (p[MEMLAT+2]) cmp.ne p7, p0 = 8, poschr[1] @@ -124,6 +125,20 @@ ENTRY(__memchr) mov ar.lc = saved_lc br.ret.sptk.many b0 +.recovery: + adds ret0 = -((MEMLAT + 1) * 8), ret0;; +(p[MEMLAT+1]) add ret0 = -8, ret0;; +(p[MEMLAT+2]) add ret0 = -8, ret0;; +.l4: + mov addr[MEMLAT+2] = ret0 + ld8 tmp = [ret0];; // load the first unchecked 8byte + xor aux[1] = tmp, chrx8;; + czx1.r poschr[1] = aux[1];; + cmp.ne p7, p0 = 8, poschr[1] +(p7) br.cond.spnt .foundit;; + adds ret0 = 8, ret0 // load the next unchecked 8byte + br.sptk .l4;; + END(__memchr) weak_alias (__memchr, memchr) From 10495c0b0aaa4e8c1af7404d76d95f516fec6907 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 21 May 2009 18:54:05 -0700 Subject: [PATCH 42/76] Handle -g option for IA-64 assembler. --- ChangeLog | 6 +++-- sysdeps/ia64/configure | 54 +++++++++++++++++++++++++++++++++++++++ sysdeps/ia64/configure.in | 35 +++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 sysdeps/ia64/configure create mode 100644 sysdeps/ia64/configure.in diff --git a/ChangeLog b/ChangeLog index 4247797ee8..5ff23eace8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,12 @@ +2009-05-20 H.J. Lu + + * sysdeps/ia64/configure.in: New file. + 2009-05-21 H.J. Lu [BZ #10162] * sysdeps/ia64/memchr.S: Use speculative load. -2009-05-21 H.J. Lu - * sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S: New file. * sysdeps/unix/sysv/linux/ia64/__longjmp.S: If CHECK_RSP is defined, use it. diff --git a/sysdeps/ia64/configure b/sysdeps/ia64/configure new file mode 100644 index 0000000000..88caca5386 --- /dev/null +++ b/sysdeps/ia64/configure @@ -0,0 +1,54 @@ +# This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/ia64. + +echo "$as_me:$LINENO: checking if -g produces usable source locations for assembler-with-cpp" >&5 +echo $ECHO_N "checking if -g produces usable source locations for assembler-with-cpp... $ECHO_C" >&6 +if test "${libc_cv_cpp_asm_debuginfo+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat > conftest.S <&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && { + ac_pattern='conftest\.S' + { ac_try='readelf --debug-dump=line conftest.o | + grep $ac_pattern 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + }; then + libc_cv_cpp_asm_debuginfo=yes +else + libc_cv_cpp_asm_debuginfo=no +fi +rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_cpp_asm_debuginfo" >&5 +echo "${ECHO_T}$libc_cv_cpp_asm_debuginfo" >&6 +if test $libc_cv_cpp_asm_debuginfo = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_CPP_ASM_DEBUGINFO 1 +_ACEOF + +fi diff --git a/sysdeps/ia64/configure.in b/sysdeps/ia64/configure.in new file mode 100644 index 0000000000..887b4cb2ed --- /dev/null +++ b/sysdeps/ia64/configure.in @@ -0,0 +1,35 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/ia64. + +AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp, + libc_cv_cpp_asm_debuginfo, [dnl +cat > conftest.S <&AS_MESSAGE_LOG_FD]) && { + ac_pattern='conftest\.S' + AC_TRY_COMMAND([readelf --debug-dump=line conftest.o | + grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]) + }; then + libc_cv_cpp_asm_debuginfo=yes +else + libc_cv_cpp_asm_debuginfo=no +fi +rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo) +if test $libc_cv_cpp_asm_debuginfo = yes; then + AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO) +fi From be6b2e5cf302f984d8f405c0d40e7a3979c47bc3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 21 May 2009 18:54:47 -0700 Subject: [PATCH 43/76] Add missing file from previous IA-64 longjmp commit. --- .../unix/sysv/linux/ia64/____longjmp_chk.S | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S diff --git a/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S new file mode 100644 index 0000000000..e097c2288e --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S @@ -0,0 +1,48 @@ +/* Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + + .section .rodata.str1.8,"aMS",@progbits,1 + .align 8 +.LC0: + .string "longjmp causes uninitialized stack frame" + + .section .sdata,"aws",@progbits + .align 8 + .type longjmp_msg,@object +longjmp_msg: + data8 .LC0 + .size longjmp_msg, .-longjmp_msg + +#define __longjmp ____longjmp_chk + +#ifdef PIC +# define CALL_FAIL __GI___fortify_fail +#else +# define CALL_FAIL __fortify_fail +#endif + +#define CHECK_RSP(reg) \ + cmp.ltu p0, p8 = reg, r12; \ +(p8) br.cond.dpnt .Lok;; \ + addl r28 = @ltoffx(longjmp_msg#), r1;; \ + ld8.mov r28 = [r28], longjmp_msg#;; \ + ld8 out0 = [r28]; \ + br.call.sptk.many b0 = CALL_FAIL#;; \ +.Lok: + +#include "__longjmp.S" From 1e1dc4e82dd4f31b87440388614c3e4bccdd5f3c Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 22 May 2009 08:25:34 -0700 Subject: [PATCH 44/76] Implement accept4 for more archs using socketcall. So far accept4 was only supported on archs using socketcall for x86. This patch adds support for the remaining archs. --- ChangeLog | 13 +++++++ sysdeps/unix/sysv/linux/Makefile | 4 ++ sysdeps/unix/sysv/linux/accept4.c | 45 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/i386/accept4.S | 4 -- sysdeps/unix/sysv/linux/internal_accept4.S | 14 +++++++ 5 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/internal_accept4.S diff --git a/ChangeLog b/ChangeLog index 5ff23eace8..b5cc481159 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2009-05-22 Jakub Jelinek + + * sysdeps/unix/sysv/linux/accept4.c: Include kernel-features.h. + (accept4): If __NR_accept4 is not defined, but __NR_socketcall + is, either do nothing at all if __ASSUME_ACCEPT4, or + call __internal_accept4 and handle EINVAL -> ENOSYS translation. + * sysdeps/unix/sysv/linux/internal_accept4.S: New file. + * sysdeps/unix/sysv/linux/i386/accept4.S (SOCKOP_accept4): Don't + define. + * sysdeps/unix/sysv/linux/i386/internal_accept4.S: New file. + * sysdeps/unix/sysv/linux/Makefile (sysdep-routines): Add + internal_accept4 in socket directory. + 2009-05-20 H.J. Lu * sysdeps/ia64/configure.in: New file. diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 170c042dd1..cee5d29255 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -11,6 +11,10 @@ ifeq ($(subdir),malloc) CFLAGS-malloc.c += -DMORECORE_CLEARS=2 endif +ifeq ($(subdir),socket) +sysdep_routines += internal_accept4 +endif + ifeq ($(subdir),misc) sysdep_routines += sysctl clone llseek umount umount2 readahead \ setfsuid setfsgid makedev epoll_pwait signalfd \ diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c index 4be710f76d..9ef9f479b0 100644 --- a/sysdeps/unix/sysv/linux/accept4.c +++ b/sysdeps/unix/sysv/linux/accept4.c @@ -23,6 +23,7 @@ #include #include +#include #ifdef __NR_accept4 @@ -41,6 +42,50 @@ accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags) return result; } +#elif defined __NR_socketcall +# ifndef __ASSUME_ACCEPT4 +extern int __internal_accept4 (int fd, __SOCKADDR_ARG addr, + socklen_t *addr_len, int flags) + attribute_hidden; + +static int have_accept4; + +int +accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags) +{ + if (__builtin_expect (have_accept4 >= 0, 1)) + { + int ret = __internal_accept4 (fd, addr, addr_len, flags); + /* The kernel returns -EINVAL for unknown socket operations. + We need to convert that error to an ENOSYS error. */ + if (__builtin_expect (ret < 0, 0) + && have_accept4 == 0 + && errno == EINVAL) + { + /* Try another call, this time with the FLAGS parameter + cleared and an invalid file descriptor. This call will not + cause any harm and it will return immediately. */ + ret = __internal_accept4 (-1, addr, addr_len, 0); + if (errno == EINVAL) + { + have_accept4 = -1; + __set_errno (ENOSYS); + } + else + { + have_accept4 = 1; + __set_errno (EINVAL); + } + return -1; + } + return ret; + } + __set_errno (ENOSYS); + return -1; +} +# else +/* When __ASSUME_ACCEPT4 accept4 is defined in internal_accept4.S. */ +# endif #else int accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags) diff --git a/sysdeps/unix/sysv/linux/i386/accept4.S b/sysdeps/unix/sysv/linux/i386/accept4.S index 087ccc456f..1d05eff7f7 100644 --- a/sysdeps/unix/sysv/linux/i386/accept4.S +++ b/sysdeps/unix/sysv/linux/i386/accept4.S @@ -24,10 +24,6 @@ #define EINVAL 22 #define ENOSYS 38 -#ifndef SOCKOP_accept4 -# define SOCKOP_accept4 18 -#endif - #ifdef __ASSUME_ACCEPT4 # define errlabel SYSCALL_ERROR_LABEL #else diff --git a/sysdeps/unix/sysv/linux/internal_accept4.S b/sysdeps/unix/sysv/linux/internal_accept4.S new file mode 100644 index 0000000000..ffc553624c --- /dev/null +++ b/sysdeps/unix/sysv/linux/internal_accept4.S @@ -0,0 +1,14 @@ +#include +#include +#if !defined __NR_accept4 && defined __NR_socketcall +# define socket accept4 +# ifdef __ASSUME_ACCEPT4 +# define __socket accept4 +# else +# define __socket __internal_accept4 +# endif +# define NARGS 4 +# define NEED_CANCELLATION +# define NO_WEAK_ALIAS +# include +#endif From 0323b051be1bee42592e6813064031aacfd6063d Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 22 May 2009 08:28:20 -0700 Subject: [PATCH 45/76] Add ___longjmp_chk support for powerpc{32,64}. --- ChangeLog | 9 +++++ sysdeps/powerpc/powerpc32/____longjmp_chk.S | 37 ++++++++++++++++++ sysdeps/powerpc/powerpc32/__longjmp-common.S | 12 +++++- .../powerpc/powerpc32/fpu/__longjmp-common.S | 10 ++++- sysdeps/powerpc/powerpc64/____longjmp_chk.S | 39 +++++++++++++++++++ sysdeps/powerpc/powerpc64/__longjmp-common.S | 14 ++++++- 6 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 sysdeps/powerpc/powerpc32/____longjmp_chk.S create mode 100644 sysdeps/powerpc/powerpc64/____longjmp_chk.S diff --git a/ChangeLog b/ChangeLog index b5cc481159..2c1d66ca43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-05-22 Andreas Schwab + + * sysdeps/powerpc/powerpc32/____longjmp_chk.S: New file. + * sysdeps/powerpc/powerpc64/____longjmp_chk.S: New file. + * sysdeps/powerpc/powerpc32/__longjmp-common.S: Use CHECK_SP if + defined. + * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise. + * sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise. + 2009-05-22 Jakub Jelinek * sysdeps/unix/sysv/linux/accept4.c: Include kernel-features.h. diff --git a/sysdeps/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/powerpc/powerpc32/____longjmp_chk.S new file mode 100644 index 0000000000..5c1f648661 --- /dev/null +++ b/sysdeps/powerpc/powerpc32/____longjmp_chk.S @@ -0,0 +1,37 @@ +/* Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "longjmp causes uninitialized stack frame" + .text + +#define __longjmp ____longjmp_chk + +#define CHECK_SP(reg) \ + cmplw reg, r1; \ + bge+ .Lok; \ + lis r3,.LC0@ha; \ + la r3,.LC0@l(r3); \ + bl HIDDEN_JUMPTARGET (__fortify_fail); \ +.Lok: + +#include <__longjmp-common.S> diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S index 2093b7e337..7b1c017837 100644 --- a/sysdeps/powerpc/powerpc32/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S @@ -1,5 +1,5 @@ /* longjmp for PowerPC. - Copyright (C) 1995-1997, 1999-2001, 2003, 2004, 2005, 2006 + Copyright (C) 1995-1997, 1999-2001, 2003, 2004, 2005, 2006, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -31,7 +31,7 @@ ENTRY (BP_SYM (__longjmp)) CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE) -#ifdef PTR_DEMANGLE +#if defined PTR_DEMANGLE || defined CHECK_SP lwz r24,(JB_GPR1*4)(r3) #else lwz r1,(JB_GPR1*4)(r3) @@ -45,8 +45,16 @@ ENTRY (BP_SYM (__longjmp)) lwz r19,((JB_GPRS+5)*4)(r3) lwz r20,((JB_GPRS+6)*4)(r3) #ifdef PTR_DEMANGLE +# ifdef CHECK_SP + PTR_DEMANGLE3 (r24, r24, r25) +# else PTR_DEMANGLE3 (r1, r24, r25) +# endif PTR_DEMANGLE2 (r0, r25) +#endif +#ifdef CHECK_SP + CHECK_SP (r24) + mr r1,r24 #endif mtlr r0 lwz r21,((JB_GPRS+7)*4)(r3) diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S index f9f010fcac..f105815b9c 100644 --- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S @@ -114,7 +114,7 @@ L(aligned_restore_vmx): lvx v31,0,r6 L(no_vmx): #endif -#ifdef PTR_DEMANGLE +#if defined PTR_DEMANGLE || defined CHECK_SP lwz r24,(JB_GPR1*4)(r3) #else lwz r1,(JB_GPR1*4)(r3) @@ -135,8 +135,16 @@ L(no_vmx): lwz r20,((JB_GPRS+6)*4)(r3) lfd fp20,((JB_FPRS+6*2)*4)(r3) #ifdef PTR_DEMANGLE +# ifdef CHECK_SP + PTR_DEMANGLE3 (r24, r24, r25) +# else PTR_DEMANGLE3 (r1, r24, r25) +# endif PTR_DEMANGLE2 (r0, r25) +#endif +#ifdef CHECK_SP + CHECK_SP (r24) + mr r1,r24 #endif mtlr r0 lwz r21,((JB_GPRS+7)*4)(r3) diff --git a/sysdeps/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/powerpc/powerpc64/____longjmp_chk.S new file mode 100644 index 0000000000..56549021aa --- /dev/null +++ b/sysdeps/powerpc/powerpc64/____longjmp_chk.S @@ -0,0 +1,39 @@ +/* Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "longjmp causes uninitialized stack frame" + .section .toc,"aw" +.LC1: + .tc .LC0[TC],.LC0 + .text + +#define __longjmp ____longjmp_chk + +#define CHECK_SP(reg) \ + cmpld reg, r1; \ + bge+ .Lok; \ + ld r3,.LC1@toc(2); \ + bl HIDDEN_JUMPTARGET (__fortify_fail); \ +.Lok: + +#include <__longjmp-common.S> diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S index 19b2849c01..1be1f8f3bb 100644 --- a/sysdeps/powerpc/powerpc64/__longjmp-common.S +++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S @@ -107,11 +107,21 @@ L(aligned_restore_vmx): lvx v31,0,r6 L(no_vmx): #endif -#ifdef PTR_DEMANGLE +#if defined PTR_DEMANGLE || defined CHECK_SP ld r22,(JB_GPR1*8)(r3) - PTR_DEMANGLE3 (r1, r22, r25) #else ld r1,(JB_GPR1*8)(r3) +#endif +#ifdef PTR_DEMANGLE +# ifdef CHECK_SP + PTR_DEMANGLE3 (r22, r22, r25) +# else + PTR_DEMANGLE3 (r1, r22, r25) +# endif +#endif +#ifdef CHECK_SP + CHECK_SP (r22) + mr r1,r22 #endif ld r2,(JB_GPR2*8)(r3) ld r0,(JB_LR*8)(r3) From 38ae768d88c47dd06030104eb3376212b0d8d164 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 22 May 2009 08:35:15 -0700 Subject: [PATCH 46/76] Fix errno for IBM long double. After the last addition to the math test suite PPC routines haven't been adjusted so far. --- ChangeLog | 5 +++++ sysdeps/ieee754/ldbl-128ibm/s_cosl.c | 7 +++++-- sysdeps/ieee754/ldbl-128ibm/s_expm1l.c | 6 +++++- sysdeps/ieee754/ldbl-128ibm/s_sinl.c | 8 ++++++-- sysdeps/ieee754/ldbl-128ibm/s_tanl.c | 8 ++++++-- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c1d66ca43..45be576e1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-05-22 Andreas Schwab + * sysdeps/ieee754/ldbl-128ibm/s_sinl.c: Set errno for ±Inf. + * sysdeps/ieee754/ldbl-128ibm/s_cosl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_tanl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c: Set errno for overflow. + * sysdeps/powerpc/powerpc32/____longjmp_chk.S: New file. * sysdeps/powerpc/powerpc64/____longjmp_chk.S: New file. * sysdeps/powerpc/powerpc32/__longjmp-common.S: Use CHECK_SP if diff --git a/sysdeps/ieee754/ldbl-128ibm/s_cosl.c b/sysdeps/ieee754/ldbl-128ibm/s_cosl.c index 59a8196706..8470850fc8 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_cosl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_cosl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" #include @@ -67,9 +68,11 @@ return __kernel_cosl(x,z); /* cos(Inf or NaN) is NaN */ - else if (ix>=0x7ff0000000000000LL) + else if (ix>=0x7ff0000000000000LL) { + if (ix == 0x7ff0000000000000LL) + __set_errno (EDOM); return x-x; - + } /* argument reduction needed */ else { n = __ieee754_rem_pio2l(x,y); diff --git a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c index 735006575f..f631eddf59 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c @@ -51,6 +51,7 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include "math.h" #include "math_private.h" #include @@ -120,7 +121,10 @@ __expm1l (long double x) /* Overflow. */ if (x > maxlog) - return (big * big); + { + __set_errno (ERANGE); + return (big * big); + } /* Minimum value. */ if (x < minarg) diff --git a/sysdeps/ieee754/ldbl-128ibm/s_sinl.c b/sysdeps/ieee754/ldbl-128ibm/s_sinl.c index 8cc592c612..bd72225e18 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_sinl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_sinl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" #include @@ -67,8 +68,11 @@ return __kernel_sinl(x,z,0); /* sin(Inf or NaN) is NaN */ - else if (ix>=0x7ff0000000000000LL) return x-x; - + else if (ix>=0x7ff0000000000000LL) { + if (ix == 0x7ff0000000000000LL) + __set_errno (EDOM); + return x-x; + } /* argument reduction needed */ else { n = __ieee754_rem_pio2l(x,y); diff --git a/sysdeps/ieee754/ldbl-128ibm/s_tanl.c b/sysdeps/ieee754/ldbl-128ibm/s_tanl.c index ea5a7f0ffb..913f38f243 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_tanl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_tanl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" #include @@ -66,8 +67,11 @@ if(ix <= 0x3fe921fb54442d10LL) return __kernel_tanl(x,z,1); /* tanl(Inf or NaN) is NaN */ - else if (ix>=0x7ff0000000000000LL) return x-x; /* NaN */ - + else if (ix>=0x7ff0000000000000LL) { + if (ix == 0x7ff0000000000000LL) + __set_errno (EDOM); + return x-x; /* NaN */ + } /* argument reduction needed */ else { n = __ieee754_rem_pio2l(x,y); From 57be3fd79a418b14e417e9a6b96f05dcb99932ee Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 22 May 2009 09:07:00 -0700 Subject: [PATCH 47/76] Describe nss_dns parallel lookup workaround in 2.10 NEWS. --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 9ba8f3579c..5393e73ee7 100644 --- a/NEWS +++ b/NEWS @@ -53,6 +53,13 @@ Version 2.10 * Handling for group shadow files has been added. Implemented by Ulrich Drepper. +* DNS IPv4-IPv6 parallel lookup now deals better with broken DNS + servers (the case, e.g., for some people using the built-in DNS + server in ADSL modems/routers). There is a once-per-process timeout + in case of a broken server. To avoid it, users can run nscd or put + 'options single-request' in /etc/resolv.conf. + Implemented by Ulrich Drepper. + Version 2.9 From 8ee84bd01f85b5ab1430750270b7e51a967d03eb Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Wed, 27 May 2009 16:41:00 -0700 Subject: [PATCH 48/76] [BZ #10200] * db-symbols.awk: Use the last field for the symbol name instead of the 8th one. --- nptl_db/ChangeLog | 6 ++++++ nptl_db/db-symbols.awk | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/nptl_db/ChangeLog b/nptl_db/ChangeLog index 8c07d9f32f..1ade1968a7 100644 --- a/nptl_db/ChangeLog +++ b/nptl_db/ChangeLog @@ -1,3 +1,9 @@ +2009-05-25 Aurelien Jarno + + [BZ #10200] + * db-symbols.awk: Use the last field for the symbol name instead + of the 8th one. + 2009-03-19 Roland McGrath * td_symbol_list.c (DB_LOOKUP_NAME, DB_LOOKUP_NAME_TH_UNIQUE): diff --git a/nptl_db/db-symbols.awk b/nptl_db/db-symbols.awk index 33272138f7..f9a91b93bf 100644 --- a/nptl_db/db-symbols.awk +++ b/nptl_db/db-symbols.awk @@ -14,7 +14,7 @@ NF == 0 { in_symtab=0; next } !in_symtab { next } -NF >= 8 && $7 != "UND" { seen[$8] = 1 } +NF >= 8 && $7 != "UND" { seen[$NF] = 1 } END { status = 0; From 1de0c16183cf5f485ad44b6e5300844ec961b225 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 May 2009 11:53:36 -0700 Subject: [PATCH 49/76] Compact cache info data structure for x86/x86-64. This saves about 1.5kB in the DSO. --- ChangeLog | 6 + sysdeps/unix/sysv/linux/i386/sysconf.c | 156 ++++++++++++------------- sysdeps/x86_64/cacheinfo.c | 154 ++++++++++++------------ 3 files changed, 161 insertions(+), 155 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45be576e1d..bc80958128 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-29 Ulrich Drepper + + * sysdeps/x86_64/cacheinfo.c: Compact intel_02_known array. Adjust + code accessing it. + * sysdeps/unix/sysv/linux/i386/sysconf.c: Likewise. + 2009-05-22 Andreas Schwab * sysdeps/ieee754/ldbl-128ibm/s_sinl.c: Set errno for ±Inf. diff --git a/sysdeps/unix/sysv/linux/i386/sysconf.c b/sysdeps/unix/sysv/linux/i386/sysconf.c index f59e0c3fad..efe1a639cd 100644 --- a/sysdeps/unix/sysv/linux/i386/sysconf.c +++ b/sysdeps/unix/sysv/linux/i386/sysconf.c @@ -1,5 +1,5 @@ /* Get file-specific information about a file. Linux version. - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2007, 2009 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 @@ -67,76 +67,77 @@ handle_i486 (int name) static const struct intel_02_cache_info { - unsigned int idx; - int name; - long int size; - long int assoc; - long int linesize; -} intel_02_known[] = + unsigned char idx; + unsigned char assoc; + unsigned char linesize; + unsigned char rel_name; + unsigned int size; +} intel_02_known [] = { - { 0x06, _SC_LEVEL1_ICACHE_SIZE, 8192, 4, 32 }, - { 0x08, _SC_LEVEL1_ICACHE_SIZE, 16384, 4, 32 }, - { 0x09, _SC_LEVEL1_ICACHE_SIZE, 32768, 4, 32 }, - { 0x0a, _SC_LEVEL1_DCACHE_SIZE, 8192, 2, 32 }, - { 0x0c, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 32 }, - { 0x0d, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, - { 0x21, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, - { 0x22, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, - { 0x23, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, - { 0x25, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, - { 0x29, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 }, - { 0x2c, _SC_LEVEL1_DCACHE_SIZE, 32768, 8, 64 }, - { 0x30, _SC_LEVEL1_ICACHE_SIZE, 32768, 8, 64 }, - { 0x39, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 64 }, - { 0x3a, _SC_LEVEL2_CACHE_SIZE, 196608, 6, 64 }, - { 0x3b, _SC_LEVEL2_CACHE_SIZE, 131072, 2, 64 }, - { 0x3c, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 64 }, - { 0x3d, _SC_LEVEL2_CACHE_SIZE, 393216, 6, 64 }, - { 0x3e, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 }, - { 0x3f, _SC_LEVEL2_CACHE_SIZE, 262144, 2, 64 }, - { 0x41, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 32 }, - { 0x42, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 32 }, - { 0x43, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 32 }, - { 0x44, _SC_LEVEL2_CACHE_SIZE, 1048576, 4, 32 }, - { 0x45, _SC_LEVEL2_CACHE_SIZE, 2097152, 4, 32 }, - { 0x46, _SC_LEVEL3_CACHE_SIZE, 4194304, 4, 64 }, - { 0x47, _SC_LEVEL3_CACHE_SIZE, 8388608, 8, 64 }, - { 0x48, _SC_LEVEL2_CACHE_SIZE, 3145728, 12, 64 }, - { 0x49, _SC_LEVEL2_CACHE_SIZE, 4194304, 16, 64 }, - { 0x4a, _SC_LEVEL3_CACHE_SIZE, 6291456, 12, 64 }, - { 0x4b, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 }, - { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 }, - { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 }, - { 0x4e, _SC_LEVEL2_CACHE_SIZE, 6291456, 24, 64 }, - { 0x60, _SC_LEVEL1_DCACHE_SIZE, 16384, 8, 64 }, - { 0x66, _SC_LEVEL1_DCACHE_SIZE, 8192, 4, 64 }, - { 0x67, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, - { 0x68, _SC_LEVEL1_DCACHE_SIZE, 32768, 4, 64 }, - { 0x78, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0x79, _SC_LEVEL2_CACHE_SIZE, 131072, 8, 64 }, - { 0x7a, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, - { 0x7b, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 64 }, - { 0x7c, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0x7d, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 64 }, - { 0x7f, _SC_LEVEL2_CACHE_SIZE, 524288, 2, 64 }, - { 0x82, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 32 }, - { 0x83, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 32 }, - { 0x84, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 32 }, - { 0x85, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 32 }, - { 0x86, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 }, - { 0x87, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0xd0, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, - { 0xd1, _SC_LEVEL3_CACHE_SIZE, 1048576, 4, 64 }, - { 0xd2, _SC_LEVEL3_CACHE_SIZE, 2097152, 4, 64 }, - { 0xd6, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, - { 0xd7, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, - { 0xd8, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 }, - { 0xdc, _SC_LEVEL3_CACHE_SIZE, 2097152, 12, 64 }, - { 0xdd, _SC_LEVEL3_CACHE_SIZE, 4194304, 12, 64 }, - { 0xde, _SC_LEVEL3_CACHE_SIZE, 8388608, 12, 64 }, - { 0xe3, _SC_LEVEL3_CACHE_SIZE, 2097152, 16, 64 }, - { 0xe3, _SC_LEVEL3_CACHE_SIZE, 4194304, 16, 64 }, - { 0xe4, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 }, +#define M(sc) ((sc) - _SC_LEVEL1_ICACHE_SIZE) + { 0x06, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 8192 }, + { 0x08, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 16384 }, + { 0x09, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 32768 }, + { 0x0a, 2, 32, M(_SC_LEVEL1_DCACHE_SIZE), 8192 }, + { 0x0c, 4, 32, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x0d, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x21, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x22, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 524288 }, + { 0x23, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0x25, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0x29, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0x2c, 8, 64, M(_SC_LEVEL1_DCACHE_SIZE), 32768 }, + { 0x30, 8, 64, M(_SC_LEVEL1_ICACHE_SIZE), 32768 }, + { 0x39, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x3a, 6, 64, M(_SC_LEVEL2_CACHE_SIZE), 196608 }, + { 0x3b, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x3c, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x3d, 6, 64, M(_SC_LEVEL2_CACHE_SIZE), 393216 }, + { 0x3e, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x3f, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x41, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x42, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x43, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x44, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x45, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x46, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0x47, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0x48, 12, 64, M(_SC_LEVEL2_CACHE_SIZE), 3145728 }, + { 0x49, 16, 64, M(_SC_LEVEL2_CACHE_SIZE), 4194304 }, + { 0x4a, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 6291456 }, + { 0x4b, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0x4c, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 12582912 }, + { 0x4d, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 16777216 }, + { 0x4e, 24, 64, M(_SC_LEVEL2_CACHE_SIZE), 6291456 }, + { 0x60, 8, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x66, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 8192 }, + { 0x67, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x68, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 32768 }, + { 0x78, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x79, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x7a, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x7b, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x7c, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x7d, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x7f, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x82, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x83, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x84, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x85, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x86, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x87, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0xd0, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 524288 }, + { 0xd1, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0xd2, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xd6, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0xd7, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xd8, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xdc, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xdd, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xde, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0xe3, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xe3, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xe4, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, }; #define nintel_02_known (sizeof (intel_02_known) / sizeof (intel_02_known[0])) @@ -168,8 +169,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, /* Fold the name. The _SC_ constants are always in the order SIZE, ASSOC, LINESIZE. */ - int folded_name = (_SC_LEVEL1_ICACHE_SIZE - + ((name - _SC_LEVEL1_ICACHE_SIZE) / 3) * 3); + int folded_rel_name = (M(name) / 3) * 3; while (value != 0) { @@ -179,13 +179,13 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, { *no_level_2_or_3 = true; - if (folded_name == _SC_LEVEL3_CACHE_SIZE) + if (folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) /* No need to look further. */ break; } else { - if (byte == 0x49 && folded_name == _SC_LEVEL3_CACHE_SIZE) + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) { /* Intel reused this value. For family 15, model 6 it specifies the 3rd level cache. Otherwise the 2nd @@ -208,7 +208,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, the caller asked for the level 2 cache. */ name = (_SC_LEVEL2_CACHE_SIZE + (name - _SC_LEVEL3_CACHE_SIZE)); - folded_name = _SC_LEVEL3_CACHE_SIZE; + folded_rel_name = M(_SC_LEVEL2_CACHE_SIZE); } } @@ -220,9 +220,9 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, sizeof (intel_02_known[0]), intel_02_known_compare); if (found != NULL) { - if (found->name == folded_name) + if (found->rel_name == folded_rel_name) { - unsigned int offset = name - folded_name; + unsigned int offset = M(name) - folded_rel_name; if (offset == 0) /* Cache size. */ @@ -234,7 +234,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, return found->linesize; } - if (found->name == _SC_LEVEL2_CACHE_SIZE) + if (found->rel_name == M(_SC_LEVEL2_CACHE_SIZE)) *has_level_2 = true; } } diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c index 1ec4ca19c9..cd192caad8 100644 --- a/sysdeps/x86_64/cacheinfo.c +++ b/sysdeps/x86_64/cacheinfo.c @@ -1,5 +1,5 @@ /* x86_64 cache info. - Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2007, 2009 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 @@ -29,76 +29,77 @@ static const struct intel_02_cache_info { - unsigned int idx; - int name; - long int size; - long int assoc; - long int linesize; + unsigned char idx; + unsigned char assoc; + unsigned char linesize; + unsigned char rel_name; + unsigned int size; } intel_02_known [] = { - { 0x06, _SC_LEVEL1_ICACHE_SIZE, 8192, 4, 32 }, - { 0x08, _SC_LEVEL1_ICACHE_SIZE, 16384, 4, 32 }, - { 0x09, _SC_LEVEL1_ICACHE_SIZE, 32768, 4, 32 }, - { 0x0a, _SC_LEVEL1_DCACHE_SIZE, 8192, 2, 32 }, - { 0x0c, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 32 }, - { 0x0d, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, - { 0x21, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, - { 0x22, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, - { 0x23, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, - { 0x25, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, - { 0x29, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 }, - { 0x2c, _SC_LEVEL1_DCACHE_SIZE, 32768, 8, 64 }, - { 0x30, _SC_LEVEL1_ICACHE_SIZE, 32768, 8, 64 }, - { 0x39, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 64 }, - { 0x3a, _SC_LEVEL2_CACHE_SIZE, 196608, 6, 64 }, - { 0x3b, _SC_LEVEL2_CACHE_SIZE, 131072, 2, 64 }, - { 0x3c, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 64 }, - { 0x3d, _SC_LEVEL2_CACHE_SIZE, 393216, 6, 64 }, - { 0x3e, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 }, - { 0x3f, _SC_LEVEL2_CACHE_SIZE, 262144, 2, 64 }, - { 0x41, _SC_LEVEL2_CACHE_SIZE, 131072, 4, 32 }, - { 0x42, _SC_LEVEL2_CACHE_SIZE, 262144, 4, 32 }, - { 0x43, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 32 }, - { 0x44, _SC_LEVEL2_CACHE_SIZE, 1048576, 4, 32 }, - { 0x45, _SC_LEVEL2_CACHE_SIZE, 2097152, 4, 32 }, - { 0x46, _SC_LEVEL3_CACHE_SIZE, 4194304, 4, 64 }, - { 0x47, _SC_LEVEL3_CACHE_SIZE, 8388608, 8, 64 }, - { 0x48, _SC_LEVEL2_CACHE_SIZE, 3145728, 12, 64 }, - { 0x49, _SC_LEVEL2_CACHE_SIZE, 4194304, 16, 64 }, - { 0x4a, _SC_LEVEL3_CACHE_SIZE, 6291456, 12, 64 }, - { 0x4b, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 }, - { 0x4c, _SC_LEVEL3_CACHE_SIZE, 12582912, 12, 64 }, - { 0x4d, _SC_LEVEL3_CACHE_SIZE, 16777216, 16, 64 }, - { 0x4e, _SC_LEVEL2_CACHE_SIZE, 6291456, 24, 64 }, - { 0x60, _SC_LEVEL1_DCACHE_SIZE, 16384, 8, 64 }, - { 0x66, _SC_LEVEL1_DCACHE_SIZE, 8192, 4, 64 }, - { 0x67, _SC_LEVEL1_DCACHE_SIZE, 16384, 4, 64 }, - { 0x68, _SC_LEVEL1_DCACHE_SIZE, 32768, 4, 64 }, - { 0x78, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0x79, _SC_LEVEL2_CACHE_SIZE, 131072, 8, 64 }, - { 0x7a, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 64 }, - { 0x7b, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 64 }, - { 0x7c, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0x7d, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 64 }, - { 0x7f, _SC_LEVEL2_CACHE_SIZE, 524288, 2, 64 }, - { 0x82, _SC_LEVEL2_CACHE_SIZE, 262144, 8, 32 }, - { 0x83, _SC_LEVEL2_CACHE_SIZE, 524288, 8, 32 }, - { 0x84, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 32 }, - { 0x85, _SC_LEVEL2_CACHE_SIZE, 2097152, 8, 32 }, - { 0x86, _SC_LEVEL2_CACHE_SIZE, 524288, 4, 64 }, - { 0x87, _SC_LEVEL2_CACHE_SIZE, 1048576, 8, 64 }, - { 0xd0, _SC_LEVEL3_CACHE_SIZE, 524288, 4, 64 }, - { 0xd1, _SC_LEVEL3_CACHE_SIZE, 1048576, 4, 64 }, - { 0xd2, _SC_LEVEL3_CACHE_SIZE, 2097152, 4, 64 }, - { 0xd6, _SC_LEVEL3_CACHE_SIZE, 1048576, 8, 64 }, - { 0xd7, _SC_LEVEL3_CACHE_SIZE, 2097152, 8, 64 }, - { 0xd8, _SC_LEVEL3_CACHE_SIZE, 4194304, 8, 64 }, - { 0xdc, _SC_LEVEL3_CACHE_SIZE, 2097152, 12, 64 }, - { 0xdd, _SC_LEVEL3_CACHE_SIZE, 4194304, 12, 64 }, - { 0xde, _SC_LEVEL3_CACHE_SIZE, 8388608, 12, 64 }, - { 0xe3, _SC_LEVEL3_CACHE_SIZE, 2097152, 16, 64 }, - { 0xe3, _SC_LEVEL3_CACHE_SIZE, 4194304, 16, 64 }, - { 0xe4, _SC_LEVEL3_CACHE_SIZE, 8388608, 16, 64 }, +#define M(sc) ((sc) - _SC_LEVEL1_ICACHE_SIZE) + { 0x06, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 8192 }, + { 0x08, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 16384 }, + { 0x09, 4, 32, M(_SC_LEVEL1_ICACHE_SIZE), 32768 }, + { 0x0a, 2, 32, M(_SC_LEVEL1_DCACHE_SIZE), 8192 }, + { 0x0c, 4, 32, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x0d, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x21, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x22, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 524288 }, + { 0x23, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0x25, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0x29, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0x2c, 8, 64, M(_SC_LEVEL1_DCACHE_SIZE), 32768 }, + { 0x30, 8, 64, M(_SC_LEVEL1_ICACHE_SIZE), 32768 }, + { 0x39, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x3a, 6, 64, M(_SC_LEVEL2_CACHE_SIZE), 196608 }, + { 0x3b, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x3c, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x3d, 6, 64, M(_SC_LEVEL2_CACHE_SIZE), 393216 }, + { 0x3e, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x3f, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x41, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x42, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x43, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x44, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x45, 4, 32, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x46, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0x47, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0x48, 12, 64, M(_SC_LEVEL2_CACHE_SIZE), 3145728 }, + { 0x49, 16, 64, M(_SC_LEVEL2_CACHE_SIZE), 4194304 }, + { 0x4a, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 6291456 }, + { 0x4b, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0x4c, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 12582912 }, + { 0x4d, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 16777216 }, + { 0x4e, 24, 64, M(_SC_LEVEL2_CACHE_SIZE), 6291456 }, + { 0x60, 8, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x66, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 8192 }, + { 0x67, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x68, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 32768 }, + { 0x78, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x79, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 131072 }, + { 0x7a, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x7b, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x7c, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x7d, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x7f, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x82, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, + { 0x83, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x84, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0x85, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, + { 0x86, 4, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x87, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, + { 0xd0, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 524288 }, + { 0xd1, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0xd2, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xd6, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, + { 0xd7, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xd8, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xdc, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xdd, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xde, 12, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, + { 0xe3, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 2097152 }, + { 0xe3, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 4194304 }, + { 0xe4, 16, 64, M(_SC_LEVEL3_CACHE_SIZE), 8388608 }, }; #define nintel_02_known (sizeof (intel_02_known) / sizeof (intel_02_known [0])) @@ -130,8 +131,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, /* Fold the name. The _SC_ constants are always in the order SIZE, ASSOC, LINESIZE. */ - int folded_name = (_SC_LEVEL1_ICACHE_SIZE - + ((name - _SC_LEVEL1_ICACHE_SIZE) / 3) * 3); + int folded_rel_name = (M(name) / 3) * 3; while (value != 0) { @@ -141,13 +141,13 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, { *no_level_2_or_3 = true; - if (folded_name == _SC_LEVEL3_CACHE_SIZE) + if (folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) /* No need to look further. */ break; } else { - if (byte == 0x49 && folded_name == _SC_LEVEL3_CACHE_SIZE) + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) { /* Intel reused this value. For family 15, model 6 it specifies the 3rd level cache. Otherwise the 2nd @@ -170,7 +170,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, the caller asked for the level 2 cache. */ name = (_SC_LEVEL2_CACHE_SIZE + (name - _SC_LEVEL3_CACHE_SIZE)); - folded_name = _SC_LEVEL3_CACHE_SIZE; + folded_rel_name = M(_SC_LEVEL2_CACHE_SIZE); } } @@ -182,9 +182,9 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, sizeof (intel_02_known[0]), intel_02_known_compare); if (found != NULL) { - if (found->name == folded_name) + if (found->rel_name == folded_rel_name) { - unsigned int offset = name - folded_name; + unsigned int offset = M(name) - folded_rel_name; if (offset == 0) /* Cache size. */ @@ -196,7 +196,7 @@ intel_check_word (int name, unsigned int value, bool *has_level_2, return found->linesize; } - if (found->name == _SC_LEVEL2_CACHE_SIZE) + if (found->rel_name == M(_SC_LEVEL2_CACHE_SIZE)) *has_level_2 = true; } } From b8bb339f7d684654295aca2dedb69c2c069a7cab Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 May 2009 11:58:04 -0700 Subject: [PATCH 50/76] Implement longjmp checking for s390. --- ChangeLog | 8 +++++ sysdeps/s390/s390-32/____longjmp_chk.c | 41 ++++++++++++++++++++++++++ sysdeps/s390/s390-32/__longjmp.c | 7 ++++- sysdeps/s390/s390-64/____longjmp_chk.c | 41 ++++++++++++++++++++++++++ sysdeps/s390/s390-64/__longjmp.c | 7 ++++- 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 sysdeps/s390/s390-32/____longjmp_chk.c create mode 100644 sysdeps/s390/s390-64/____longjmp_chk.c diff --git a/ChangeLog b/ChangeLog index bc80958128..99ff1e390b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-05-29 Jakub Jelinek + + * sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is + defined, use it. + * sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise. + * sysdeps/s390/s390-32/____longjmp_chk.c: New file. + * sysdeps/s390/s390-64/____longjmp_chk.c: New file. + 2009-05-29 Ulrich Drepper * sysdeps/x86_64/cacheinfo.c: Compact intel_02_known array. Adjust diff --git a/sysdeps/s390/s390-32/____longjmp_chk.c b/sysdeps/s390/s390-32/____longjmp_chk.c new file mode 100644 index 0000000000..c5eb721e0e --- /dev/null +++ b/sysdeps/s390/s390-32/____longjmp_chk.c @@ -0,0 +1,41 @@ +/* Copyright (C) 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek . + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include + +#define __longjmp ____longjmp_chk + +#define CHECK_SP(env, guard) \ + do \ + { \ + uintptr_t cur_sp; \ + uintptr_t new_sp = env->__gregs[9]; \ + __asm ("lr %0, %%r15" : "=r" (cur_sp)); \ + new_sp ^= guard; \ + if (new_sp < cur_sp) \ + __fortify_fail ("longjmp causes uninitialized stack frame"); \ + } while (0) + +#include "__longjmp.c" diff --git a/sysdeps/s390/s390-32/__longjmp.c b/sysdeps/s390/s390-32/__longjmp.c index c47ebbc52a..4abc0ec81c 100644 --- a/sysdeps/s390/s390-32/__longjmp.c +++ b/sysdeps/s390/s390-32/__longjmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2005, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). @@ -33,6 +33,11 @@ __longjmp (__jmp_buf env, int val) #ifdef PTR_DEMANGLE register uintptr_t r3 __asm ("%r3") = THREAD_GET_POINTER_GUARD (); register void *r1 __asm ("%r1") = (void *) env; +# ifdef CHECK_SP + CHECK_SP (env, r3); +# endif +#elif defined CHECK_SP + CHECK_SP (env, 0); #endif /* Restore registers and jump back. */ asm volatile ("ld %%f6,48(%1)\n\t" diff --git a/sysdeps/s390/s390-64/____longjmp_chk.c b/sysdeps/s390/s390-64/____longjmp_chk.c new file mode 100644 index 0000000000..241822ce4a --- /dev/null +++ b/sysdeps/s390/s390-64/____longjmp_chk.c @@ -0,0 +1,41 @@ +/* Copyright (C) 2009 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek . + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include + +#define __longjmp ____longjmp_chk + +#define CHECK_SP(env, guard) \ + do \ + { \ + uintptr_t cur_sp; \ + uintptr_t new_sp = env->__gregs[9]; \ + __asm ("lgr %0, %%r15" : "=r" (cur_sp)); \ + new_sp ^= guard; \ + if (new_sp < cur_sp) \ + __fortify_fail ("longjmp causes uninitialized stack frame"); \ + } while (0) + +#include "__longjmp.c" diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c index 030fb5b515..445bd3baf3 100644 --- a/sysdeps/s390/s390-64/__longjmp.c +++ b/sysdeps/s390/s390-64/__longjmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2005, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). @@ -33,6 +33,11 @@ __longjmp (__jmp_buf env, int val) #ifdef PTR_DEMANGLE register uintptr_t r3 __asm ("%r3") = THREAD_GET_POINTER_GUARD (); register void *r1 __asm ("%r1") = (void *) env; +# ifdef CHECK_SP + CHECK_SP (env, r3); +# endif +#elif defined CHECK_SP + CHECK_SP (env, 0); #endif /* Restore registers and jump back. */ asm volatile ("ld %%f7,104(%1)\n\t" From 7f3394bdf34e28b374e5569a7a74ddac734fb172 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 29 May 2009 12:00:22 -0700 Subject: [PATCH 51/76] Fix errno for boundary conditions in 128-bit long double. Similar to the changes which went already in for the other formats, follow POSIX rules for errno. --- ChangeLog | 11 +++++++++++ sysdeps/ieee754/ldbl-128/s_cosl.c | 10 +++++++++- sysdeps/ieee754/ldbl-128/s_expm1l.c | 6 +++++- sysdeps/ieee754/ldbl-128/s_sinl.c | 10 +++++++++- sysdeps/ieee754/ldbl-128/s_tanl.c | 10 +++++++++- 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 99ff1e390b..b1fec55266 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-05-29 Jakub Jelinek + + * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include . + (__expm1l): Set errno to ERANGE on overflow. + * sysdeps/ieee754/ldbl-128/s_tanl.c: Include . + (__tanl): Set errno to EDOM for ±Inf. + * sysdeps/ieee754/ldbl-128/s_cosl.c: Include . + (__cosl): Set errno to EDOM for ±Inf. + * sysdeps/ieee754/ldbl-128/s_sinl.c: Include . + (__sinl): Set errno to EDOM for ±Inf. + 2009-05-29 Jakub Jelinek * sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is diff --git a/sysdeps/ieee754/ldbl-128/s_cosl.c b/sysdeps/ieee754/ldbl-128/s_cosl.c index d1258b2cf1..ef61c3afdb 100644 --- a/sysdeps/ieee754/ldbl-128/s_cosl.c +++ b/sysdeps/ieee754/ldbl-128/s_cosl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" @@ -66,7 +67,14 @@ return __kernel_cosl(x,z); /* cos(Inf or NaN) is NaN */ - else if (ix>=0x7fff000000000000LL) return x-x; + else if (ix>=0x7fff000000000000LL) { + if (ix == 0x7fff000000000000LL) { + GET_LDOUBLE_LSW64(n,x); + if (n == 0) + __set_errno (EDOM); + } + return x-x; + } /* argument reduction needed */ else { diff --git a/sysdeps/ieee754/ldbl-128/s_expm1l.c b/sysdeps/ieee754/ldbl-128/s_expm1l.c index 78bbe65b53..a82489bb24 100644 --- a/sysdeps/ieee754/ldbl-128/s_expm1l.c +++ b/sysdeps/ieee754/ldbl-128/s_expm1l.c @@ -53,6 +53,7 @@ +#include #include "math.h" #include "math_private.h" @@ -121,7 +122,10 @@ __expm1l (long double x) /* Overflow. */ if (x > maxlog) - return (big * big); + { + __set_errno (ERANGE); + return (big * big); + } /* Minimum value. */ if (x < minarg) diff --git a/sysdeps/ieee754/ldbl-128/s_sinl.c b/sysdeps/ieee754/ldbl-128/s_sinl.c index 446a75f126..dc509e72e5 100644 --- a/sysdeps/ieee754/ldbl-128/s_sinl.c +++ b/sysdeps/ieee754/ldbl-128/s_sinl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" @@ -66,7 +67,14 @@ return __kernel_sinl(x,z,0); /* sin(Inf or NaN) is NaN */ - else if (ix>=0x7fff000000000000LL) return x-x; + else if (ix>=0x7fff000000000000LL) { + if (ix == 0x7fff000000000000LL) { + GET_LDOUBLE_LSW64(n,x); + if (n == 0) + __set_errno (EDOM); + } + return x-x; + } /* argument reduction needed */ else { diff --git a/sysdeps/ieee754/ldbl-128/s_tanl.c b/sysdeps/ieee754/ldbl-128/s_tanl.c index ea9d053d9b..2349da67f1 100644 --- a/sysdeps/ieee754/ldbl-128/s_tanl.c +++ b/sysdeps/ieee754/ldbl-128/s_tanl.c @@ -44,6 +44,7 @@ * TRIG(x) returns trig(x) nearly rounded */ +#include #include "math.h" #include "math_private.h" @@ -65,7 +66,14 @@ if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1); /* tanl(Inf or NaN) is NaN */ - else if (ix>=0x7fff000000000000LL) return x-x; /* NaN */ + else if (ix>=0x7fff000000000000LL) { + if (ix == 0x7fff000000000000LL) { + GET_LDOUBLE_LSW64(n,x); + if (n == 0) + __set_errno (EDOM); + } + return x-x; /* NaN */ + } /* argument reduction needed */ else { From cc3ae2461cf5ced13ab7c7787543f4dd3eabe88c Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 30 May 2009 15:06:51 -0700 Subject: [PATCH 52/76] Remove arch directory names from .gitignore. --- .gitignore | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitignore b/.gitignore index 3b3f0e750f..d9294bec05 100644 --- a/.gitignore +++ b/.gitignore @@ -23,12 +23,7 @@ glibc-* configparms -sun[43]* -i[345]86* -hp300* - ieeetest -hppa-sysdeps regex gpl2lgpl.sed From c16a054d5e20e4da6ccc528b690910a777d69a8b Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 31 May 2009 16:54:28 -0700 Subject: [PATCH 53/76] Move AC_CANONICAL_HOST before first use of $host and $build. --- ChangeLog | 6 ++ configure | 184 +++++++++++++++++++++++++-------------------------- configure.in | 4 +- 3 files changed, 100 insertions(+), 94 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1fec55266..dd08740b51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-05-30 Andreas Schwab + + * configure.in: Move AC_CANONICAL_HOST before first use of $host + and $build. + * configure: Regenerated. + 2009-05-29 Jakub Jelinek * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include . diff --git a/configure b/configure index 755589111e..88cf4fd853 100755 --- a/configure +++ b/configure @@ -726,14 +726,6 @@ base_machine add_on_subdirs add_ons subdirs -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build libc_cv_nss_crypt experimental_malloc multi_arch @@ -756,6 +748,14 @@ CPPFLAGS LDFLAGS CFLAGS CC +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build target_alias host_alias build_alias @@ -2011,6 +2011,90 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3844,90 +3928,6 @@ else fi -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ $as_echo "$as_me:$LINENO: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - - # The way shlib-versions is used to generate soversions.mk uses a # fairly simplistic model for name recognition that can't distinguish # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os diff --git a/configure.in b/configure.in index d54e952d91..6a92bd876a 100644 --- a/configure.in +++ b/configure.in @@ -6,6 +6,8 @@ AC_CONFIG_SRCDIR([include/features.h]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([scripts]) +AC_CANONICAL_HOST + AC_PROG_CC if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) @@ -316,8 +318,6 @@ else fi AC_SUBST(libc_cv_nss_crypt) -AC_CANONICAL_HOST - # The way shlib-versions is used to generate soversions.mk uses a # fairly simplistic model for name recognition that can't distinguish # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os From fd469aac31dc09f1328c8c4b976f887ebd592c56 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 May 2009 17:46:55 -0700 Subject: [PATCH 54/76] Add missing file from accept4 commit. Hidden by previous .gitignore content. --- sysdeps/unix/sysv/linux/i386/internal_accept4.S | 1 + 1 file changed, 1 insertion(+) create mode 100644 sysdeps/unix/sysv/linux/i386/internal_accept4.S diff --git a/sysdeps/unix/sysv/linux/i386/internal_accept4.S b/sysdeps/unix/sysv/linux/i386/internal_accept4.S new file mode 100644 index 0000000000..c3f1630494 --- /dev/null +++ b/sysdeps/unix/sysv/linux/i386/internal_accept4.S @@ -0,0 +1 @@ +/* Not needed, accept4.S has everything. */ From 963cb6fcb47ca212c0c57cc57bd7510f6549579c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 May 2009 17:52:05 -0700 Subject: [PATCH 55/76] Simplify CPUID value handling. SO far Intel and AMD use exactly the same bits meaning the same things in CPUID index 1. Simplify the code. Should an architecture come along which doesn't use the same semantics then it must use a different index value than COMMON_CPUID_INDEX_1. --- ChangeLog | 20 ++++++++++++++++--- sysdeps/x86_64/cacheinfo.c | 8 ++++---- sysdeps/x86_64/multiarch/init-arch.c | 18 +++++++---------- sysdeps/x86_64/multiarch/init-arch.h | 24 ++++++----------------- sysdeps/x86_64/multiarch/sched_cpucount.c | 5 ++--- 5 files changed, 36 insertions(+), 39 deletions(-) diff --git a/ChangeLog b/ChangeLog index dd08740b51..1de4c0dd4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,24 @@ +2009-05-31 Ulrich Drepper + + * sysdeps/x86_64/multiarch/init-arch.h: Define COMMON_CPUID_INDEX_1 + instead of INTEL_CPUID_INDEX_1 and AMD_CPUID_INDEX_1. So far there + are no differences. If an architecture has bits in CPUID index 1 + meaning different things the values for the COMMON_CPUID_INDEX_1 + index must not be set. + (INTEL_HAS_POPCOUNT, AMD_HAS_POPCOUNT): Removed in favor of... + (HAS_POPCOUNT): ...this. New macro. + * sysdeps/x86_64/multiarch/init-arch.c: Use COMMON_CPUID_INDEX_1 + instead of INTEL_CPUID_INDEX_1 and AMD_CPUID_INDEX_1. Unify code + to set the value for Intel and AMD architectures. + * sysdeps/x86_64/cacheinfo.c: Use COMMON_CPUID_INDEX_1 instead of + INTEL_CPUID_INDEX_1. + * sysdeps/x86_64/multiarch/sched_cpucount.c: Adjust for HAS_POPCOUNT + change. + 2009-05-30 Andreas Schwab * configure.in: Move AC_CANONICAL_HOST before first use of $host and $build. - * configure: Regenerated. 2009-05-29 Jakub Jelinek @@ -15,8 +31,6 @@ * sysdeps/ieee754/ldbl-128/s_sinl.c: Include . (__sinl): Set errno to EDOM for ±Inf. -2009-05-29 Jakub Jelinek - * sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is defined, use it. * sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise. diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c index cd192caad8..362687c181 100644 --- a/sysdeps/x86_64/cacheinfo.c +++ b/sysdeps/x86_64/cacheinfo.c @@ -489,10 +489,10 @@ init_cacheinfo (void) } #ifdef USE_MULTIARCH - eax = __cpu_features.cpuid[INTEL_CPUID_INDEX_1].eax; - ebx = __cpu_features.cpuid[INTEL_CPUID_INDEX_1].ebx; - ecx = __cpu_features.cpuid[INTEL_CPUID_INDEX_1].ecx; - edx = __cpu_features.cpuid[INTEL_CPUID_INDEX_1].edx; + eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; + ebx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx; + ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; + edx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx; #else asm volatile ("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c index eb4365fe32..ec0eb29faf 100644 --- a/sysdeps/x86_64/multiarch/init-arch.c +++ b/sysdeps/x86_64/multiarch/init-arch.c @@ -1,6 +1,6 @@ /* Initialize CPU feature data. This file is part of the GNU C Library. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009 Free Software Foundation, Inc. Contributed by Ulrich Drepper . The GNU C Library is free software; you can redistribute it and/or @@ -41,11 +41,12 @@ __init_cpu_features (void) { __cpu_features.kind = arch_kind_intel; + get_common_cpuid: asm volatile ("cpuid" - : "=a" (__cpu_features.cpuid[INTEL_CPUID_INDEX_1].eax), - "=b" (__cpu_features.cpuid[INTEL_CPUID_INDEX_1].ebx), - "=c" (__cpu_features.cpuid[INTEL_CPUID_INDEX_1].ecx), - "=d" (__cpu_features.cpuid[INTEL_CPUID_INDEX_1].edx) + : "=a" (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax), + "=b" (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx), + "=c" (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx), + "=d" (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx) : "0" (1)); } /* This spells out "AuthenticAMD". */ @@ -53,12 +54,7 @@ __init_cpu_features (void) { __cpu_features.kind = arch_kind_amd; - asm volatile ("cpuid" - : "=a" (__cpu_features.cpuid[AMD_CPUID_INDEX_1].eax), - "=b" (__cpu_features.cpuid[AMD_CPUID_INDEX_1].ebx), - "=c" (__cpu_features.cpuid[AMD_CPUID_INDEX_1].ecx), - "=d" (__cpu_features.cpuid[AMD_CPUID_INDEX_1].edx) - : "0" (1)); + goto get_common_cpuid; } else __cpu_features.kind = arch_kind_other; diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h index 86cd83dc4c..40b804571d 100644 --- a/sysdeps/x86_64/multiarch/init-arch.h +++ b/sysdeps/x86_64/multiarch/init-arch.h @@ -1,5 +1,5 @@ /* This file is part of the GNU C Library. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009 Free Software Foundation, Inc. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -20,16 +20,9 @@ enum { - INTEL_CPUID_INDEX_1 = 0, + COMMON_CPUID_INDEX_1 = 0, /* Keep the following line at the end. */ - INTEL_CPUID_INDEX_MAX - }; - -enum - { - AMD_CPUID_INDEX_1 = 0, - /* Keep the following line at the end. */ - AMD_CPUID_INDEX_MAX + COMMON_CPUID_INDEX_MAX }; extern struct cpu_features @@ -48,7 +41,7 @@ extern struct cpu_features unsigned int ebx; unsigned int ecx; unsigned int edx; - } cpuid[MAX (INTEL_CPUID_INDEX_MAX, AMD_CPUID_INDEX_MAX)]; + } cpuid[COMMON_CPUID_INDEX_MAX]; } __cpu_features attribute_hidden; @@ -61,10 +54,5 @@ extern void __init_cpu_features (void) attribute_hidden; /* Following are the feature tests used throughout libc. */ -#define INTEL_HAS_POPCOUNT \ - (__cpu_features.kind == arch_kind_intel \ - && (__cpu_features.cpuid[INTEL_CPUID_INDEX_1].ecx & (1 << 23)) != 0) - -#define AMD_HAS_POPCOUNT \ - (__cpu_features.kind == arch_kind_amd \ - && (__cpu_features.cpuid[AMD_CPUID_INDEX_1].ecx & (1 << 23)) != 0) +#define HAS_POPCOUNT \ + ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & (1 << 23)) != 0) diff --git a/sysdeps/x86_64/multiarch/sched_cpucount.c b/sysdeps/x86_64/multiarch/sched_cpucount.c index dc20182df4..e7f9daed05 100644 --- a/sysdeps/x86_64/multiarch/sched_cpucount.c +++ b/sysdeps/x86_64/multiarch/sched_cpucount.c @@ -1,6 +1,6 @@ /* Count bits in CPU set. x86-64 multi-arch version. This file is part of the GNU C Library. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2009 Free Software Foundation, Inc. Contributed by Ulrich Drepper . The GNU C Library is free software; you can redistribute it and/or @@ -35,8 +35,7 @@ # undef __sched_cpucount libc_ifunc (__sched_cpucount, - INTEL_HAS_POPCOUNT || AMD_HAS_POPCOUNT - ? popcount_cpucount : generic_cpucount); + HAS_POPCOUNT ? popcount_cpucount : generic_cpucount); #else # include_next #endif From 74414708355a922a514d5c76183eca6931c4488a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 May 2009 23:45:33 -0700 Subject: [PATCH 56/76] Finish IFUNC support for x86 and x86-64. Add support for the IRELAIVE relocation and IFUNC in static executables. --- ChangeLog | 27 +++++++++++++++++++++++ csu/elf-init.c | 30 +++++++++++++++++++++++++ elf/elf.h | 6 +++-- include/libc-symbols.h | 17 ++++++++++++++ sysdeps/generic/dl-irel.h | 23 +++++++++++++++++++ sysdeps/i386/dl-irel.h | 44 +++++++++++++++++++++++++++++++++++++ sysdeps/i386/dl-machine.h | 24 ++++++++++++++++++++ sysdeps/x86_64/dl-irel.h | 44 +++++++++++++++++++++++++++++++++++++ sysdeps/x86_64/dl-machine.h | 12 ++++++++++ 9 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 sysdeps/generic/dl-irel.h create mode 100644 sysdeps/i386/dl-irel.h create mode 100644 sysdeps/x86_64/dl-irel.h diff --git a/ChangeLog b/ChangeLog index 1de4c0dd4f..65a9fb7b55 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +2009-05-29 H.J. Lu + + * csu/elf-init.c: Include and if LIBC_NONSHARED + is not defined. + (__rela_iplt_start): New declaration. + (__rela_iplt_end): Likewise. + (__rel_iplt_start): Likewise. + (__rel_iplt_end): Likewise. + (__libc_csu_init): Process __rela_iplt_start and __rel_iplt_start. + * elf/elf.h (R_386_IRELATIVE): New macro. + (R_X86_64_IRELATIVE): New macro. + (R_386_NUM): Updated. + (R_X86_64_NUM): Likewise. + * include/libc-symbols.h (libc_ifunc_hidden_def1): New macro. + (libc_ifunc_hidden_def): New macro. + * sysdeps/generic/dl-irel.h: New file. + * sysdeps/i386/dl-irel.h: New file. + * sysdeps/x86_64/dl-irel.h: New file. + * sysdeps/i386/dl-machine.h (elf_machine_rel): Handle R_386_IRELATIVE. + (elf_machine_rela): Check SHN_UNDEF for STT_GNU_IFUNC symbol. + Handle R_386_IRELATIVE. + (elf_machine_lazy_rel): Handle R_386_IRELATIVE. + (elf_machine_lazy_rela): Likewise. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Handle + R_X86_64_IRELATIVE. + (elf_machine_lazy_rel): Handle R_X86_64_IRELATIVE. + 2009-05-31 Ulrich Drepper * sysdeps/x86_64/multiarch/init-arch.h: Define COMMON_CPUID_INDEX_1 diff --git a/csu/elf-init.c b/csu/elf-init.c index 27eae1550b..5a99a3a400 100644 --- a/csu/elf-init.c +++ b/csu/elf-init.c @@ -36,6 +36,20 @@ #include +#ifndef LIBC_NONSHARED +# include +# include + +# ifdef ELF_MACHINE_IRELA +extern const ElfW(Rela) __rela_iplt_start []; +extern const ElfW(Rela) __rela_iplt_end []; +# endif + +# ifdef ELF_MACHINE_IREL +extern const ElfW(Rel) __rel_iplt_start []; +extern const ElfW(Rel) __rel_iplt_end []; +# endif +#endif /* LIBC_NONSHARED */ /* These magic symbols are provided by the linker. */ extern void (*__preinit_array_start []) (int, char **, char **) @@ -67,6 +81,22 @@ __libc_csu_init (int argc, char **argv, char **envp) the dynamic linker (before initializing any shared object. */ #ifndef LIBC_NONSHARED +# ifdef ELF_MACHINE_IRELA + { + const size_t size = __rela_iplt_end - __rela_iplt_start; + for (size_t i = 0; i < size; i++) + elf_irela (&__rela_iplt_start [i]); + } +# endif + +# ifdef ELF_MACHINE_IREL + { + const size_t size = __rel_iplt_end - __rel_iplt_start; + for (size_t i = 0; i < size; i++) + elf_irel (&__rel_iplt_start [i]); + } +# endif + /* For static executables, preinit happens rights before init. */ { const size_t size = __preinit_array_end - __preinit_array_start; diff --git a/elf/elf.h b/elf/elf.h index 062ef00f57..8fdf74b099 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -1177,8 +1177,9 @@ typedef struct pointer to code and to argument, returning the TLS offset for the symbol. */ +#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */ /* Keep this the last entry. */ -#define R_386_NUM 42 +#define R_386_NUM 43 /* SUN SPARC specific definitions. */ @@ -2625,8 +2626,9 @@ typedef Elf32_Addr Elf32_Conflict; #define R_X86_64_TLSDESC_CALL 35 /* Marker for call through TLS descriptor. */ #define R_X86_64_TLSDESC 36 /* TLS descriptor. */ +#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */ -#define R_X86_64_NUM 37 +#define R_X86_64_NUM 38 /* AM33 relocations. */ diff --git a/include/libc-symbols.h b/include/libc-symbols.h index d53bcb9b77..68da77c58e 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -845,4 +845,21 @@ for linking") } \ __asm__ (".type " #name ", %gnu_indirect_function"); +#ifdef HAVE_ASM_SET_DIRECTIVE +# define libc_ifunc_hidden_def1(local, name) \ + __asm__ (declare_symbol_alias_1_stringify (ASM_GLOBAL_DIRECTIVE) \ + " " #local "\n\t" \ + ".hidden " #local "\n\t" \ + ".set " #local ", " #name); +#else +# define libc_ifunc_hidden_def1(local, name) \ + __asm__ (declare_symbol_alias_1_stringify (ASM_GLOBAL_DIRECTIVE) \ + " " #local "\n\t" \ + ".hidden " #local "\n\t" \ + #local " = " #name); +#endif + +#define libc_ifunc_hidden_def(name) \ + libc_ifunc_hidden_def1 (__GI_##name, name) + #endif /* libc-symbols.h */ diff --git a/sysdeps/generic/dl-irel.h b/sysdeps/generic/dl-irel.h new file mode 100644 index 0000000000..4d7b481e81 --- /dev/null +++ b/sysdeps/generic/dl-irel.h @@ -0,0 +1,23 @@ +/* Machine-dependent ELF indirect relocation inline functions. + Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _DL_IREL_h +#define _DL_IREL_H + +#endif /* dl-irel.h */ diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h new file mode 100644 index 0000000000..4acb862c69 --- /dev/null +++ b/sysdeps/i386/dl-irel.h @@ -0,0 +1,44 @@ +/* Machine-dependent ELF indirect relocation inline functions. + i386 version. + Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _DL_IREL_H +#define _DL_IREL_H + +#include + +#define ELF_MACHINE_IREL 1 + +static inline void +__attribute ((always_inline)) +elf_irel (const Elf32_Rel *reloc) +{ + Elf32_Addr *const reloc_addr = (void *) reloc->r_offset; + const unsigned long int r_type = ELF32_R_TYPE (reloc->r_info); + + if (__builtin_expect (r_type == R_386_IRELATIVE, 1)) + { + Elf64_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) (); + *reloc_addr = value; + } + else + _exit (-1); +} + +#endif /* dl-irel.h */ diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 0e15878d4e..efa929e57f 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -345,6 +345,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; if (sym != NULL + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) value = ((Elf32_Addr (*) (void)) value) (); @@ -471,6 +472,11 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, memcpy (reloc_addr_arg, (void *) value, MIN (sym->st_size, refsym->st_size)); break; + case R_386_IRELATIVE: + value = map->l_addr + *reloc_addr; + value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + break; default: _dl_reloc_bad_type (map, r_type, 0); break; @@ -500,6 +506,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, Elf32_Addr value = sym == NULL ? 0 : sym_map->l_addr + sym->st_value; if (sym != NULL + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) value = ((Elf32_Addr (*) (void)) value) (); @@ -609,6 +616,11 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, MIN (sym->st_size, refsym->st_size)); break; # endif /* !RESOLVE_CONFLICT_FIND_MAP */ + case R_386_IRELATIVE: + value = map->l_addr + reloc->r_addend; + value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + break; default: /* We add these checks in the version to relocate ld.so only if we are still debugging. */ @@ -703,6 +715,12 @@ elf_machine_lazy_rel (struct link_map *map, # endif } } + else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) + { + Elf32_Addr value = map->l_addr + *reloc_addr; + value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + } else _dl_reloc_bad_type (map, r_type, 1); } @@ -726,6 +744,12 @@ elf_machine_lazy_rela (struct link_map *map, td->arg = (void*)reloc; td->entry = _dl_tlsdesc_resolve_rela; } + else if (__builtin_expect (r_type == R_386_IRELATIVE, 0)) + { + Elf32_Addr value = map->l_addr + reloc->r_addend; + value = ((Elf32_Addr (*) (void)) value) (); + *reloc_addr = value; + } else _dl_reloc_bad_type (map, r_type, 1); } diff --git a/sysdeps/x86_64/dl-irel.h b/sysdeps/x86_64/dl-irel.h new file mode 100644 index 0000000000..442ab71d26 --- /dev/null +++ b/sysdeps/x86_64/dl-irel.h @@ -0,0 +1,44 @@ +/* Machine-dependent ELF indirect relocation inline functions. + x86-64 version. + Copyright (C) 2009 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _DL_IREL_H +#define _DL_IREL_H + +#include + +#define ELF_MACHINE_IRELA 1 + +static inline void +__attribute ((always_inline)) +elf_irela (const Elf64_Rela *reloc) +{ + Elf64_Addr *const reloc_addr = (void *) reloc->r_offset; + const unsigned long int r_type = ELF64_R_TYPE (reloc->r_info); + + if (__builtin_expect (r_type == R_X86_64_IRELATIVE, 1)) + { + Elf64_Addr value = ((Elf64_Addr (*) (void)) reloc->r_addend) (); + *reloc_addr = value; + } + else + _exit (-1); +} + +#endif /* dl-irel.h */ diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index 4444ae0a71..1b5ce8e981 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -297,6 +297,7 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, : (Elf64_Addr) sym_map->l_addr + sym->st_value); if (sym != NULL + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)) value = ((Elf64_Addr (*) (void)) value) (); @@ -442,6 +443,11 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, } break; # endif + case R_X86_64_IRELATIVE: + value = map->l_addr + reloc->r_addend; + value = ((Elf64_Addr (*) (void)) value) (); + *reloc_addr = value; + break; default: _dl_reloc_bad_type (map, r_type, 0); break; @@ -488,6 +494,12 @@ elf_machine_lazy_rel (struct link_map *map, td->entry = (void*)(D_PTR (map, l_info[ADDRIDX (DT_TLSDESC_PLT)]) + map->l_addr); } + else if (__builtin_expect (r_type == R_X86_64_IRELATIVE, 0)) + { + Elf64_Addr value = map->l_addr + reloc->r_addend; + value = ((Elf64_Addr (*) (void)) value) (); + *reloc_addr = value; + } else _dl_reloc_bad_type (map, r_type, 1); } From 8ea237293664aed37ab77d53604b01e01bb7ec6f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 May 2009 23:46:42 -0700 Subject: [PATCH 57/76] Fix up sched_cpucount in x86-64. Now that static executables can handle IFUNC functions don't exclude optimization for sched_cpucount for !SHARED. --- ChangeLog | 5 +++++ sysdeps/x86_64/multiarch/sched_cpucount.c | 22 +++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65a9fb7b55..6355577d8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-31 Ulrich Drepper + + * sysdeps/x86_64/multiarch/sched_cpucount.c: Also use optimized code + for !SHARED. + 2009-05-29 H.J. Lu * csu/elf-init.c: Include and if LIBC_NONSHARED diff --git a/sysdeps/x86_64/multiarch/sched_cpucount.c b/sysdeps/x86_64/multiarch/sched_cpucount.c index e7f9daed05..b6f425e948 100644 --- a/sysdeps/x86_64/multiarch/sched_cpucount.c +++ b/sysdeps/x86_64/multiarch/sched_cpucount.c @@ -18,24 +18,20 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#ifdef SHARED -# include -# include "init-arch.h" +#include +#include "init-arch.h" -# define __sched_cpucount static generic_cpucount -# include -# undef __sched_cpucount +#define __sched_cpucount static generic_cpucount +#include +#undef __sched_cpucount -# define POPCNT(l) \ +#define POPCNT(l) \ ({ __cpu_mask r; \ asm ("popcntq %1, %0" : "=r" (r) : "0" (l));\ r; }) -# define __sched_cpucount static popcount_cpucount -# include -# undef __sched_cpucount +#define __sched_cpucount static popcount_cpucount +#include +#undef __sched_cpucount libc_ifunc (__sched_cpucount, HAS_POPCOUNT ? popcount_cpucount : generic_cpucount); -#else -# include_next -#endif From b8706f70723b63d54cdeac0362b5db69db0459e2 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 31 May 2009 23:50:25 -0700 Subject: [PATCH 58/76] Describe latest IFUNC changes. --- NEWS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 5393e73ee7..5ca4e6058d 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2009-5-15 +GNU C Library NEWS -- history of user-visible changes. 2009-5-31 Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc. See the end for copying conditions. @@ -10,6 +10,9 @@ Version 2.11 * checking version of longjmp added that fails if an uninitialized stack frame would be created. Implemented by Ulrich Drepper. +* STT_GNU_IFUNC is now supported in static executables. + Implemented by H.J. Lu. + Version 2.10 From b7629ee33f164b07afd36cccf5f18f693d600251 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 1 Jun 2009 11:39:24 -0700 Subject: [PATCH 59/76] Better error message for invalid relocatio in static binary. --- ChangeLog | 6 ++++++ sysdeps/i386/dl-irel.h | 3 ++- sysdeps/x86_64/dl-irel.h | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6355577d8e..10829a3d21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-06-01 Ulrich Drepper + + * sysdeps/i386/dl-irel.h (elf_irel): Use __libc_fatal instead of just + _exit. + * sysdeps/x86_64/dl-irel.h (elf_irela): Likewise. + 2009-05-31 Ulrich Drepper * sysdeps/x86_64/multiarch/sched_cpucount.c: Also use optimized code diff --git a/sysdeps/i386/dl-irel.h b/sysdeps/i386/dl-irel.h index 4acb862c69..810a35050b 100644 --- a/sysdeps/i386/dl-irel.h +++ b/sysdeps/i386/dl-irel.h @@ -21,6 +21,7 @@ #ifndef _DL_IREL_H #define _DL_IREL_H +#include #include #define ELF_MACHINE_IREL 1 @@ -38,7 +39,7 @@ elf_irel (const Elf32_Rel *reloc) *reloc_addr = value; } else - _exit (-1); + __libc_fatal ("unexpected reloc type in static binary"); } #endif /* dl-irel.h */ diff --git a/sysdeps/x86_64/dl-irel.h b/sysdeps/x86_64/dl-irel.h index 442ab71d26..d2d5c0670e 100644 --- a/sysdeps/x86_64/dl-irel.h +++ b/sysdeps/x86_64/dl-irel.h @@ -21,6 +21,7 @@ #ifndef _DL_IREL_H #define _DL_IREL_H +#include #include #define ELF_MACHINE_IRELA 1 @@ -38,7 +39,7 @@ elf_irela (const Elf64_Rela *reloc) *reloc_addr = value; } else - _exit (-1); + __libc_fatal ("unexpected reloc type in static binary"); } #endif /* dl-irel.h */ From 21e66bc528edcbe18d434eb33a601e0f796904c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Goddard=20Rosa?= Date: Mon, 1 Jun 2009 11:43:26 -0700 Subject: [PATCH 60/76] Fix mbrtowc example. The remaining bytes were not copied correctly. --- manual/charset.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manual/charset.texi b/manual/charset.texi index 8b2c09ca79..79854e50bf 100644 --- a/manual/charset.texi +++ b/manual/charset.texi @@ -1234,7 +1234,7 @@ file_mbsrtowcs (int input, int output) /* @r{If any characters must be carried forward,} @r{put them at the beginning of @code{buffer}.} */ if (filled > 0) - memmove (inp, buffer, filled); + memmove (buffer, inp, filled); @} return 1; From fd96f062085be71f4e2c07c98a3002bd55793b6e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 1 Jun 2009 11:49:05 -0700 Subject: [PATCH 61/76] Small optimization of STT_GNU_IFUNC handling. The test to call the indirect function now includes a subtest to checked whether the symbol is defined. When coming to that point this is almost always the case. The test for STT_GNU_IFUNC on the other hand rarely is true. Move it to the front means we don't have to perform the second test unless really necessary. --- ChangeLog | 4 ++++ sysdeps/i386/dl-machine.h | 4 ++-- sysdeps/x86_64/dl-machine.h | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10829a3d21..6aad771397 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-06-01 Ulrich Drepper + * sysdeps/i386/dl-machine.h (elf_machine_rel): Reorder conditions + for STT_GNU_IFUNC handling for efficiency. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/i386/dl-irel.h (elf_irel): Use __libc_fatal instead of just _exit. * sysdeps/x86_64/dl-irel.h (elf_irela): Likewise. diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index efa929e57f..a093d2b151 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -345,9 +345,9 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; if (sym != NULL - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0)) + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) value = ((Elf32_Addr (*) (void)) value) (); switch (r_type) diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index 1b5ce8e981..61a0556d5e 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -297,9 +297,9 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, : (Elf64_Addr) sym_map->l_addr + sym->st_value); if (sym != NULL - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0)) + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) value = ((Elf64_Addr (*) (void)) value) (); # if defined RTLD_BOOTSTRAP && !USE___THREAD From 3d5243d4160519e56cba6eceae9b1d0e6b642515 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 2 Jun 2009 07:03:02 -0700 Subject: [PATCH 62/76] Implement execvpe. There is some existing practice in other OSes and it's trivial to implement giving the existing code. Fixes BZ #10221. --- ChangeLog | 9 ++ NEWS | 5 +- posix/Makefile | 2 +- posix/Versions | 3 + posix/execvp.c | 192 +---------------------------------------- posix/execvpe.c | 221 ++++++++++++++++++++++++++++++++++++++++++++++++ posix/unistd.h | 8 ++ 7 files changed, 248 insertions(+), 192 deletions(-) create mode 100644 posix/execvpe.c diff --git a/ChangeLog b/ChangeLog index 6aad771397..7d30b3a15c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-06-02 Ulrich Drepper + + [BZ #10221] + * posix/Makefile (routines): Add execvpe. + * posix/Versions: Export execvpe for GLIBC_2.11. + * posix/execvp.c: Now only a wrapper. Move code to... + * posix/execvpe.c: ...here. New file. + * posix/unistd.h: Declare execvpe. + 2009-06-01 Ulrich Drepper * sysdeps/i386/dl-machine.h (elf_machine_rel): Reorder conditions diff --git a/NEWS b/NEWS index 5ca4e6058d..6990dcc264 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2009-5-31 +GNU C Library NEWS -- history of user-visible changes. 2009-6-1 Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc. See the end for copying conditions. @@ -7,6 +7,9 @@ using `glibc' in the "product" field. Version 2.11 +* New interfaces: execvpe + Implemented by Ulrich Drepper. + * checking version of longjmp added that fails if an uninitialized stack frame would be created. Implemented by Ulrich Drepper. diff --git a/posix/Makefile b/posix/Makefile index d9a1ac768f..8d8fbe5234 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -43,7 +43,7 @@ routines := \ wait waitpid wait3 wait4 waitid \ alarm sleep pause nanosleep \ fork vfork _exit \ - execve fexecve execv execle execl execvp execlp \ + execve fexecve execv execle execl execvp execlp execvpe \ getpid getppid \ getuid geteuid getgid getegid getgroups setuid setgid group_member \ getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \ diff --git a/posix/Versions b/posix/Versions index 10625f19e1..686c446bcd 100644 --- a/posix/Versions +++ b/posix/Versions @@ -131,6 +131,9 @@ libc { GLIBC_2.10 { __posix_getopt; } + GLIBC_2.11 { + execvpe; + } GLIBC_PRIVATE { __libc_fork; __libc_pwrite; } diff --git a/posix/execvp.c b/posix/execvp.c index 887379e3a2..81e6d589f1 100644 --- a/posix/execvp.c +++ b/posix/execvp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92, 1995-99, 2002, 2004, 2005, 2007 +/* Copyright (C) 1991,92, 1995-99, 2002, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -17,31 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include #include -#include -#include -#include -#include -#include -#include - - -/* The file is accessible but it is not an executable file. Invoke - the shell to interpret it as a script. */ -static void -internal_function -scripts_argv (const char *file, char *const argv[], int argc, char **new_argv) -{ - /* Construct an argument list for the shell. */ - new_argv[0] = (char *) _PATH_BSHELL; - new_argv[1] = (char *) file; - while (argc > 1) - { - new_argv[argc] = argv[argc - 1]; - --argc; - } -} /* Execute FILE, searching in the `PATH' environment variable if it contains @@ -51,170 +27,6 @@ execvp (file, argv) const char *file; char *const argv[]; { - if (*file == '\0') - { - /* We check the simple case first. */ - __set_errno (ENOENT); - return -1; - } - - if (strchr (file, '/') != NULL) - { - /* Don't search when it contains a slash. */ - __execve (file, argv, __environ); - - if (errno == ENOEXEC) - { - /* Count the arguments. */ - int argc = 0; - while (argv[argc++]) - ; - size_t len = (argc + 1) * sizeof (char *); - char **script_argv; - void *ptr = NULL; - if (__libc_use_alloca (len)) - script_argv = alloca (len); - else - script_argv = ptr = malloc (len); - - if (script_argv != NULL) - { - scripts_argv (file, argv, argc, script_argv); - __execve (script_argv[0], script_argv, __environ); - - free (ptr); - } - } - } - else - { - size_t pathlen; - size_t alloclen = 0; - char *path = getenv ("PATH"); - if (path == NULL) - { - pathlen = confstr (_CS_PATH, (char *) NULL, 0); - alloclen = pathlen + 1; - } - else - pathlen = strlen (path); - - size_t len = strlen (file) + 1; - alloclen += pathlen + len + 1; - - char *name; - char *path_malloc = NULL; - if (__libc_use_alloca (alloclen)) - name = alloca (alloclen); - else - { - path_malloc = name = malloc (alloclen); - if (name == NULL) - return -1; - } - - if (path == NULL) - { - /* There is no `PATH' in the environment. - The default search path is the current directory - followed by the path `confstr' returns for `_CS_PATH'. */ - path = name + pathlen + len + 1; - path[0] = ':'; - (void) confstr (_CS_PATH, path + 1, pathlen); - } - - /* Copy the file name at the top. */ - name = (char *) memcpy (name + pathlen + 1, file, len); - /* And add the slash. */ - *--name = '/'; - - char **script_argv = NULL; - void *script_argv_malloc = NULL; - bool got_eacces = false; - char *p = path; - do - { - char *startp; - - path = p; - p = __strchrnul (path, ':'); - - if (p == path) - /* Two adjacent colons, or a colon at the beginning or the end - of `PATH' means to search the current directory. */ - startp = name + 1; - else - startp = (char *) memcpy (name - (p - path), path, p - path); - - /* Try to execute this name. If it works, execve will not return. */ - __execve (startp, argv, __environ); - - if (errno == ENOEXEC) - { - if (script_argv == NULL) - { - /* Count the arguments. */ - int argc = 0; - while (argv[argc++]) - ; - size_t arglen = (argc + 1) * sizeof (char *); - if (__libc_use_alloca (alloclen + arglen)) - script_argv = alloca (arglen); - else - script_argv = script_argv_malloc = malloc (arglen); - if (script_argv == NULL) - { - /* A possible EACCES error is not as important as - the ENOMEM. */ - got_eacces = false; - break; - } - scripts_argv (startp, argv, argc, script_argv); - } - - __execve (script_argv[0], script_argv, __environ); - } - - switch (errno) - { - case EACCES: - /* Record the we got a `Permission denied' error. If we end - up finding no executable we can use, we want to diagnose - that we did find one but were denied access. */ - got_eacces = true; - case ENOENT: - case ESTALE: - case ENOTDIR: - /* Those errors indicate the file is missing or not executable - by us, in which case we want to just try the next path - directory. */ - case ENODEV: - case ETIMEDOUT: - /* Some strange filesystems like AFS return even - stranger error numbers. They cannot reasonably mean - anything else so ignore those, too. */ - break; - - default: - /* Some other error means we found an executable file, but - something went wrong executing it; return the error to our - caller. */ - return -1; - } - } - while (*p++ != '\0'); - - /* We tried every element and none of them worked. */ - if (got_eacces) - /* At least one failure was due to permissions, so report that - error. */ - __set_errno (EACCES); - - free (script_argv_malloc); - free (path_malloc); - } - - /* Return the error from the last attempt (probably ENOENT). */ - return -1; + return __execvpe (file, argv, __environ); } libc_hidden_def (execvp) diff --git a/posix/execvpe.c b/posix/execvpe.c new file mode 100644 index 0000000000..b4f40d3a7c --- /dev/null +++ b/posix/execvpe.c @@ -0,0 +1,221 @@ +/* Copyright (C) 1991,92, 1995-99, 2002, 2004, 2005, 2007, 2009 + 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + + +/* The file is accessible but it is not an executable file. Invoke + the shell to interpret it as a script. */ +static void +internal_function +scripts_argv (const char *file, char *const argv[], int argc, char **new_argv) +{ + /* Construct an argument list for the shell. */ + new_argv[0] = (char *) _PATH_BSHELL; + new_argv[1] = (char *) file; + while (argc > 1) + { + new_argv[argc] = argv[argc - 1]; + --argc; + } +} + + +/* Execute FILE, searching in the `PATH' environment variable if it contains + no slashes, with arguments ARGV and environment from ENVP. */ +int +__execvpe (file, argv, envp) + const char *file; + char *const argv[]; + char *const envp[]; +{ + if (*file == '\0') + { + /* We check the simple case first. */ + __set_errno (ENOENT); + return -1; + } + + if (strchr (file, '/') != NULL) + { + /* Don't search when it contains a slash. */ + __execve (file, argv, envp); + + if (errno == ENOEXEC) + { + /* Count the arguments. */ + int argc = 0; + while (argv[argc++]) + ; + size_t len = (argc + 1) * sizeof (char *); + char **script_argv; + void *ptr = NULL; + if (__libc_use_alloca (len)) + script_argv = alloca (len); + else + script_argv = ptr = malloc (len); + + if (script_argv != NULL) + { + scripts_argv (file, argv, argc, script_argv); + __execve (script_argv[0], script_argv, envp); + + free (ptr); + } + } + } + else + { + size_t pathlen; + size_t alloclen = 0; + char *path = getenv ("PATH"); + if (path == NULL) + { + pathlen = confstr (_CS_PATH, (char *) NULL, 0); + alloclen = pathlen + 1; + } + else + pathlen = strlen (path); + + size_t len = strlen (file) + 1; + alloclen += pathlen + len + 1; + + char *name; + char *path_malloc = NULL; + if (__libc_use_alloca (alloclen)) + name = alloca (alloclen); + else + { + path_malloc = name = malloc (alloclen); + if (name == NULL) + return -1; + } + + if (path == NULL) + { + /* There is no `PATH' in the environment. + The default search path is the current directory + followed by the path `confstr' returns for `_CS_PATH'. */ + path = name + pathlen + len + 1; + path[0] = ':'; + (void) confstr (_CS_PATH, path + 1, pathlen); + } + + /* Copy the file name at the top. */ + name = (char *) memcpy (name + pathlen + 1, file, len); + /* And add the slash. */ + *--name = '/'; + + char **script_argv = NULL; + void *script_argv_malloc = NULL; + bool got_eacces = false; + char *p = path; + do + { + char *startp; + + path = p; + p = __strchrnul (path, ':'); + + if (p == path) + /* Two adjacent colons, or a colon at the beginning or the end + of `PATH' means to search the current directory. */ + startp = name + 1; + else + startp = (char *) memcpy (name - (p - path), path, p - path); + + /* Try to execute this name. If it works, execve will not return. */ + __execve (startp, argv, envp); + + if (errno == ENOEXEC) + { + if (script_argv == NULL) + { + /* Count the arguments. */ + int argc = 0; + while (argv[argc++]) + ; + size_t arglen = (argc + 1) * sizeof (char *); + if (__libc_use_alloca (alloclen + arglen)) + script_argv = alloca (arglen); + else + script_argv = script_argv_malloc = malloc (arglen); + if (script_argv == NULL) + { + /* A possible EACCES error is not as important as + the ENOMEM. */ + got_eacces = false; + break; + } + scripts_argv (startp, argv, argc, script_argv); + } + + __execve (script_argv[0], script_argv, envp); + } + + switch (errno) + { + case EACCES: + /* Record the we got a `Permission denied' error. If we end + up finding no executable we can use, we want to diagnose + that we did find one but were denied access. */ + got_eacces = true; + case ENOENT: + case ESTALE: + case ENOTDIR: + /* Those errors indicate the file is missing or not executable + by us, in which case we want to just try the next path + directory. */ + case ENODEV: + case ETIMEDOUT: + /* Some strange filesystems like AFS return even + stranger error numbers. They cannot reasonably mean + anything else so ignore those, too. */ + break; + + default: + /* Some other error means we found an executable file, but + something went wrong executing it; return the error to our + caller. */ + return -1; + } + } + while (*p++ != '\0'); + + /* We tried every element and none of them worked. */ + if (got_eacces) + /* At least one failure was due to permissions, so report that + error. */ + __set_errno (EACCES); + + free (script_argv_malloc); + free (path_malloc); + } + + /* Return the error from the last attempt (probably ENOENT). */ + return -1; +} +weak_alias (__execvpe, execvpe) diff --git a/posix/unistd.h b/posix/unistd.h index 24ec74e05e..cbab9f939e 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -551,6 +551,14 @@ extern int execvp (__const char *__file, char *__const __argv[]) extern int execlp (__const char *__file, __const char *__arg, ...) __THROW __nonnull ((1)); +#ifdef __USE_GNU +/* Execute FILE, searching in the `PATH' environment variable if it contains + no slashes, with arguments ARGV and environment from `environ'. */ +extern int execvpe (__const char *__file, char *__const __argv[], + char *__const __envp[]) + __THROW __nonnull ((1)); +#endif + #if defined __USE_MISC || defined __USE_XOPEN /* Add INC to priority of the current process. */ From 8275067de1b6b94d88047e12095872541fa40ffd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 2 Jun 2009 07:11:51 -0700 Subject: [PATCH 63/76] Add missing __execvpe prototype. Avoids warnings. --- include/unistd.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/unistd.h b/include/unistd.h index 34d7477f9e..72d7e2e88c 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -61,6 +61,8 @@ extern int __chdir (__const char *__path); extern int __fchdir (int __fd); extern char *__getcwd (char *__buf, size_t __size); extern int __rmdir (const char *__path); +extern int __execvpe (const char *file, char *const argv[], + char *const envp[]); /* Get the canonical absolute name of the named directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined or From fbb04b35e7997070feec74e0fd46953faef71f9e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 3 Jun 2009 08:30:35 -0700 Subject: [PATCH 64/76] Terminate correct buffer. Little typo could cause additional characters to be printed. --- ChangeLog | 4 ++++ elf/dl-sysdep.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 7d30b3a15c..5e98327e14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-03 Ulrich Drepper + + * elf/dl-sysdep.c (_dl_show_auxv): Terminate correct string. + 2009-06-02 Ulrich Drepper [BZ #10221] diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c index db1001253c..5700272f10 100644 --- a/elf/dl-sysdep.c +++ b/elf/dl-sysdep.c @@ -335,7 +335,7 @@ _dl_show_auxv (void) /* Unknown value: print a generic line. */ char buf2[17]; - buf[sizeof (buf2) - 1] = '\0'; + buf2[sizeof (buf2) - 1] = '\0'; const char *val2 = _itoa ((unsigned long int) av->a_un.a_val, buf2 + sizeof buf2 - 1, 16, 0); const char *val = _itoa ((unsigned long int) av->a_type, From 2f083d7511460b3beea2df165c3e43742f73f3c9 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 3 Jun 2009 16:21:40 -0700 Subject: [PATCH 65/76] Test for ELF IFUNC functionality. --- ChangeLog | 46 +++++++++++++++ elf/Makefile | 94 ++++++++++++++++++++++++++++- elf/ifuncdep1.c | 3 + elf/ifuncdep1pic.c | 3 + elf/ifuncdep2.c | 72 +++++++++++++++++++++++ elf/ifuncdep2pic.c | 3 + elf/ifuncmain1.c | 66 +++++++++++++++++++++ elf/ifuncmain1pic.c | 3 + elf/ifuncmain1picstatic.c | 3 + elf/ifuncmain1pie.c | 3 + elf/ifuncmain1static.c | 3 + elf/ifuncmain1staticpic.c | 3 + elf/ifuncmain1vis.c | 89 ++++++++++++++++++++++++++++ elf/ifuncmain1vispic.c | 3 + elf/ifuncmain1vispie.c | 3 + elf/ifuncmain2.c | 16 +++++ elf/ifuncmain2pic.c | 3 + elf/ifuncmain2picstatic.c | 3 + elf/ifuncmain2static.c | 3 + elf/ifuncmain3.c | 120 ++++++++++++++++++++++++++++++++++++++ elf/ifuncmain4.c | 4 ++ elf/ifuncmain4picstatic.c | 3 + elf/ifuncmain4static.c | 3 + elf/ifuncmod1.c | 114 ++++++++++++++++++++++++++++++++++++ elf/ifuncmod3.c | 8 +++ 25 files changed, 673 insertions(+), 1 deletion(-) create mode 100644 elf/ifuncdep1.c create mode 100644 elf/ifuncdep1pic.c create mode 100644 elf/ifuncdep2.c create mode 100644 elf/ifuncdep2pic.c create mode 100644 elf/ifuncmain1.c create mode 100644 elf/ifuncmain1pic.c create mode 100644 elf/ifuncmain1picstatic.c create mode 100644 elf/ifuncmain1pie.c create mode 100644 elf/ifuncmain1static.c create mode 100644 elf/ifuncmain1staticpic.c create mode 100644 elf/ifuncmain1vis.c create mode 100644 elf/ifuncmain1vispic.c create mode 100644 elf/ifuncmain1vispie.c create mode 100644 elf/ifuncmain2.c create mode 100644 elf/ifuncmain2pic.c create mode 100644 elf/ifuncmain2picstatic.c create mode 100644 elf/ifuncmain2static.c create mode 100644 elf/ifuncmain3.c create mode 100644 elf/ifuncmain4.c create mode 100644 elf/ifuncmain4picstatic.c create mode 100644 elf/ifuncmain4static.c create mode 100644 elf/ifuncmod1.c create mode 100644 elf/ifuncmod3.c diff --git a/ChangeLog b/ChangeLog index 5e98327e14..72910ce610 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,49 @@ +2009-06-02 H.J. Lu + + * elf/Makefile (distribute): Add ifuncmain1.c, ifuncmain1pic.c, + ifuncmain1vis.c, ifuncmain1vispic.c, ifuncmain1static.c, + ifuncmain1staticpic.c, ifuncmain1picstatic.c, ifuncdep1.c, + ifuncdep1pic.c, ifuncmod1.c, ifuncmain1pie.c, ifuncmain1vispie.c, + ifuncmain2.c, ifuncmain2static.c, ifuncdep2.c, + funcmain2pic.c, ifuncmain2picstatic.c, ifuncdep2pic.c, + ifuncmain3.c, ifuncmod3.c,. + ifuncmain4.c, ifuncmain4static.c, ifuncmain4picstatic.c. + (tests-static): Add ifuncmain1static, ifuncmain1picstatic, + ifuncmain2static, ifuncmain2picstatic, ifuncmain4static, + ifuncmain4picstatic. + (tests): Add ifuncmain1, ifuncmain1pic, ifuncmain1vis, + ifuncmain1vispic, ifuncmain1staticpic, ifuncmain2, ifuncmain2pic, + ifuncmain3, ifuncmain4. + (tests): Depend on $(objpfx)ifuncmain1pie.out and + $(objpfx)ifuncmain1vispie.out. + (modules-names): Add ifuncmod1 ifuncmod3. + (generated): Add ifuncmain1pie ifuncmain1pie.out + ifuncmain1vispie ifuncmain1vispie.out. + Define rules to build and run the tests. + * elf/ifuncdep1.c: New file. + * elf/ifuncdep1pic.c: New file. + * elf/ifuncdep2.c: New file. + * elf/ifuncdep2pic.c: New file. + * elf/ifuncmain1.c: New file. + * elf/ifuncmain1pic.c: New file. + * elf/ifuncmain1picstatic.c: New file. + * elf/ifuncmain1pie.c: New file. + * elf/ifuncmain1static.c: New file. + * elf/ifuncmain1staticpic.c: New file. + * elf/ifuncmain1vis.c: New file.. + * elf/ifuncmain1vispic.c: New file.. + * elf/ifuncmain1vispie.c: New file. + * elf/ifuncmain2.c: New file. + * elf/ifuncmain2pic.c: New file. + * elf/ifuncmain2picstatic.c: New file. + * elf/ifuncmain2static.c: New file. + * elf/ifuncmain3.c: New file. + * elf/ifuncmain4.c: New file. + * elf/ifuncmain4picstatic.c: New file. + * elf/ifuncmain4static.c: New file. + * elf/ifuncmod1.c: New file. + * elf/ifuncmod3.c: New file. + 2009-06-03 Ulrich Drepper * elf/dl-sysdep.c (_dl_show_auxv): Terminate correct string. diff --git a/elf/Makefile b/elf/Makefile index 94b9d069bf..6bcbb5142f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -93,7 +93,16 @@ distribute := rtld-Rules \ order2mod1.c order2mod2.c order2mod3.c order2mod4.c \ tst-stackguard1.c tst-stackguard1-static.c \ tst-array5.c tst-array5-static.c tst-array5dep.c \ - tst-array5.exp tst-leaks1.c check-execstack.c + tst-array5.exp tst-leaks1.c check-execstack.c \ + ifuncmain1.c ifuncmain1pic.c ifuncmain1vis.c \ + ifuncmain1vispic.c ifuncmain1static.c \ + ifuncmain1staticpic.c ifuncmain1picstatic.c \ + ifuncdep1.c ifuncdep1pic.c ifuncmod1.c \ + ifuncmain1pie.c ifuncmain1vispie.c \ + ifuncmain2.c ifuncmain2static.c ifuncdep2.c \ + ifuncmain2pic.c ifuncmain2picstatic.c ifuncdep2pic.c \ + ifuncmain3.c ifuncmod3.c \ + ifuncmain4.c ifuncmain4static.c ifuncmain4picstatic.c CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables @@ -232,6 +241,22 @@ test-extras += $(modules-names) # filtmod1.so has a special rule modules-names-nobuild := filtmod1 +ifeq (yes,$(multi-arch)) +tests-static += ifuncmain1static ifuncmain1picstatic \ + ifuncmain2static ifuncmain2picstatic \ + ifuncmain4static ifuncmain4picstatic + +ifeq (yes,$(build-shared)) +tests += ifuncmain1 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ + ifuncmain1staticpic \ + ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 +ifeq (yes,$(have-fpie)) +tests: $(objpfx)ifuncmain1pie.out $(objpfx)ifuncmain1vispie.out +endif +modules-names += ifuncmod1 ifuncmod3 +endif +endif + include ../Rules @@ -504,6 +529,7 @@ reldep8mod2.so-no-z-defs = yes reldep9mod1.so-no-z-defs = yes unload3mod4.so-no-z-defs = yes unload4mod1.so-no-z-defs = yes +ifuncmod1.so-no-z-defs = yes ifeq ($(build-shared),yes) # Build all the modules even when not actually running test programs. @@ -951,3 +977,69 @@ tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace $(objpfx)tst-addr1: $(libdl) $(objpfx)tst-thrlock: $(libdl) $(shared-thread-library) + +CFLAGS-ifuncmain1pic.c += $(pic-ccflag) +CFLAGS-ifuncmain1picstatic.c += $(pic-ccflag) +CFLAGS-ifuncmain1staticpic.c += $(pic-ccflag) +CFLAGS-ifuncdep1pic.c += $(pic-ccflag) +CFLAGS-ifuncmain1vispic.c += $(pic-ccflag) +CFLAGS-ifuncmain2pic.c += $(pic-ccflag) +CFLAGS-ifuncmain2picstatic.c += $(pic-ccflag) +CFLAGS-ifuncdep2pic.c += $(pic-ccflag) +CFLAGS-ifuncmain4picstatic.c += $(pic-ccflag) + +LDFLAGS-ifuncmain3 = -Wl,-export-dynamic + +ifeq (yesyes,$(have-fpie)$(build-shared)) +CFLAGS-ifuncmain1pie.c += $(pie-ccflag) +CFLAGS-ifuncmain1vispie.c += $(pie-ccflag) + +$(objpfx)ifuncmain1pie.out: $(objpfx)ifuncmain1pie + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $< > $@ + +$(objpfx)ifuncmain1pie: $(objpfx)ifuncmain1pie.o $(objpfx)ifuncmod1.so + $(LINK.o) -pie -Wl,-O1 \ + $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \ + $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \ + $(LDFLAGS) $(LDFLAGS-$(@F)) \ + -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ + -o $@ $(objpfx)tst-pie1.o $(objpfx)tst-piemod1.so \ + $(common-objpfx)libc_nonshared.a + +generated += ifuncmain1pie ifuncmain1pie.out + +$(objpfx)ifuncmain1vispie.out: $(objpfx)ifuncmain1vispie + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $< > $@ + +$(objpfx)ifuncmain1vispie: $(objpfx)ifuncmain1vispie.o $(objpfx)ifuncmod1.so + $(LINK.o) -pie -Wl,-O1 \ + $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \ + $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \ + $(LDFLAGS) $(LDFLAGS-$(@F)) \ + -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ + -o $@ $(objpfx)tst-pie1.o $(objpfx)tst-piemod1.so \ + $(common-objpfx)libc_nonshared.a + +generated += ifuncmain1vispie ifuncmain1vispie.out +endif + +$(objpfx)ifuncmain1: $(addprefix $(objpfx),ifuncmod1.so) +$(objpfx)ifuncmain1pic: $(addprefix $(objpfx),ifuncmod1.so) +$(objpfx)ifuncmain1staticpic: $(addprefix $(objpfx),ifuncdep1pic.o) +$(objpfx)ifuncmain1static: $(addprefix $(objpfx),ifuncdep1.o) +$(objpfx)ifuncmain1picstatic: $(addprefix $(objpfx),ifuncdep1pic.o) +$(objpfx)ifuncmain1vis: $(addprefix $(objpfx),ifuncmod1.so) +$(objpfx)ifuncmain1vispic: $(addprefix $(objpfx),ifuncmod1.so) +$(objpfx)ifuncmain2: $(addprefix $(objpfx),ifuncdep2.o) +$(objpfx)ifuncmain2pic: $(addprefix $(objpfx),ifuncdep2pic.o) +$(objpfx)ifuncmain2static: $(addprefix $(objpfx),ifuncdep2.o) +$(objpfx)ifuncmain2picstatic: $(addprefix $(objpfx),ifuncdep2pic.o) + +$(objpfx)ifuncmain3: $(libdl) +$(objpfx)ifuncmain3.out: $(objpfx)ifuncmod3.so diff --git a/elf/ifuncdep1.c b/elf/ifuncdep1.c new file mode 100644 index 0000000000..77d663dcec --- /dev/null +++ b/elf/ifuncdep1.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols without -fPIC. */ + +#include "ifuncmod1.c" diff --git a/elf/ifuncdep1pic.c b/elf/ifuncdep1pic.c new file mode 100644 index 0000000000..b6381e4868 --- /dev/null +++ b/elf/ifuncdep1pic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC. */ + +#include "ifuncmod1.c" diff --git a/elf/ifuncdep2.c b/elf/ifuncdep2.c new file mode 100644 index 0000000000..fb21eef5cb --- /dev/null +++ b/elf/ifuncdep2.c @@ -0,0 +1,72 @@ +/* Test 3 STT_GNU_IFUNC symbols. */ + +extern int global; + +static int +one (void) +{ + return 1; +} + +static int +minus_one (void) +{ + return -1; +} + +static int +zero (void) +{ + return 0; +} + +void * foo1_ifunc (void) __asm__ ("foo1"); +__asm__(".type foo1, %gnu_indirect_function"); + +void * +foo1_ifunc (void) +{ + switch (global) + { + case 1: + return one; + case -1: + return minus_one; + default: + return zero; + } +} + +void * foo2_ifunc (void) __asm__ ("foo2"); +__asm__(".type foo2, %gnu_indirect_function"); + +void * +foo2_ifunc (void) +{ + switch (global) + { + case 1: + return minus_one; + case -1: + return one; + default: + return zero; + } +} + +void * foo3_ifunc (void) __asm__ ("foo3"); +__asm__(".type foo3, %gnu_indirect_function"); + +void * +foo3_ifunc (void) +{ + switch (global) + { + case 1: + return one; + case -1: + return zero; + default: + return minus_one; + } +} diff --git a/elf/ifuncdep2pic.c b/elf/ifuncdep2pic.c new file mode 100644 index 0000000000..a84253dbc4 --- /dev/null +++ b/elf/ifuncdep2pic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC. */ + +#include "ifuncdep2.c" diff --git a/elf/ifuncmain1.c b/elf/ifuncmain1.c new file mode 100644 index 0000000000..de7ffe8779 --- /dev/null +++ b/elf/ifuncmain1.c @@ -0,0 +1,66 @@ +/* Test STT_GNU_IFUNC symbols: + + 1. Direct function call. + 2. Function pointer. + 3. Visibility without override. + */ + +#include + +int global = -1; + +int ret_foo; +int ret_foo_hidden; +int ret_foo_protected; + +extern int foo (void); +extern int foo_protected (void); + +#ifndef FOO_P +typedef int (*foo_p) (void); +#endif + +foo_p foo_ptr = foo; +foo_p foo_procted_ptr = foo_protected; + +extern foo_p get_foo_p (void); +extern foo_p get_foo_hidden_p (void); +extern foo_p get_foo_protected_p (void); + +int +main (void) +{ + foo_p p; + + if (foo_ptr != foo) + abort (); + if (foo () != -1) + abort (); + if ((*foo_ptr) () != -1) + abort (); + + if (foo_procted_ptr != foo_protected) + abort (); + if (foo_protected () != 0) + abort (); + if ((*foo_procted_ptr) () != 0) + abort (); + + p = get_foo_p (); + if (p != foo) + abort (); + if (ret_foo != -1 || (*p) () != ret_foo) + abort (); + + p = get_foo_hidden_p (); + if (ret_foo_hidden != 1 || (*p) () != ret_foo_hidden) + abort (); + + p = get_foo_protected_p (); + if (p != foo_protected) + abort (); + if (ret_foo_protected != 0 || (*p) () != ret_foo_protected) + abort (); + + return 0; +} diff --git a/elf/ifuncmain1pic.c b/elf/ifuncmain1pic.c new file mode 100644 index 0000000000..db19dc9678 --- /dev/null +++ b/elf/ifuncmain1pic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC. */ + +#include "ifuncmain1.c" diff --git a/elf/ifuncmain1picstatic.c b/elf/ifuncmain1picstatic.c new file mode 100644 index 0000000000..c937933029 --- /dev/null +++ b/elf/ifuncmain1picstatic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC and -static. */ + +#include "ifuncmain1.c" diff --git a/elf/ifuncmain1pie.c b/elf/ifuncmain1pie.c new file mode 100644 index 0000000000..c16ef6dd09 --- /dev/null +++ b/elf/ifuncmain1pie.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with PIE. */ + +#include "ifuncmain1.c" diff --git a/elf/ifuncmain1static.c b/elf/ifuncmain1static.c new file mode 100644 index 0000000000..fdd1e09024 --- /dev/null +++ b/elf/ifuncmain1static.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -static. */ + +#include "ifuncmain1.c" diff --git a/elf/ifuncmain1staticpic.c b/elf/ifuncmain1staticpic.c new file mode 100644 index 0000000000..39e0cbb4b8 --- /dev/null +++ b/elf/ifuncmain1staticpic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC and no DSO. */ + +#include "ifuncmain1.c" diff --git a/elf/ifuncmain1vis.c b/elf/ifuncmain1vis.c new file mode 100644 index 0000000000..a239d2dd0d --- /dev/null +++ b/elf/ifuncmain1vis.c @@ -0,0 +1,89 @@ +/* Test STT_GNU_IFUNC symbols: + + 1. Direct function call. + 2. Function pointer. + 3. Visibility with override. + */ + +#include + +int global = -1; + +int ret_foo; +int ret_foo_hidden; +int ret_foo_protected; + +extern int foo (void); +extern int foo_protected (void); + +#ifndef FOO_P +typedef int (*foo_p) (void); +#endif + +foo_p foo_ptr = foo; +foo_p foo_procted_ptr = foo_protected; + +extern foo_p get_foo_p (void); +extern foo_p get_foo_hidden_p (void); +extern foo_p get_foo_protected_p (void); + +int +__attribute__ ((noinline)) +foo (void) +{ + return -30; +} + +int +__attribute__ ((noinline)) +foo_hidden (void) +{ + return -20; +} + +int +__attribute__ ((noinline)) +foo_protected (void) +{ + return -40; +} + +int +main (void) +{ + foo_p p; + + if (foo_ptr != foo) + abort (); + if ((*foo_ptr) () != -30) + abort (); + + if (foo_procted_ptr != foo_protected) + abort (); + if ((*foo_procted_ptr) () != -40) + abort (); + + p = get_foo_p (); + if (p != foo) + abort (); + if (foo () != -30) + abort (); + if (ret_foo != -30 || (*p) () != ret_foo) + abort (); + + p = get_foo_hidden_p (); + if (foo_hidden () != -20) + abort (); + if (ret_foo_hidden != 1 || (*p) () != ret_foo_hidden) + abort (); + + p = get_foo_protected_p (); + if (p == foo_protected) + abort (); + if (foo_protected () != -40) + abort (); + if (ret_foo_protected != 0 || (*p) () != ret_foo_protected) + abort (); + + return 0; +} diff --git a/elf/ifuncmain1vispic.c b/elf/ifuncmain1vispic.c new file mode 100644 index 0000000000..f8c104d560 --- /dev/null +++ b/elf/ifuncmain1vispic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC. */ + +#include "ifuncmain1vis.c" diff --git a/elf/ifuncmain1vispie.c b/elf/ifuncmain1vispie.c new file mode 100644 index 0000000000..ad06d2ba1c --- /dev/null +++ b/elf/ifuncmain1vispie.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with PIE. */ + +#include "ifuncmain1vis.c" diff --git a/elf/ifuncmain2.c b/elf/ifuncmain2.c new file mode 100644 index 0000000000..cd9b2c8352 --- /dev/null +++ b/elf/ifuncmain2.c @@ -0,0 +1,16 @@ +/* Test calling one STT_GNU_IFUNC function with 3 different + STT_GNU_IFUNC definitions. */ + +#include + +int global = -1; + +extern int foo1 (void); + +int +main (void) +{ + if (foo1 () != -1) + abort (); + return 0; +} diff --git a/elf/ifuncmain2pic.c b/elf/ifuncmain2pic.c new file mode 100644 index 0000000000..0006012a96 --- /dev/null +++ b/elf/ifuncmain2pic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC. */ + +#include "ifuncmain2.c" diff --git a/elf/ifuncmain2picstatic.c b/elf/ifuncmain2picstatic.c new file mode 100644 index 0000000000..3e89db536d --- /dev/null +++ b/elf/ifuncmain2picstatic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC and -static. */ + +#include "ifuncmain2.c" diff --git a/elf/ifuncmain2static.c b/elf/ifuncmain2static.c new file mode 100644 index 0000000000..6932ae8066 --- /dev/null +++ b/elf/ifuncmain2static.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -static. */ + +#include "ifuncmain2.c" diff --git a/elf/ifuncmain3.c b/elf/ifuncmain3.c new file mode 100644 index 0000000000..5d067cced9 --- /dev/null +++ b/elf/ifuncmain3.c @@ -0,0 +1,120 @@ +/* Test STT_GNU_IFUNC symbols with dlopen: + + 1. Direct function call. + 2. Function pointer. + 3. Visibility with override. + */ + +#include +#include +#include + +typedef int (*foo_p) (void); + +int +__attribute__ ((noinline)) +foo (void) +{ + return -30; +} + +int +__attribute__ ((noinline)) +foo_hidden (void) +{ + return -20; +} + +int +__attribute__ ((noinline)) +foo_protected (void) +{ + return -40; +} + +int +main (void) +{ + foo_p p; + foo_p (*f) (void); + int *ret; + + void *h = dlopen ("ifuncmod3.so", RTLD_LAZY); + if (h == NULL) + { + printf ("cannot load: %s\n", dlerror ()); + return 1; + } + + f = dlsym (h, "get_foo_p"); + if (f == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + ret = dlsym (h, "ret_foo"); + if (ret == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + p = (*f) (); + if (p != foo) + abort (); + if (foo () != -30) + abort (); + if (*ret != -30 || (*p) () != *ret) + abort (); + + f = dlsym (h, "get_foo_hidden_p"); + if (f == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + ret = dlsym (h, "ret_foo_hidden"); + if (ret == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + p = (*f) (); + if (foo_hidden () != -20) + abort (); + if (*ret != 1 || (*p) () != *ret) + abort (); + + f = dlsym (h, "get_foo_protected_p"); + if (f == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + ret = dlsym (h, "ret_foo_protected"); + if (ret == NULL) + { + printf ("symbol not found: %s\n", dlerror ()); + return 1; + } + + p = (*f) (); + if (p == foo_protected) + abort (); + if (foo_protected () != -40) + abort (); + if (*ret != 0 || (*p) () != *ret) + abort (); + + if (dlclose (h) != 0) + { + printf ("cannot close: %s\n", dlerror ()); + return 1; + } + + return 0; +} diff --git a/elf/ifuncmain4.c b/elf/ifuncmain4.c new file mode 100644 index 0000000000..e55fee2eb3 --- /dev/null +++ b/elf/ifuncmain4.c @@ -0,0 +1,4 @@ +/* Test STT_GNU_IFUNC symbols in a single source file. */ + +#include "ifuncmod1.c" +#include "ifuncmain1.c" diff --git a/elf/ifuncmain4picstatic.c b/elf/ifuncmain4picstatic.c new file mode 100644 index 0000000000..977d7f97fc --- /dev/null +++ b/elf/ifuncmain4picstatic.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -fPIC and -static. */ + +#include "ifuncmain4.c" diff --git a/elf/ifuncmain4static.c b/elf/ifuncmain4static.c new file mode 100644 index 0000000000..c399977013 --- /dev/null +++ b/elf/ifuncmain4static.c @@ -0,0 +1,3 @@ +/* Test STT_GNU_IFUNC symbols with -static. */ + +#include "ifuncmain4.c" diff --git a/elf/ifuncmod1.c b/elf/ifuncmod1.c new file mode 100644 index 0000000000..a1697b596d --- /dev/null +++ b/elf/ifuncmod1.c @@ -0,0 +1,114 @@ +/* Test STT_GNU_IFUNC symbols: + + 1. Direct function call. + 2. Function pointer. + 3. Visibility. + */ + +extern int global; + +static int +one (void) +{ + return 1; +} + +static int +minus_one (void) +{ + return -1; +} + +static int +zero (void) +{ + return 0; +} + +void * foo_ifunc (void) __asm__ ("foo"); +__asm__(".type foo, %gnu_indirect_function"); + +void * +foo_ifunc (void) +{ + switch (global) + { + case 1: + return one; + case -1: + return minus_one; + default: + return zero; + } +} + +void * foo_hidden_ifunc (void) __asm__ ("foo_hidden"); +__asm__(".type foo_hidden, %gnu_indirect_function"); + +void * +foo_hidden_ifunc (void) +{ + switch (global) + { + case 1: + return minus_one; + case -1: + return one; + default: + return zero; + } +} + +void * foo_protected_ifunc (void) __asm__ ("foo_protected"); +__asm__(".type foo_protected, %gnu_indirect_function"); + +void * +foo_protected_ifunc (void) +{ + switch (global) + { + case 1: + return one; + case -1: + return zero; + default: + return minus_one; + } +} + +/* Test hidden indirect function. */ +__asm__(".hidden foo_hidden"); + +/* Test protected indirect function. */ +__asm__(".protected foo_protected"); + +extern int foo (void); +extern int foo_hidden (void); +extern int foo_protected (void); +extern int ret_foo; +extern int ret_foo_hidden; +extern int ret_foo_protected; + +#define FOO_P +typedef int (*foo_p) (void); + +foo_p +get_foo_p (void) +{ + ret_foo = foo (); + return foo; +} + +foo_p +get_foo_hidden_p (void) +{ + ret_foo_hidden = foo_hidden (); + return foo_hidden; +} + +foo_p +get_foo_protected_p (void) +{ + ret_foo_protected = foo_protected (); + return foo_protected; +} diff --git a/elf/ifuncmod3.c b/elf/ifuncmod3.c new file mode 100644 index 0000000000..379d2c8d53 --- /dev/null +++ b/elf/ifuncmod3.c @@ -0,0 +1,8 @@ +/* Test STT_GNU_IFUNC symbols with dlopen. */ + +#include "ifuncmod1.c" + +int ret_foo; +int ret_foo_hidden; +int ret_foo_protected; +int global = -1; From 747785f2b3afbc8b900083988957bff11bb6b11f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 4 Jun 2009 10:54:29 -0700 Subject: [PATCH 66/76] Tiny strlen for x86-64 optimization. I didn't remove an instruction from a previous version in the final version. --- ChangeLog | 4 ++++ sysdeps/x86_64/strlen.S | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 72910ce610..cb094d1863 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-04 Ulrich Drepper + + * sysdeps/x86_64/strlen.S: Remove useless instruction. + 2009-06-02 H.J. Lu * elf/Makefile (distribute): Add ifuncmain1.c, ifuncmain1pic.c, diff --git a/sysdeps/x86_64/strlen.S b/sysdeps/x86_64/strlen.S index 86bb8a50a9..572f3c2e41 100644 --- a/sysdeps/x86_64/strlen.S +++ b/sysdeps/x86_64/strlen.S @@ -34,7 +34,6 @@ ENTRY(strlen) pcmpeqb %xmm1, %xmm0 shl %cl, %esi pmovmskb %xmm0, %edx - xorl %eax, %eax negq %r8 andl %esi, %edx jnz 1f From 2f3f7b9da238269397d8dd8868ed494eff2c9064 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 4 Jun 2009 16:45:35 -0700 Subject: [PATCH 67/76] More small optimizations for x86-64 strlen. --- ChangeLog | 2 +- sysdeps/x86_64/strlen.S | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb094d1863..7d99a207fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ 2009-06-04 Ulrich Drepper - * sysdeps/x86_64/strlen.S: Remove useless instruction. + * sysdeps/x86_64/strlen.S: Minor optimizations. 2009-06-02 H.J. Lu diff --git a/sysdeps/x86_64/strlen.S b/sysdeps/x86_64/strlen.S index 572f3c2e41..93aee6bef1 100644 --- a/sysdeps/x86_64/strlen.S +++ b/sysdeps/x86_64/strlen.S @@ -23,29 +23,27 @@ .text ENTRY(strlen) + pxor %xmm2, %xmm2 movq %rdi, %rcx movq %rdi, %r8 andq $~15, %rdi - pxor %xmm1, %xmm1 + movdqa %xmm2, %xmm1 + pcmpeqb (%rdi), %xmm2 orl $0xffffffff, %esi - movdqa (%rdi), %xmm0 subq %rdi, %rcx - leaq 16(%rdi), %rdi - pcmpeqb %xmm1, %xmm0 - shl %cl, %esi - pmovmskb %xmm0, %edx - negq %r8 + shll %cl, %esi + pmovmskb %xmm2, %edx andl %esi, %edx jnz 1f -2: movdqa (%rdi), %xmm0 +2: movdqa 16(%rdi), %xmm0 leaq 16(%rdi), %rdi pcmpeqb %xmm1, %xmm0 pmovmskb %xmm0, %edx testl %edx, %edx jz 2b -1: leaq -16(%rdi,%r8), %rdi +1: subq %r8, %rdi bsfl %edx, %eax addq %rdi, %rax ret From 443caceb354d06724019625ebde083b5151c3fed Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Jun 2009 09:42:32 -0700 Subject: [PATCH 68/76] Fix build problems with old binutils. Old binutils don't provide IFUNC and don't generate the section start/end symbols we expect. At least for now only add the initializer code for static IFUNC relocations if multi-arch support is requested. --- ChangeLog | 5 +++++ csu/elf-init.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d99a207fe..cc03bb36d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-06-05 Ulrich Drepper + + * csu/elf-init.c: Only compile in IFUNC functionality if USE_MULTIARCH + is defined. + 2009-06-04 Ulrich Drepper * sysdeps/x86_64/strlen.S: Minor optimizations. diff --git a/csu/elf-init.c b/csu/elf-init.c index 5a99a3a400..d5ec912cba 100644 --- a/csu/elf-init.c +++ b/csu/elf-init.c @@ -1,5 +1,5 @@ /* Startup support for ELF initializers/finalizers in the main executable. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2009 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 @@ -36,7 +36,7 @@ #include -#ifndef LIBC_NONSHARED +#if defined USE_MULTIARCH && !defined LIBC_NONSHARED # include # include @@ -80,7 +80,7 @@ __libc_csu_init (int argc, char **argv, char **envp) /* For dynamically linked executables the preinit array is executed by the dynamic linker (before initializing any shared object. */ -#ifndef LIBC_NONSHARED +#if defined USE_MULTIARCH && !defined LIBC_NONSHARED # ifdef ELF_MACHINE_IRELA { const size_t size = __rela_iplt_end - __rela_iplt_start; From 3ab2d57a4d00046f1c472abd128517e93e20e485 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Jun 2009 11:32:00 -0700 Subject: [PATCH 69/76] Optimize x86-64 strlen for SSE4.2. The SSE4.2 implementation is used in the DSO only. The patch also adds some infrastructure to be used in similar code later one. --- ChangeLog | 6 ++ sysdeps/x86_64/multiarch/Makefile | 1 + sysdeps/x86_64/multiarch/ifunc-defines.sym | 15 ++++ sysdeps/x86_64/multiarch/init-arch.h | 2 +- sysdeps/x86_64/multiarch/strlen.S | 87 ++++++++++++++++++++++ 5 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 sysdeps/x86_64/multiarch/ifunc-defines.sym create mode 100644 sysdeps/x86_64/multiarch/strlen.S diff --git a/ChangeLog b/ChangeLog index cc03bb36d9..c6a3530c86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2009-06-05 Ulrich Drepper + * sysdeps/x86_64/multiarch/strlen.S: New file. + * sysdeps/x86_64/multiarch/ifunc-defines.sym: New file. + * sysdeps/x86_64/multiarch/Makefile: Add rule to build ifunc-defines.h. + * sysdeps/x86_64/multiarch/init-arch.h: Name structure with register + content. + * csu/elf-init.c: Only compile in IFUNC functionality if USE_MULTIARCH is defined. diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile index 2a1e910e06..33d98c36e6 100644 --- a/sysdeps/x86_64/multiarch/Makefile +++ b/sysdeps/x86_64/multiarch/Makefile @@ -1,3 +1,4 @@ ifeq ($(subdir),csu) aux += init-arch +gen-as-const-headers += ifunc-defines.sym endif diff --git a/sysdeps/x86_64/multiarch/ifunc-defines.sym b/sysdeps/x86_64/multiarch/ifunc-defines.sym new file mode 100644 index 0000000000..48d1287246 --- /dev/null +++ b/sysdeps/x86_64/multiarch/ifunc-defines.sym @@ -0,0 +1,15 @@ +#include "init-arch.h" +#include + +-- + +CPU_FEATURES_SIZE sizeof (struct cpu_features) +KIND_OFFSET offsetof (struct cpu_features, kind) +CPUID_OFFSET offsetof (struct cpu_features, cpuid) +CPUID_SIZE sizeof (struct cpuid_registers) +CPUID_EAX_OFFSET offsetof (struct cpuid_registers, eax) +CPUID_EBX_OFFSET offsetof (struct cpuid_registers, ebx) +CPUID_ECX_OFFSET offsetof (struct cpuid_registers, ecx) +CPUID_EDX_OFFSET offsetof (struct cpuid_registers, edx) + +COMMON_CPUID_INDEX_1 diff --git a/sysdeps/x86_64/multiarch/init-arch.h b/sysdeps/x86_64/multiarch/init-arch.h index 40b804571d..f160ba2a94 100644 --- a/sysdeps/x86_64/multiarch/init-arch.h +++ b/sysdeps/x86_64/multiarch/init-arch.h @@ -35,7 +35,7 @@ extern struct cpu_features arch_kind_other } kind; int max_cpuid; - struct + struct cpuid_registers { unsigned int eax; unsigned int ebx; diff --git a/sysdeps/x86_64/multiarch/strlen.S b/sysdeps/x86_64/multiarch/strlen.S new file mode 100644 index 0000000000..bf889c1ab6 --- /dev/null +++ b/sysdeps/x86_64/multiarch/strlen.S @@ -0,0 +1,87 @@ +/* strlen(str) -- determine the length of the string STR. + Copyright (C) 2009 Free Software Foundation, Inc. + Contributed by Ulrich Drepper . + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + + +/* Define multiple versions only for the definition in libc and for + the DSO. In static binaries we need strlen before the initialization + happened. */ +#if defined SHARED && !defined NOT_IN_libc + .text +ENTRY(strlen) + .type strlen, @gnu_indirect_function + cmpl $0, __cpu_features+KIND_OFFSET(%rip) + jne 1f + call __init_cpu_features +1: leaq __strlen_sse2(%rip), %rax + testl $(1<<20), __cpu_features+CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET(%rip) + jz 2f + leaq __strlen_sse42(%rip), %rax +2: ret +END(strlen) + + + .type __strlen_sse42, @function +__strlen_sse42: + pxor %xmm2, %xmm2 + movq %rdi, %rcx + movq %rdi, %r8 + andq $~15, %rdi + movdqa %xmm2, %xmm1 + pcmpeqb (%rdi), %xmm2 + orl $0xffffffff, %esi + subq %rdi, %rcx + shll %cl, %esi + pmovmskb %xmm2, %edx + andl %esi, %edx + jnz 1f + +2: pcmpistri $0x08, 16(%rdi), %xmm1 + leaq 16(%rdi), %rdi + jnz 2b + + leaq (%rdi,%rcx), %rax + subq %r8, %rax + ret + +1: bsfl %edx, %eax + leaq (%rdi,%rax), %rax + subq %r8, %rax + ret + .size __strlen_sse42, .-__strlen_sse42 + + +# undef ENTRY +# define ENTRY(name) \ + .type __strlen_sse2, @function; __strlen_sse2: +# undef END +# define END(name) \ + .size __strlen_sse2, .-__strlen_sse2 +# undef libc_hidden_builtin_def +/* It doesn't make sense to send libc-internal strlen calls through a PLT. + The speedup we get from using SSE4.2 instruction is likely eaten away + by the indirect call in the PLT. */ +# define libc_hidden_builtin_def(name) \ + .globl __GI_strlen; __GI_strlen = __strlen_sse2 +#endif + +#include "../strlen.S" From f85a9e72e21c3fc79dbad53c170251a16d1760ab Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Jun 2009 11:39:45 -0700 Subject: [PATCH 70/76] Add missing cleanups from SSE4.2 x86-64 strlen. --- sysdeps/x86_64/multiarch/strlen.S | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sysdeps/x86_64/multiarch/strlen.S b/sysdeps/x86_64/multiarch/strlen.S index bf889c1ab6..3f03b6930c 100644 --- a/sysdeps/x86_64/multiarch/strlen.S +++ b/sysdeps/x86_64/multiarch/strlen.S @@ -40,6 +40,7 @@ ENTRY(strlen) END(strlen) + .align 16 .type __strlen_sse42, @function __strlen_sse42: pxor %xmm2, %xmm2 @@ -63,9 +64,9 @@ __strlen_sse42: subq %r8, %rax ret -1: bsfl %edx, %eax - leaq (%rdi,%rax), %rax - subq %r8, %rax +1: subq %r8, %rdi + bsfl %edx, %eax + addq %rdi, %rax ret .size __strlen_sse42, .-__strlen_sse42 From 6f9eea15bf8d49d64ca1f3fd6d1a528c40f658a4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Jun 2009 11:51:59 -0700 Subject: [PATCH 71/76] Forgot some more cleanups for the SSE4.2 strlen on x86-64. --- sysdeps/x86_64/multiarch/strlen.S | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sysdeps/x86_64/multiarch/strlen.S b/sysdeps/x86_64/multiarch/strlen.S index 3f03b6930c..79e6a977ec 100644 --- a/sysdeps/x86_64/multiarch/strlen.S +++ b/sysdeps/x86_64/multiarch/strlen.S @@ -43,6 +43,8 @@ END(strlen) .align 16 .type __strlen_sse42, @function __strlen_sse42: + cfi_startproc + CALL_MCOUNT pxor %xmm2, %xmm2 movq %rdi, %rcx movq %rdi, %r8 @@ -68,15 +70,18 @@ __strlen_sse42: bsfl %edx, %eax addq %rdi, %rax ret + cfi_endproc .size __strlen_sse42, .-__strlen_sse42 # undef ENTRY # define ENTRY(name) \ - .type __strlen_sse2, @function; __strlen_sse2: + .type __strlen_sse2, @function; \ + __strlen_sse2: cfi_startproc; \ + CALL_MCOUNT # undef END # define END(name) \ - .size __strlen_sse2, .-__strlen_sse2 + cfi_endproc; .size __strlen_sse2, .-__strlen_sse2 # undef libc_hidden_builtin_def /* It doesn't make sense to send libc-internal strlen calls through a PLT. The speedup we get from using SSE4.2 instruction is likely eaten away From b77c93232978db6506c75d708df851895ab3d48c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 5 Jun 2009 16:54:50 -0700 Subject: [PATCH 72/76] Add SSE4.2 optimized rawmemchr implementation for x86-64. --- ChangeLog | 4 ++ sysdeps/x86_64/multiarch/rawmemchr.S | 93 ++++++++++++++++++++++++++++ sysdeps/x86_64/rawmemchr.S | 7 +-- 3 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 sysdeps/x86_64/multiarch/rawmemchr.S diff --git a/ChangeLog b/ChangeLog index c6a3530c86..e0128dbacd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-06-05 Ulrich Drepper + * sysdeps/x86_64/rawmemchr.S: Minor optimization. + + * sysdeps/x86_64/multiarch/rawmemchr.S: New file. + * sysdeps/x86_64/multiarch/strlen.S: New file. * sysdeps/x86_64/multiarch/ifunc-defines.sym: New file. * sysdeps/x86_64/multiarch/Makefile: Add rule to build ifunc-defines.h. diff --git a/sysdeps/x86_64/multiarch/rawmemchr.S b/sysdeps/x86_64/multiarch/rawmemchr.S new file mode 100644 index 0000000000..93ca631633 --- /dev/null +++ b/sysdeps/x86_64/multiarch/rawmemchr.S @@ -0,0 +1,93 @@ +/* Copyright (C) 2009 Free Software Foundation, Inc. + Contributed by Ulrich Drepper . + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include + + +/* Define multiple versions only for the definition in lib. */ +#ifndef NOT_IN_libc + .text +ENTRY(rawmemchr) + .type rawmemchr, @gnu_indirect_function + cmpl $0, __cpu_features+KIND_OFFSET(%rip) + jne 1f + call __init_cpu_features +1: leaq __rawmemchr_sse2(%rip), %rax + testl $(1<<20), __cpu_features+CPUID_OFFSET+COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET(%rip) + jz 2f + leaq __rawmemchr_sse42(%rip), %rax +2: ret +END(rawmemchr) +strong_alias (rawmemchr, __rawmemchr) + + + .align 16 + .type __rawmemchr_sse42, @function +__rawmemchr_sse42: + cfi_startproc + CALL_MCOUNT + movd %esi, %xmm1 + movq %rdi, %rcx + punpcklbw %xmm1, %xmm1 + andq $~15, %rdi + punpcklbw %xmm1, %xmm1 + orl $0xffffffff, %esi + movdqa (%rdi), %xmm0 + pshufd $0, %xmm1, %xmm1 + subq %rdi, %rcx + pcmpeqb %xmm1, %xmm0 + shl %cl, %esi + pmovmskb %xmm0, %ecx + movl $16, %eax + movl $16, %edx + andl %esi, %ecx + jnz 1f + +2: pcmpestri $0x08, 16(%rdi), %xmm1 + leaq 16(%rdi), %rdi + jnc 2b + + leaq (%rdi,%rcx), %rax + ret + +1: bsfl %ecx, %eax + addq %rdi, %rax + ret + cfi_endproc + .size __rawmemchr_sse42, .-__rawmemchr_sse42 + + +# undef ENTRY +# define ENTRY(name) \ + .type __rawmemchr_sse2, @function; \ + __rawmemchr_sse2: cfi_startproc; \ + CALL_MCOUNT +# undef END +# define END(name) \ + cfi_endproc; .size __rawmemchr_sse2, .-__rawmemchr_sse2 +# undef libc_hidden_builtin_def +/* It doesn't make sense to send libc-internal rawmemchr calls through a PLT. + The speedup we get from using SSE4.2 instruction is likely eaten away + by the indirect call in the PLT. */ +# define libc_hidden_builtin_def(name) \ + .globl __GI___rawmemchr; __GI___rawmemchr = __rawmemchr_sse2 +#endif + +#include "../rawmemchr.S" diff --git a/sysdeps/x86_64/rawmemchr.S b/sysdeps/x86_64/rawmemchr.S index c3bd771635..cfb4cebf68 100644 --- a/sysdeps/x86_64/rawmemchr.S +++ b/sysdeps/x86_64/rawmemchr.S @@ -34,19 +34,18 @@ ENTRY (rawmemchr) pcmpeqb %xmm1, %xmm0 shl %cl, %esi pmovmskb %xmm0, %ecx - leaq 16(%rdi), %rdi andl %esi, %ecx jnz 1f -2: movdqa (%rdi), %xmm0 +2: movdqa 16(%rdi), %xmm0 leaq 16(%rdi), %rdi pcmpeqb %xmm1, %xmm0 pmovmskb %xmm0, %ecx testl %ecx, %ecx jz 2b -1: bsfl %ecx, %ecx - leaq -16(%rcx,%rdi), %rax +1: bsfl %ecx, %eax + addq %rdi, %rax ret END (rawmemchr) From 0d74e0436195a051d69e78bef10d23879788cb7e Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 9 Jun 2009 06:59:02 -0700 Subject: [PATCH 73/76] (_IO_new_file_fopen): Don't prematurely stop parsing mode string. --- libio/fileops.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libio/fileops.c b/libio/fileops.c index cf47c915a7..4698953f7a 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007, 2008 +/* Copyright (C) 1993, 1995, 1997-2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Per Bothner . @@ -319,11 +319,11 @@ _IO_new_file_fopen (fp, filename, mode, is32not64) continue; case 'c': fp->_flags2 |= _IO_FLAGS2_NOTCANCEL; - break; + continue; #ifdef O_CLOEXEC case 'e': oflags |= O_CLOEXEC; - break; + continue; #endif default: /* Ignore. */ From d360a0da2b42b2b79e9ce9c2d7984c234e840b7a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 9 Jun 2009 07:01:42 -0700 Subject: [PATCH 74/76] Don't premature stop parsing mode string of fopen. --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index e0128dbacd..a55d38035b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-06-09 Ulrich Drepper + + * libio/fileops.c (_IO_new_file_fopen): Don't prematurely stop + parsing mode string. + 2009-06-05 Ulrich Drepper * sysdeps/x86_64/rawmemchr.S: Minor optimization. From 5612e80b3a740ee14cd1c87e61f8047d86ed3c73 Mon Sep 17 00:00:00 2001 From: Pravin Satpute Date: Tue, 9 Jun 2009 07:46:30 -0700 Subject: [PATCH 75/76] Urdu language locale for India. --- localedata/ChangeLog | 5 ++ localedata/locales/ur_IN | 184 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 localedata/locales/ur_IN diff --git a/localedata/ChangeLog b/localedata/ChangeLog index b3db0766b2..2f8c9e8b18 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,8 @@ +2009-06-09 Ulrich Drepper + + * locales/ur_IN: New file. + Contributed by Pravin Satpute . + 2009-05-04 Ulrich Drepper * localedata/locales/bn_BD: Remove comment about missing collation diff --git a/localedata/locales/ur_IN b/localedata/locales/ur_IN new file mode 100644 index 0000000000..3ac8c737ea --- /dev/null +++ b/localedata/locales/ur_IN @@ -0,0 +1,184 @@ +comment_char % +escape_char / +% Urdu language locale for India. +% Contributed by Pravin Satpute and +% Mrs. Nasreen Khan + +LC_IDENTIFICATION + +title "Urdu language locale for India" +source "Red Hat, Pune" +address "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014" +contact "" +email "bug-glibc-locales@gnu.org" +tel "" +fax "" +language "Urdu" +territory "India" +revision "1.0" +date "2009,June,09" +% +category "ur_IN:2009";LC_IDENTIFICATION +category "ur_IN:2009";LC_CTYPE +category "ur_IN:2009";LC_COLLATE +category "ur_IN:2009";LC_TIME +category "ur_IN:2009";LC_NUMERIC +category "ur_IN:2009";LC_MONETARY +category "ur_IN:2009";LC_MESSAGES +category "ur_IN:2009";LC_PAPER +category "ur_IN:2009";LC_NAME +category "ur_IN:2009";LC_ADDRESS +category "ur_IN:2009";LC_TELEPHONE + + +END LC_IDENTIFICATION + + +LC_CTYPE +copy "i18n" + +translit_start +include "translit_combining";"" +translit_end +END LC_CTYPE + + +LC_COLLATE +% Copy the template from ISO/IEC 14651 +copy "iso14651_t1" + +END LC_COLLATE + + +LC_MONETARY +copy "ar_IN" +END LC_MONETARY + + +LC_NUMERIC +copy "hi_IN" +END LC_NUMERIC + + +LC_TIME +% This is the POSIX Locale definition for the LC_TIME category +% generated by IBM Basic CountryPack Transformer. +% These are generated based on XML base Locale definition file +% for IBM Class for Unicode. +% +% Abbreviated weekday names (%a) +abday "";/ + "";/ + "";/ + "";/ + "";/ + "";"" +% +% Full weekday names (%A) +day "";/ + "";/ + "";/ + "";/ + "";/ + "";"" +% +% Abbreviated month names (%b) +abmon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +% +% Full month names (%B) +mon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +% +% Equivalent of AM PM +am_pm "";"" +% +% Appropriate date and time representation +% %A %d %b %Y%I:%M:%S %Z +d_t_fmt "/ +/ +" +% +% Appropriate date representation +% %A %d %b %Y +d_fmt "/ +" +% +% Appropriate time representation +% %I:%M:%S %Z +t_fmt "/ +" +% +% Appropriate 12 h time representation (%r) +t_fmt_ampm "/ +" +% +% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y" +date_fmt "/ +/ +" +END LC_TIME + + +LC_MESSAGES +yesexpr "" +noexpr "" + +yesstr "" +nostr "" +END LC_MESSAGES + + +LC_PAPER +copy "hi_IN" +END LC_PAPER + + +LC_NAME +% This is the ISO_IEC TR14652 Locale definition for the LC_NAME category +% generated by IBM Basic CountryPack Transformer. +% +% +name_fmt "" +name_gen "" +name_mr "" +name_mrs "" +name_miss "" +name_ms "" + +END LC_NAME + + +LC_ADDRESS +copy "hi_IN" +END LC_ADDRESS + + +LC_TELEPHONE +copy "hi_IN" +END LC_TELEPHONE + + +LC_MEASUREMENT +copy "hi_IN" +END LC_MEASUREMENT From 88ea382fda5af7717f85bb19837c9c99094f3df4 Mon Sep 17 00:00:00 2001 From: "J.H.M. Dassen" Date: Tue, 9 Jun 2009 07:58:02 -0700 Subject: [PATCH 76/76] Remove comma at end of enum. --- ChangeLog | 3 +++ dlfcn/dlfcn.h | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a55d38035b..70c0ed8839 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2009-06-09 Ulrich Drepper + * dlfcn/dlfcn.h: Remove comma at end of enum. + Patch by J.H.M. Dassen . + * libio/fileops.c (_IO_new_file_fopen): Don't prematurely stop parsing mode string. diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h index 7e373eddf9..3e461dfec0 100644 --- a/dlfcn/dlfcn.h +++ b/dlfcn/dlfcn.h @@ -1,6 +1,5 @@ /* User functions for run-time dynamic loading. - Copyright (C) 1995-1999,2000,2001,2003,2004,2006 - Free Software Foundation, Inc. + Copyright (C) 1995-2001,2003,2004,2006,2009 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 @@ -164,7 +163,7 @@ enum segment, or if the calling thread has not allocated a block for it. */ RTLD_DI_TLS_DATA = 10, - RTLD_DI_MAX = 10, + RTLD_DI_MAX = 10 };