aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-09-27 02:50:10 +0000
committerRoland McGrath <roland@gnu.org>1995-09-27 02:50:10 +0000
commitc709e372e8940b3f374b690d7eb7521e69ab4228 (patch)
tree8a0a95671300f78c0bd1407f9b0eaf403f0a96f4
parent11c981a96d93feccba7cfb717f72db5d32a83f52 (diff)
downloadglibc-c709e372e8940b3f374b690d7eb7521e69ab4228.tar
glibc-c709e372e8940b3f374b690d7eb7521e69ab4228.tar.gz
glibc-c709e372e8940b3f374b690d7eb7521e69ab4228.tar.bz2
glibc-c709e372e8940b3f374b690d7eb7521e69ab4228.zip
* 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.
-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