diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml
index 2152fd520..55fd5a38a 100644
--- a/chapter01/changelog.xml
+++ b/chapter01/changelog.xml
@@ -42,6 +42,11 @@ First a summary, then a detailed log.
+November 12, 2005 [matt]: Improve the heuristic for determining
+a locale that is supported by both Glibc and packages outside LFS (bug 1642).
+Many thanks to Alexander Patrakov for highlighting the numerous issues and for
+reviewing the various suggested fixes.
+
November 12, 2005 [matt]: Omit running Bzip2's testsuite as a
separate step, as make runs it automatically (bug 1652).
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml
index 9ff4f18af..a30b2e308 100644
--- a/chapter06/glibc.xml
+++ b/chapter06/glibc.xml
@@ -148,11 +148,11 @@ with:
make localedata/install-locales
To save time, an alternative to running the
-previous command (which generates and installs every locale Glibc is
-aware of) is to install only those locales that are wanted and needed.
-This can be achieved by using the localedef
-command. Information on this command is located in the
-INSTALL file in the Glibc source. However, there
+previous command (which generates and installs every locale listed in the
+glibc-&glibc-version;/localedata/SUPPORTED file) is to install only those
+locales that are wanted and needed. This can be achieved by using the
+localedef command. Information on this command is located in
+the INSTALL file in the Glibc source. However, there
are a number of locales that are essential in order for the tests of
future packages to pass, in particular, the
libstdc++ tests from GCC. The following
@@ -181,12 +181,12 @@ programmers making assumptions that break in such locales, LFS should
not be used in locales that utilize multibyte character sets
(including UTF-8) or right-to-left writing order. Numerous unofficial
and unstable patches are required to fix these problems, and it has
-been decided by the LFS developers not to support such complex locales. This applies to the
-ja_JP and fa_IR locales as well—they have been installed only for
-GCC and Gettext tests to pass, and the watch program
-(part of the Procps package) does not work properly in them. Various
-attempts to circumvent these restrictions are documented in
-internationalization-related hints.
+been decided by the LFS developers not to support such complex locales at this
+time. This applies to the ja_JP and fa_IR locales as well—they have been
+installed only for GCC and Gettext tests to pass, and the
+watch program (part of the Procps package) does not work
+properly in them. Various attempts to circumvent these restrictions are
+documented in internationalization-related hints.
Build the linuxthreads man pages, which are a great reference
on the threading API (applicable to NPTL as well):
diff --git a/chapter07/profile.xml b/chapter07/profile.xml
index 5748762cb..270142a1a 100644
--- a/chapter07/profile.xml
+++ b/chapter07/profile.xml
@@ -83,7 +83,46 @@ will print:
ISO-8859-1
-This results in a final locale setting of en_GB.ISO-8859-1
.
+This results in a final locale setting of en_GB.ISO-8859-1
.
+It is important that the locale found using the heuristic above is tested prior
+to it being added to the Bash startup files:
+
+LC_ALL=[locale name] locale country
+LC_ALL=[locale name] locale language
+LC_ALL=[locale name] locale charmap
+LC_ALL=[locale name] locale int_curr_symbol
+LC_ALL=[locale name] locale int_prefix
+
+The above commands should print the country and language names, the
+character encoding used by the locale, the local currency and the prefix to dial
+before the telephone number in order to get into the country. If any of the
+commands above fail with a message similar to the one shown below, this means
+that your locale was either not installed in Chapter 6 or is not supported by
+the default installation of Glibc.
+
+locale: Cannot set LC_* to default locale: No such file or directory
+
+If this happens, you should either install the desired locale using the localedef command, or consider choosing a different locale.
+Further instructions assume that there are no such error messages from Glibc.
+
+
+Some packages beyond LFS may also lack support for your chosen locale. One
+example is the X library (part of the X Window System), which outputs the
+following error message:
+
+Warning: locale not supported by Xlib, locale set to C
+
+Sometimes it is possible to fix this by removing the charmap part of the
+locale specification, as long as that does not change the character map that
+Glibc associates with the locale (this can be checked by running the
+locale charmap command in both locales). For example, one
+would have to change "de_DE.ISO-8859-15@euro" to
+"de_DE@euro" in order to get this locale recognized by Xlib.
+
+Other packages can also function incorrectly (but may not necessarily
+display any error messages) if the locale name does not meet their expectations.
+In those cases, investigating how other Linux distributions support your locale
+might provide some useful information.
Once the proper locale settings have been determined, create the
/etc/profile file: