From c709e372e8940b3f374b690d7eb7521e69ab4228 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 27 Sep 1995 02:50:10 +0000 Subject: [PATCH] * 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. --- ChangeLog | 8 + NEWS | 23 +++ libc-symbols.h | 2 +- locale/libintl.h | 80 +++++++--- manual/maint.texi | 230 +++++++++++++++------------- sysdeps/unix/sysv/linux/Subdirs | 1 - sysdeps/unix/sysv/linux/sys/param.h | 32 ++++ 7 files changed, 247 insertions(+), 129 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/Subdirs create mode 100644 sysdeps/unix/sysv/linux/sys/param.h 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 + * 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 #include +#define __need_NULL +#include + +/* 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 @@ -732,6 +732,98 @@ by other people. 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 @@ -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 @@ -905,16 +910,6 @@ negligence or other tortious action, arising out of or in connection 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 +#include +#include + +#include + +/* 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 -- 2.43.5