about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--FAQ42
-rw-r--r--FAQ.in40
-rw-r--r--locale/programs/locale-spec.c2
-rw-r--r--localedata/locales/it_CH74
-rw-r--r--manual/install.texi7
-rw-r--r--manual/texinfo.tex66
-rw-r--r--sysdeps/unix/sysv/linux/reboot.c4
8 files changed, 184 insertions, 60 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c1f4402b1..af8dd6f528 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+1999-02-02  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/unix/sysv/linux/reboot.c: Make sure first parameter is
+	correctly passed to the kernel even on 64bit platforms.
+	Patch by Bruce Elliott <bde@nwlink.com>.
+
+	* localedata/locales/it_CH: New file.
+	Contributed by Giacomo Amabile Catenazzi <gcatenaz@g26.ethz.ch>.
+
 1999-01-31  Ulrich Drepper  <drepper@cygnus.com>
 
 	* math/libm-test.c (fdim_test): Fix typo in message.
diff --git a/FAQ b/FAQ
index d2048cd67f..4b941e7c65 100644
--- a/FAQ
+++ b/FAQ
@@ -39,7 +39,7 @@ please let me know.
 1.14.	Why do I get messages about missing thread functions when I use
 	librt?  I don't even use threads.
 1.15.	What's the problem with configure --enable-omitfp?
-1.16.	I get failures during `make check'.  What shall I do?
+1.16.	I get failures during `make check'.  What should I do?
 1.17.	What is symbol versioning good for?  Do I need it?
 
 2. Installation and configuration issues
@@ -213,7 +213,7 @@ EGCS and with GCC 2.8.1. See question 2.8 for details.
 1.3.	When I try to compile glibc I get only error messages.
 	What's wrong?
 
-{UD} You definitely need GNU make to translate GNU libc.  No other make
+{UD} You definitely need GNU make to build GNU libc.  No other make
 program has the needed functionality.
 
 We recommend version GNU make version 3.75 or 3.77.  Versions before 3.75
@@ -317,7 +317,7 @@ when using the library do not need to match.  The GNU C library runs without
 problems on kernels that are older than the kernel headers used.  The other
 way round (compiling the GNU C library with old kernel headers and running
 on a recent kernel) does not necessarily work.  For example you can't use
-new kernel features when using old kernel headers for compiling the GNU C
+new kernel features if you used old kernel headers to compile the GNU C
 library.
 
 {ZW} Even if you are using a 2.0 kernel on your machine, we recommend you
@@ -438,19 +438,19 @@ with a library that was build this way, we advise you to rebuild the library
 without --enable-omitfp.  If the problem vanishes consider tracking the
 problem down and report it as compiler failure.
 
-Since a library build with --enable-omitfp is undebuggable on most systems,
-debuggable libraries are also built - you can use it by appending "_g" to
+Since a library built with --enable-omitfp is undebuggable on most systems,
+debuggable libraries are also built - you can use them by appending "_g" to
 the library names.
 
 The compilation of these extra libraries and the compiler optimizations slow
 down the build process and need more disk space.
 
 
-1.16.	I get failures during `make check'.  What shall I do?
+1.16.	I get failures during `make check'.  What should I do?
 
-{AJ} The testsuite should compile and run cleanly on your system, every
-failure should be looked into.  Depending on the failure I wouldn't advise
-installing the library at all.
+{AJ} The testsuite should compile and run cleanly on your system; every
+failure should be looked into.  Depending on the failures, you probably
+should not install the library at all.
 
 You should consider using the `glibcbug' script to report the failure,
 providing as much detail as possible.  If you run a test directly, please
@@ -460,13 +460,15 @@ command line which failed and run the test from the subdirectory for this
 test in the sources.
 
 There are some failures which are not directly related to the GNU libc:
-- Some compiler produce buggy code.  The egcs 1.1 release should be ok.  gcc
-  2.8.1 might cause some failures, gcc 2.7.2.x is so buggy, that explicit
-  checks have been used so that you can't build with it.
+- Some compilers produce buggy code.  No compiler gets single precision
+  complex numbers correct on Alpha.  Otherwise, the egcs 1.1 release should be
+  ok; gcc 2.8.1 might cause some failures; gcc 2.7.2.x is so buggy that
+  explicit checks have been used so that you can't build with it.
 - The kernel might have bugs.  For example on Linux/Alpha 2.0.34 the
   floating point handling has quite a number of bugs and therefore most of
   the test cases in the math subdirectory will fail.  Linux 2.2 has
-  fixes for the floating point support on Alpha.
+  fixes for the floating point support on Alpha.  The Linux/SPARC kernel has
+  also some bugs in the FPU emulation code (as of Linux 2.2.0).
 
 
 1.17.	What is symbol versioning good for?  Do I need it?
@@ -476,15 +478,15 @@ changes.  One version of an interface might have been introduced in a
 previous version of the GNU C library but the interface or the semantics of
 the function has been changed in the meantime.  For binary compatibility
 with the old library, a newer library needs to still have the old interface
-for old programs.  On the other hand new programs should use the new
+for old programs.  On the other hand, new programs should use the new
 interface.  Symbol versioning is the solution for this problem.  The GNU
-libc version 2.1 uses by default symbol versioning if the binutils support
-it.
+libc version 2.1 uses symbol versioning by default if the installed binutils
+supports it.
 
-We don't advise to build without symbol versioning since you lose binary
-compatibility if you do - for ever!  The binary compatibility you lose is
-not only against the previous version of the GNU libc (version 2.0) but also
-against future versions.
+We don't advise building without symbol versioning, since you lose binary
+compatibility - forever!  The binary compatibility you lose is not only
+against the previous version of the GNU libc (version 2.0) but also against
+all future versions.
 
 
 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
diff --git a/FAQ.in b/FAQ.in
index 32678a2f0a..73eb0ad159 100644
--- a/FAQ.in
+++ b/FAQ.in
@@ -69,7 +69,7 @@ EGCS and with GCC 2.8.1. See ?exception for details.
 ??	When I try to compile glibc I get only error messages.
 	What's wrong?
 
-{UD} You definitely need GNU make to translate GNU libc.  No other make
+{UD} You definitely need GNU make to build GNU libc.  No other make
 program has the needed functionality.
 
 We recommend version GNU make version 3.75 or 3.77.  Versions before 3.75
@@ -168,7 +168,7 @@ when using the library do not need to match.  The GNU C library runs without
 problems on kernels that are older than the kernel headers used.  The other
 way round (compiling the GNU C library with old kernel headers and running
 on a recent kernel) does not necessarily work.  For example you can't use
-new kernel features when using old kernel headers for compiling the GNU C
+new kernel features if you used old kernel headers to compile the GNU C
 library.
 
 {ZW} Even if you are using a 2.0 kernel on your machine, we recommend you
@@ -282,18 +282,18 @@ with a library that was build this way, we advise you to rebuild the library
 without --enable-omitfp.  If the problem vanishes consider tracking the
 problem down and report it as compiler failure.
 
-Since a library build with --enable-omitfp is undebuggable on most systems,
-debuggable libraries are also built - you can use it by appending "_g" to
+Since a library built with --enable-omitfp is undebuggable on most systems,
+debuggable libraries are also built - you can use them by appending "_g" to
 the library names.
 
 The compilation of these extra libraries and the compiler optimizations slow
 down the build process and need more disk space.
 
-??	I get failures during `make check'.  What shall I do?
+??	I get failures during `make check'.  What should I do?
 
-{AJ} The testsuite should compile and run cleanly on your system, every
-failure should be looked into.  Depending on the failure I wouldn't advise
-installing the library at all.
+{AJ} The testsuite should compile and run cleanly on your system; every
+failure should be looked into.  Depending on the failures, you probably
+should not install the library at all.
 
 You should consider using the `glibcbug' script to report the failure,
 providing as much detail as possible.  If you run a test directly, please
@@ -303,13 +303,15 @@ command line which failed and run the test from the subdirectory for this
 test in the sources.
 
 There are some failures which are not directly related to the GNU libc:
-- Some compiler produce buggy code.  The egcs 1.1 release should be ok.  gcc
-  2.8.1 might cause some failures, gcc 2.7.2.x is so buggy, that explicit
-  checks have been used so that you can't build with it.
+- Some compilers produce buggy code.  No compiler gets single precision
+  complex numbers correct on Alpha.  Otherwise, the egcs 1.1 release should be
+  ok; gcc 2.8.1 might cause some failures; gcc 2.7.2.x is so buggy that
+  explicit checks have been used so that you can't build with it.
 - The kernel might have bugs.  For example on Linux/Alpha 2.0.34 the
   floating point handling has quite a number of bugs and therefore most of
   the test cases in the math subdirectory will fail.  Linux 2.2 has
-  fixes for the floating point support on Alpha.
+  fixes for the floating point support on Alpha.  The Linux/SPARC kernel has
+  also some bugs in the FPU emulation code (as of Linux 2.2.0).
 
 ??	What is symbol versioning good for?  Do I need it?
 
@@ -318,15 +320,15 @@ changes.  One version of an interface might have been introduced in a
 previous version of the GNU C library but the interface or the semantics of
 the function has been changed in the meantime.  For binary compatibility
 with the old library, a newer library needs to still have the old interface
-for old programs.  On the other hand new programs should use the new
+for old programs.  On the other hand, new programs should use the new
 interface.  Symbol versioning is the solution for this problem.  The GNU
-libc version 2.1 uses by default symbol versioning if the binutils support
-it.
+libc version 2.1 uses symbol versioning by default if the installed binutils
+supports it.
 
-We don't advise to build without symbol versioning since you lose binary
-compatibility if you do - for ever!  The binary compatibility you lose is
-not only against the previous version of the GNU libc (version 2.0) but also
-against future versions.
+We don't advise building without symbol versioning, since you lose binary
+compatibility - forever!  The binary compatibility you lose is not only
+against the previous version of the GNU libc (version 2.0) but also against
+all future versions.
 
 
 ? Installation and configuration issues
diff --git a/locale/programs/locale-spec.c b/locale/programs/locale-spec.c
index 16272e8880..9ba49f0a4d 100644
--- a/locale/programs/locale-spec.c
+++ b/locale/programs/locale-spec.c
@@ -80,7 +80,7 @@ locale_special (const char *name, int show_category_name,
 		      if (ch != EOF)
 			putchar (ch);
 		      else
-			fputs ("<???\>", stdout);
+			fputs ("<??\?>", stdout);
 		    }
 
 		  putchar ('"');
diff --git a/localedata/locales/it_CH b/localedata/locales/it_CH
new file mode 100644
index 0000000000..e5b0983e17
--- /dev/null
+++ b/localedata/locales/it_CH
@@ -0,0 +1,74 @@
+comment_char %
+escape_char  /
+repertoiremap mnemonic.ds
+%
+% Italian Language Locale for Switzerland
+% Language: it
+% Territory: CH
+% Revision: ........
+% Date: 1999-01-21
+% Users: general
+% Repertoiremap: mnemonic.ds
+% Charset: ISO-8859-1
+% Distribution and use is free, also
+% for commercial purposes.
+
+LC_CTYPE
+copy "en_DK"
+END LC_CTYPE
+
+LC_COLLATE
+copy "en_DK"
+END LC_COLLATE
+
+LC_MESSAGES
+yesexpr "<'/>><<(><s><S><j><J><o><O><y><Y><)/>><.><*>"
+noexpr  "<'/>><<(><n><N><)/>><.><*>"
+END LC_MESSAGES
+
+LC_MONETARY
+copy  "de_CH"
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point             "<,>"
+thousands_sep             "<apostrophe>"
+grouping                  3;3
+END LC_NUMERIC
+
+LC_TIME
+abday   "<d><o><m>";"<l><u><n>";/
+        "<m><a><r>";"<m><e><r>";/
+        "<g><i><o>";"<v><e><n>";/
+        "<s><a><b>"
+day     "<d><o><m><e><n><i><c><a>";/
+        "<l><u><n><e><d><i!>";/
+        "<m><a><r><t><e><d><i!>";/
+        "<m><e><r><c><o><l><e><d><i!>";/
+        "<g><i><o><v><e><d><i!>";/
+        "<v><e><n><e><r><d><i!>";/
+        "<s><a><b><a><t><o>"
+abmon   "<g><e><n>";"<f><e><b>";/
+        "<m><a><r>";"<a><p><r>";/
+        "<m><a><g>";"<g><i><u>";/
+        "<l><u><g>";"<a><g><o>";/
+        "<s><e><t>";"<o><t><t>";/
+        "<n><o><v>";"<d><i><c>"
+mon     "<g><e><n><n><a><i><o>";/
+        "<f><e><b><b><r><a><i><o>";/
+        "<m><a><r><z><o>";/
+        "<a><p><r><i><l><e>";/
+        "<m><a><g><g><i><o>";/
+        "<g><i><u><g><n><o>";/
+        "<l><u><g><l><i><o>";/
+        "<a><g><o><s><t><o>";/
+        "<s><e><t><t><e><m><b><r><e>";/
+        "<o><t><t><o><b><r><e>";/
+        "<n><o><v><e><m><b><r><e>";/
+        "<d><i><c><e><m><b><r><e>"
+d_t_fmt "<%><a><SP><%><d><SP><%><b><SP><%><Y><SP><%><T><SP><%><Z>"
+d_fmt   "<%><d><.><SP><%><m><.><SP><%><y>"
+t_fmt   "<%><T>"
+am_pm   "";""
+t_fmt_ampm ""
+END LC_TIME
diff --git a/manual/install.texi b/manual/install.texi
index 694c1d69fa..a05114d7be 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -48,10 +48,9 @@ GNU Make, and possibly others.  @xref{Tools for Compilation}, below.
 @cindex configuring
 @cindex compiling
 
-GNU Libc cannot be compiled in the source directory.  You must create a
-separate directory for the object files.  This directory should be
-outside the source tree.  For example, if you have unpacked the glibc
-sources in @file{/src/gnu/glibc-2.1.0}, create a directory
+GNU Libc can be compiled in the source directory but we'd advise to
+build in a separate build directory.  For example, if you have unpacked
+the glibc sources in @file{/src/gnu/glibc-2.1.0}, create a directory
 @file{/src/gnu/glibc-build} to put the object files in.
 
 From your object directory, run the shell script @file{configure} found
diff --git a/manual/texinfo.tex b/manual/texinfo.tex
index 2ff84c5d70..a57d2a85de 100644
--- a/manual/texinfo.tex
+++ b/manual/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{1999-01-24}%
+\def\texinfoversion{1999-01-29}%
 %
 % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
 % Free Software Foundation, Inc.
@@ -2477,6 +2477,8 @@ width0pt\relax} \fi
 \let\value = \expandablevalue
 %
 \unsepspaces
+% Turn off macro expansion
+\turnoffmacros
 }
 
 % If an index command is used in an @example environment, any spaces
@@ -4502,8 +4504,11 @@ width0pt\relax} \fi
  \newwrite\macscribble
  \def\scanmacro#1{%
    \begingroup \newlinechar`\^^M
+   % Undo catcode changes of \startcontents and \doprintindex
+   \catcode`\@=0 \catcode`\\=12 \escapechar=`\@
+   \toks0={#1}%
    \immediate\openout\macscribble=\jobname.tmp
-   \immediate\write\macscribble{#1}%
+   \immediate\write\macscribble{\the\toks0}%
    \immediate\closeout\macscribble
    \let\xeatspaces\eatspaces
    \input \jobname.tmp
@@ -4512,12 +4517,16 @@ width0pt\relax} \fi
 \else
 \def\scanmacro#1{%
 \begingroup \newlinechar`\^^M
+% Undo catcode changes of \startcontents and \doprintindex
+\catcode`\@=0 \catcode`\\=12 \escapechar=`\@
 \let\xeatspaces\eatspaces\scantokens{#1}\endgroup}
 \fi
 
 \newcount\paramno   % Count of parameters
 \newtoks\macname    % Macro name
 \newif\ifrecursive  % Is it recursive?
+\def\macrolist{}    % List of all defined macros in the form
+                    % \do\macro1\do\macro2...
 
 % Utility routines.
 % Thisdoes \let #1 = #2, except with \csnames.
@@ -4600,10 +4609,17 @@ width0pt\relax} \fi
   \else
      \expandafter\parsemargdef \argl;%
   \fi
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-     \cslet{macsave.\the\macname}{\the\macname}%
-  \else
+  \if1\csname ismacro.\the\macname\endcsname
      \message{Warning: redefining \the\macname}%
+  \else
+     \expandafter\ifx\csname \the\macname\endcsname \relax
+     \else \errmessage{The name \the\macname\space is reserved}\fi
+     \global\cslet{macsave.\the\macname}{\the\macname}%
+     \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+     % Add the macroname to \macrolist
+     \toks0 = \expandafter{\macrolist\do}%
+     \xdef\macrolist{\the\toks0
+       \expandafter\noexpand\csname\the\macname\endcsname}%
   \fi
   \begingroup \macrobodyctxt
   \ifrecursive \expandafter\parsermacbody
@@ -4612,11 +4628,27 @@ width0pt\relax} \fi
 
 \def\unmacro{\parsearg\unmacroxxx}
 \def\unmacroxxx#1{%
-  \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
-    \errmessage{Macro \the\macname\ not defined.}%
+  \if1\csname ismacro.#1\endcsname
+    \global\cslet{#1}{macsave.#1}%
+    \global\expandafter\let \csname ismacro.#1\endcsname=0%
+    % Remove the macro name from \macrolist
+    \begingroup
+      \edef\tempa{\expandafter\noexpand\csname#1\endcsname}
+      \def\do##1{%
+        \def\tempb{##1}%
+        \ifx\tempa\tempb
+          % remove this
+        \else
+          \toks0 = \expandafter{\newmacrolist\do}%
+          \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
+        \fi}
+      \def\newmacrolist{}%
+      % Execute macro list to define \newmacrolist
+      \macrolist
+      \global\let\macrolist\newmacrolist
+    \endgroup
   \else
-    \cslet{#1}{macsave.#1}%
-    \expandafter\let \csname macsave.\the\macname\endcsname \undefined
+    \errmessage{Macro #1 not defined}%
   \fi
 }
 
@@ -4675,7 +4707,8 @@ width0pt\relax} \fi
     \or % 1
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
          \egroup\noexpand\scanmacro{\temp}}%
     \else % many
@@ -4683,7 +4716,7 @@ width0pt\relax} \fi
          \bgroup\noexpand\macroargctxt
          \noexpand\csname\the\macname xx\endcsname}
       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
       \expandafter\expandafter
       \expandafter\xdef
       \expandafter\expandafter
@@ -4699,7 +4732,8 @@ width0pt\relax} \fi
     \or % 1
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline\csname\the\macname xxx\endcsname}%
+         \noexpand\braceorline
+         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
         \egroup
         \noexpand\norecurse{\the\macname}%
@@ -4707,9 +4741,9 @@ width0pt\relax} \fi
     \else % many
       \expandafter\xdef\csname\the\macname\endcsname{%
          \bgroup\noexpand\macroargctxt
-         \noexpand\csname\the\macname xx\endcsname}
+         \expandafter\noexpand\csname\the\macname xx\endcsname}
       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-          \csname\the\macname xxx\endcsname ##1,}%
+          \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
       \expandafter\expandafter
       \expandafter\xdef
       \expandafter\expandafter
@@ -4733,6 +4767,10 @@ width0pt\relax} \fi
     \expandafter\parsearg
   \fi \next}
 
+% We mant to disable all macros during \shipout so that they are not
+% expanded by \write.
+\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
+  \edef\next{\macrolist}\expandafter\endgroup\next}
 
 \message{cross references,}
 \newwrite\auxfile
diff --git a/sysdeps/unix/sysv/linux/reboot.c b/sysdeps/unix/sysv/linux/reboot.c
index 1a01ec2f61..11cef30e13 100644
--- a/sysdeps/unix/sysv/linux/reboot.c
+++ b/sysdeps/unix/sysv/linux/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999 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
@@ -28,5 +28,5 @@ extern int __syscall_reboot (int magic, int magic_too, int flag);
 int
 reboot (int howto)
 {
-  return INLINE_SYSCALL (reboot, 3, 0xfee1dead, 672274793, howto);
+  return INLINE_SYSCALL (reboot, 3, (int) 0xfee1dead, 672274793, howto);
 }