summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--NEWS23
-rw-r--r--libc-symbols.h2
-rw-r--r--locale/libintl.h80
-rw-r--r--manual/maint.texi230
-rw-r--r--sysdeps/unix/sysv/linux/Subdirs1
-rw-r--r--sysdeps/unix/sysv/linux/sys/param.h32
7 files changed, 247 insertions, 129 deletions
diff --git a/ChangeLog b/ChangeLog
index bf85dbe212..bd0651bf8f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 Tue Sep 26 16:50:17 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
+	* locale/libintl.h: Rewritten by Ulrich Drepper for use with GNU
+	gettext code.
+
+	* sysdeps/unix/sysv/linux/sys/param.h: New file.
+	* sysdeps/unix/sysv/linux/Subdirs: File removed.
+
+	* libc-symbols.h (_LIBC): Define to 1, not just empty.
+
 	* gmon: New directory of profiling code, incorporated from
 	4.4BSD-Lite and modified.
 	* sysdeps/i386/machine-gmon.h: New file.
diff --git a/NEWS b/NEWS
index 9d4c7d63ea..a20648f6a9 100644
--- a/NEWS
+++ b/NEWS
@@ -107,6 +107,29 @@ Version 1.10
   functions for maintaining the login-record files (primarily of use to
   system programs such as `login'), and convenient functions for
   allocating and initializing a pseudo-terminal (pty) device.
+
+* Ulrich Drepper has contributed new support for System V style
+  shared memory and IPC on systems that support it.
+
+* Ulrich Drepper has contributed several miscellaneous new functions found
+  in System V: The `hsearch' family of functions provide an effective
+  implementation of hash tables; `a64l' and `l64a' provide a very simple
+  binary to ASCII mapping; `drand48' and friends provide a 48-bit random
+  number generator.
+
+* Ulrich Drepper has contributed new reentrant counterparts for the
+  `random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
+
+* Ulrich Drepper has contributed new, highly-optimized versions of several
+  string functions for the i486/Pentium family of processors.
+
+* Ulrich Drepper has updated the Linux-specific code, based largely 
+  on work done in Hongjiu Lu's version of GNU libc for Linux.
+  The GNU library now supports Linux versions 1.3.29 and later,
+  using the ELF object file format (i[345]86-*-linux).
+
+* Ulrich Drepper has contributed a new set of message catalog functions to
+  support multiple languages, for use with his new package GNU gettext.
 
 Version 1.09
 
diff --git a/libc-symbols.h b/libc-symbols.h
index 5eefbed04c..1b6d1d0392 100644
--- a/libc-symbols.h
+++ b/libc-symbols.h
@@ -45,7 +45,7 @@ Cambridge, MA 02139, USA.  */
    Some library code that is shared with other packages also
    tests this symbol to see if it is being compiled as part
    of the C library.  */
-#define _LIBC
+#define _LIBC	1
 
 /* The symbols in all the user (non-_) macros are C symbols.  Predefined
    should be HAVE_WEAK_SYMBOLS and/or HAVE_ELF and/or HAVE_GNU_LD.
diff --git a/locale/libintl.h b/locale/libintl.h
index 802bd45492..f9a150d3df 100644
--- a/locale/libintl.h
+++ b/locale/libintl.h
@@ -1,6 +1,8 @@
-/* libintl.h -- Message catalogs for internationalization.
+/* libgettext.h -- Message catalogs for internationalization.
 Copyright (C) 1995 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
+Contributed by Ulrich Drepper.
+This file is derived from the file libgettext.h in the GNU gettext package.
 
 The GNU C Library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Library General Public License as
@@ -14,64 +16,94 @@ Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 #ifndef _LIBINTL_H
-#define	_LIBINTL_H	1
+#define _LIBINTL_H	1
+#include <features.h>
 
 #include <locale.h>
 
+#define __need_NULL
+#include <stddef.h>
+
+/* We define an additional symbol to signal that we use the GNU
+   implementation of gettext.  */
+#define __USE_GNU_GETTEXT 1
+
+__BEGIN_DECLS
 
 /* Look up MSGID in the current default message catalog for the current
    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
    text).  */
 extern char *gettext __P ((const char *__msgid));
+extern char *__gettext __P ((const char *__msgid));
 
 /* Look up MSGID in the DOMAINNAME message catalog for the current
    LC_MESSAGES locale.  */
 extern char *dgettext __P ((const char *__domainname, const char *__msgid));
+extern char *__dgettext __P ((const char *__domainname, const char *__msgid));
 
 /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
    locale.  */
-extern char *__dcgettext __P ((const char *__domainname, const char *__msgid,
-			       int __category));
 extern char *dcgettext __P ((const char *__domainname, const char *__msgid,
 			     int __category));
+extern char *__dcgettext __P ((const char *__domainname, const char *__msgid,
+			       int __category));
 
 
 /* Set the current default message catalog to DOMAINNAME.
    If DOMAINNAME is null, return the current default.
    If DOMAINNAME is "", reset to the default of "messages".  */
 extern char *textdomain __P ((const char *__domainname));
+extern char *__textdomain __P ((const char *__domainname));
 
 /* Specify that the DOMAINNAME message catalog will be found
    in DIRNAME rather than in the system locale data base.  */
 extern char *bindtextdomain __P ((const char *__domainname,
 				  const char *__dirname));
+extern char *__bindtextdomain __P ((const char *__domainname,
+				    const char *__dirname));
+
 
+/* Optimized version of the function above.  */
+#if defined __OPTIMIZED
+/* These must be a macro.  Inlined functions are useless because the
+   `__builtin_constant_p' predicate in dcgettext would always return
+   false.  */
 
-#if 1 /* XXX stub for the moment */
-#define gettext(msgid) (msgid)
-#define textdomain(domain) (void)(domain)
-#else
-#define gettext(msgid)			__gettext (msgid)
-#define __gettext(msgid)		__dgettext (NULL, (msgid))
+# define gettext (msgid) dgettext (NULL, msgid)
 
-#define	dgettext(domainname, msgid)	__dgettext (domainname, msgid)
-#define	__dgettext(domainname, msgid)	\
-  __dcgettext (NULL, (msgid), LC_MESSAGES)
+# define dgettext (domainname, msgid)					      \
+  dcgettext (domainname, msgid, LC_MESSAGES)
 
-#ifdef __GNUC__
-#define	__dcgettext(domainname, msgid, category)			      \
+# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+#  define dcgettext(domainname, msgid, category)			      \
   (__extension__							      \
    ({									      \
-     static char *__translation__;					      \
-     if (! __translation__)						      \
-       __translation__ = (__dcgettext) ((domainname), (msgid), (category));   \
-     __translation__;							      \
+     char *result;							      \
+     if (__builtin_constant_p (msgid))					      \
+       {								      \
+	 extern int _nl_msg_cat_cntr;					      \
+	 static char *__translation__;					      \
+	 static int __catalog_counter__;				      \
+	 if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr)    \
+	   {								      \
+	     __translation__ =						      \
+	       __dcgettext ((domainname), (msgid), (category));		      \
+	     __catalog_counter__ = _nl_msg_cat_cntr;			      \
+	   }								      \
+	 result = __translation__;					      \
+       }								      \
+     else								      \
+       result = __dcgettext ((domainname), (msgid), (category));	      \
+     result;								      \
     }))
-#endif
-#endif
+# endif
+#endif /* Optimizing. */
+
+
+__END_DECLS
 
-#endif	/* libintl.h */
+#endif /* libintl.h */
diff --git a/manual/maint.texi b/manual/maint.texi
index 48e741f6df..49fb6b4a04 100644
--- a/manual/maint.texi
+++ b/manual/maint.texi
@@ -733,6 +733,98 @@ The @code{getopt} function and related code were written by
 Richard Stallman, @w{David J. MacKenzie}, and @w{Roland McGrath}.
 
 @item
+The merge sort function @code{qsort} was written by Michael J. Haertel.
+
+@item
+The quick sort function used as a fallback by @code{qsort} was written
+by Douglas C. Schmidt.
+
+@item
+The memory allocation functions @code{malloc}, @code{realloc} and
+@code{free} and related code were written by Michael J. Haertel.
+
+@comment tege's name has an umlaut.
+@tex
+\xdef\SETtege{Torbj\"orn Granlund}
+@end tex
+@ifinfo
+@set tege Torbjorn Granlund
+@end ifinfo
+@item
+Fast implementations of many of the string functions (@code{memcpy},
+@code{strlen}, etc.) were written by @value{tege}.
+
+@item
+The @file{tar.h} header file was written by David J. MacKenzie.
+
+@item
+The port to the MIPS DECStation running Ultrix 4
+(@code{mips-dec-ultrix4})
+was contributed by Brendan Kehoe and Ian Lance Taylor.
+
+@item
+The DES encryption function @code{crypt} and related functions were
+contributed by Michael Glad.
+
+@item
+The @code{ftw} function was contributed by Ian Lance Taylor.
+
+@item
+The startup code to support SunOS shared libraries was contributed by
+Tom Quinn.
+
+@item
+The @code{mktime} function was contributed by Noel Cragg.
+
+@item
+The port to the Sequent Symmetry running Dynix version 3
+(@code{i386-sequent-bsd}) was contributed by Jason Merrill.
+
+@item
+The timezone support code is derived from the public-domain timezone
+package by Arthur David Olson and his many contributors.
+
+@item
+The port to the DEC Alpha running OSF/1 (@code{alpha-dec-osf1}) was
+contributed by Brendan Kehoe, using some code written by Roland McGrath.
+
+@item
+The port to SGI machines running Irix 4 (@code{mips-sgi-irix4}) was
+contributed by Tom Quinn.
+
+@item
+The port of the Mach and Hurd code to the MIPS architecture
+(@code{mips-@var{anything}-gnu}) was contributed by Kazumoto Kojima.
+
+@item
+The floating-point printing function used by @code{printf} and friends
+and the floating-point reading function used by @code{scanf},
+@code{strtod} and friends were written by Ulrich Drepper.  The
+multi-precision integer functions used in those functions are taken from
+GNU MP, which was contributed by @value{tege}.
+
+@item
+The internationalization support in the library (@file{locale.h},
+@file{langinfo.h}, etc.) was written by Ulrich Drepper and Roland
+McGrath.  Ulrich Drepper adapted the support code for message catalogs
+(@file{libintl.h}, etc.) from the GNU @code{gettext} package, which he
+also wrote.
+
+@item
+The port to Linux i386/ELF (@code{i386-@var{anything}-linux}) was
+contributed by Ulrich Drepper, based in large part on work done in
+Hongjiu Lu's Linux version of the GNU C Library.
+
+@item
+Stephen R. van den Berg contributed a highly-optimized @code{strstr} function.
+
+@item
+Ulrich Drepper contributed the @code{hsearch} and @code{drand48}
+families of functions; reentrant @samp{@dots{}@code{_r}} versions of the
+@code{random} family; System V shared memory and IPC support code; and
+several highly-optimized string functions for i@var{x}86 processors.
+
+@item
 Most of the math functions are taken from 4.4 BSD; they have been
 modified only slightly to work with the GNU C library.  The
 Internet-related code (most of the @file{inet} subdirectory) and several
@@ -795,94 +887,7 @@ changes to fit into the GNU C library and to fit the ANSI C standard,
 but the functional code is Berkeley's.@refill
 
 @item
-The merge sort function @code{qsort} was written by Michael J. Haertel.
-
-@item
-The quick sort function used as a fallback by @code{qsort} was written
-by Douglas C. Schmidt.
-
-@item
-The memory allocation functions @code{malloc}, @code{realloc} and
-@code{free} and related code were written by Michael J. Haertel.
-
-@comment tege's name has an umlaut.
-@tex
-\xdef\SETtege{Torbj\"orn Granlund}
-@end tex
-@ifinfo
-@set tege Torbjorn Granlund
-@end ifinfo
-@item
-Fast implementations of many of the string functions (@code{memcpy},
-@code{strlen}, etc.) were written by @value{tege}.
-
-@item
-Some of the support code for Mach is taken from Mach 3.0 by CMU,
-and is under the following copyright terms:
-
-@quotation
-@display
-Mach Operating System
-Copyright @copyright{} 1991,1990,1989 Carnegie Mellon University
-All Rights Reserved.
-@end display
-
-Permission to use, copy, modify and distribute this software and its
-documentation is hereby granted, provided that both the copyright
-notice and this permission notice appear in all copies of the
-software, derivative works or modified versions, and any portions
-thereof, and that both notices appear in supporting documentation.
-
-@sc{carnegie mellon allows free use of this software in its ``as is''
-condition.  carnegie mellon disclaims any liability of any kind for
-any damages whatsoever resulting from the use of this software.}
-
-Carnegie Mellon requests users of this software to return to
-
-@display
- Software Distribution Coordinator
- School of Computer Science
- Carnegie Mellon University
- Pittsburgh PA 15213-3890
-@end display
-
-@noindent
-or @samp{Software.Distribution@@CS.CMU.EDU} any improvements or
-extensions that they make and grant Carnegie Mellon the rights to
-redistribute these changes.
-@end quotation
-
-@item
-The @file{tar.h} header file was written by David J. MacKenzie.
-
-@item
-The port to the MIPS DECStation running Ultrix 4
-(@code{mips-dec-ultrix4})
-was contributed by Brendan Kehoe and Ian Lance Taylor.
-
-@item
-The DES encryption function @code{crypt} and related functions were
-contributed by Michael Glad.
-
-@item
-The @code{ftw} function was contributed by Ian Lance Taylor.
-
-@item
-The code to support SunOS shared libraries was contributed by Tom Quinn.
-
-@item
-The @code{mktime} function was contributed by Noel Cragg.
-
-@item
-The port to the Sequent Symmetry running Dynix version 3
-(@code{i386-sequent-bsd}) was contributed by Jason Merrill.
-
-@item
-The timezone support code is derived from the public-domain timezone
-package by Arthur David Olson.
-
-@item
-The Internet resolver code is taken directly from BIND 4.9.1, which is
+The Internet resolver code is taken directly from BIND 4.9.3, which is
 under both the Berkeley copyright above and also:
 
 @quotation
@@ -906,16 +911,6 @@ with the use or performance of this software.}
 @end quotation
 
 @item
-The port to the DEC Alpha running OSF/1 (@code{alpha-dec-osf1}) was
-contributed by Brendan Kehoe, using some code written by Roland McGrath.
-
-@item
-The floating-point printing function used by @code{printf} and friends
-was written by Roland McGrath and @value{tege}.  The multi-precision
-integer functions used in that function are taken from GNU MP, which was
-contributed by @value{tege}.
-
-@item
 The code to support Sun RPC is taken verbatim from Sun's
 @w{@sc{rpcsrc-4.0}} distribution, and is covered by this copyright:
 
@@ -955,12 +950,41 @@ Mountain View, California  94043
 @end quotation
 
 @item
-The port to SGI machines running Irix 4 (@code{mips-sgi-irix4}) was
-contributed by Tom Quinn.
+Some of the support code for Mach is taken from Mach 3.0 by CMU,
+and is under the following copyright terms:
+
+@quotation
+@display
+Mach Operating System
+Copyright @copyright{} 1991,1990,1989 Carnegie Mellon University
+All Rights Reserved.
+@end display
+
+Permission to use, copy, modify and distribute this software and its
+documentation is hereby granted, provided that both the copyright
+notice and this permission notice appear in all copies of the
+software, derivative works or modified versions, and any portions
+thereof, and that both notices appear in supporting documentation.
+
+@sc{carnegie mellon allows free use of this software in its ``as is''
+condition.  carnegie mellon disclaims any liability of any kind for
+any damages whatsoever resulting from the use of this software.}
+
+Carnegie Mellon requests users of this software to return to
+
+@display
+ Software Distribution Coordinator
+ School of Computer Science
+ Carnegie Mellon University
+ Pittsburgh PA 15213-3890
+@end display
+
+@noindent
+or @samp{Software.Distribution@@CS.CMU.EDU} any improvements or
+extensions that they make and grant Carnegie Mellon the rights to
+redistribute these changes.
+@end quotation
 
-@item
-The port of the Mach and Hurd code to the MIPS architecture
-(@code{mips-@var{anything}-gnu}) was contributed by Kazumoto Kojima.
 @end itemize
 
 @c @bye
diff --git a/sysdeps/unix/sysv/linux/Subdirs b/sysdeps/unix/sysv/linux/Subdirs
deleted file mode 100644
index ea1a9e9d3a..0000000000
--- a/sysdeps/unix/sysv/linux/Subdirs
+++ /dev/null
@@ -1 +0,0 @@
-sysvipc
diff --git a/sysdeps/unix/sysv/linux/sys/param.h b/sysdeps/unix/sysv/linux/sys/param.h
new file mode 100644
index 0000000000..652605e92a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sys/param.h
@@ -0,0 +1,32 @@
+#ifndef _SYS_PARAM_H
+#define _SYS_PARAM_H
+
+#include <limits.h>
+#include <linux/limits.h>
+#include <linux/param.h>
+
+#include <sys/types.h>
+
+/* Don't change it. H.J. */
+#ifdef OLD_LINUX
+#undef	MAXHOSTNAMELEN
+#define MAXHOSTNAMELEN 	8	/* max length of hostname */
+#endif
+
+#ifndef howmany
+#define howmany(x, y)	(((x)+((y)-1))/(y))
+#endif
+
+#ifndef roundup
+#define roundup(x, y)	((((x)+((y)-1))/(y))*(y))
+#endif
+
+#define MAXPATHLEN      PATH_MAX
+#define NOFILE          OPEN_MAX
+
+/*  Following the information of some of the kernel people I here assume
+ *  that block size (i.e. the value of stat.st_blocks) for all filesystem
+ *  is 512 bytes.  If not tell me or HJ.  -- Uli */
+#define DEV_BSIZE       512
+
+#endif