diff options
author | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-01-06 01:59:08 +0000 |
---|---|---|
committer | Jeremy Huntwork <jhuntwork@linuxfromscratch.org> | 2006-01-06 01:59:08 +0000 |
commit | fa21b3dc894b9964620968dfae6685d69ce89fb9 (patch) | |
tree | 2353b9af8cae48156b98e651873d483e994e352a /chapter06/glibc.xml | |
parent | 60e34b52810dd47567ca18aa2c86fe4cd7c9fd01 (diff) |
Initial support of UTF-8. Thanks Alexander Patrakov.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7245 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter06/glibc.xml')
-rw-r--r-- | chapter06/glibc.xml | 123 |
1 files changed, 84 insertions, 39 deletions
diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml index c09759789..14ad42aa6 100644 --- a/chapter06/glibc.xml +++ b/chapter06/glibc.xml @@ -47,6 +47,23 @@ and linker cannot be adjusted before the Glibc install because the Glibc autoconf tests would give false results and defeat the goal of achieving a clean build.</para> +<para>The glibc-libidn tarball adds support for internationalized +domain names (IDN) to Glibc. Many programs that +support IDN require the full libidn library (see +<ulink url="&blfs-root;view/svn/general/libidn.html"/>), +not this add-on. +Unpack the tarball from within the Glibc source +directory:</para> + +<screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen> + +<para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop +at startup. It is unknown whether this is a <command>bash</command> bug or a +Glibc problem. Disable installation of this locale in order to avoid the +problem:</para> + +<screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen> + <para>The Glibc documentation recommends building Glibc outside of the source directory in a dedicated build directory:</para> @@ -121,26 +138,36 @@ Prevent this warning with:</para> <para>Install the package:</para> -<screen><userinput>make install</userinput></screen> +<screen><userinput>make install_root=/ install</userinput></screen> -<para>The locales that can make the system respond in a different -language were not installed by the above command. Install this -with:</para> +<para>The meaning of the make option:</para> -<screen><userinput>make localedata/install-locales</userinput></screen> +<variablelist> +<varlistentry> +<term><parameter>install_root=/</parameter></term> +<listitem><para>This causes the Glibc Makefile not to run the +<filename>scripts/test-installation.pl</filename> script at the end +of Glibc installation. Since the toolchain has not been adjusted yet for +the new Glibc, this script would test Glibc installed in +<filename class="directory">/tools</filename> and fail because the +libidn add-on has not been installed there.</para></listitem> +</varlistentry> +</variablelist> -<para>To save time, an alternative to running the -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 -<command>localedef</command> command. Information on this command is located in -the <filename>INSTALL</filename> 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 -<emphasis>libstdc++</emphasis> tests from GCC. The following -instructions, instead of the <parameter>install-locales</parameter> -target used above, will install the minimum set of locales necessary -for the tests to run successfully:</para> +<para>The locales that can make the system respond in a different +language were not installed by the above command. None of the +locales are required, but, if some of them are misssing, testuites of the +future packages would skip important testcases.</para> + +<para>Individual locales can be installed using the <command>localedef</command> +program. E.g., the first <command>localedef</command> command below combines +the <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent +locale definition with the +<filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition +and appends the result to the +<filename>/usr/lib/locale/locale-archive</filename> file. The following +instructions will install the minimum set of locales necessary +for the optimal coverage of tests:</para> <screen role="nodump"><userinput>mkdir -pv /usr/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE @@ -152,23 +179,26 @@ localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef -i fr_FR -f ISO-8859-1 fr_FR localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro +localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR localedef -i it_IT -f ISO-8859-1 it_IT localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> -<para>Some locales installed by the <command>make -localedata/install-locales</command> command above are not properly -supported by some applications that are in the LFS and BLFS books. -Because of the various problems that arise due to application -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 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 -<command>watch</command> program (part of the Procps package) does not work -properly in them. Various attempts to circumvent these restrictions are -documented in internationalization-related hints.</para> +<para>In addition, install the locale for your own country, language and +character set.</para> + +<para>Alternatively, install all locales +listed in the <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> +file (it includes every locale listed above and many more) +at once with the following time-consuming command:</para> + +<screen><userinput>make localedata/install-locales</userinput></screen> + +<para>Then use the <command>localedef</command> command to create and +install locales not listed in the +<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file +in the unlikely case if you need them.</para> +<!-- The Live CD patches the localedata/SUPPORTED file instead of +running localedef, the results are equivalent --> </sect2> @@ -277,7 +307,7 @@ getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg> <seg>ld.so, libBrokenLocale.[a,so], -libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], +libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libcidn.so, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, @@ -366,8 +396,7 @@ by each given program or shared library</para> <varlistentry id="locale"> <term><command>locale</command></term> <listitem> -<para>Tells the compiler to enable or disable the use of POSIX locales -for built-in operations</para> +<para>Prints various information about the current locale</para> <indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm> </listitem> </varlistentry> @@ -499,7 +528,10 @@ printing the currently executed function</para> <varlistentry id="libBrokenLocale"> <term><filename class="libraryfile">libBrokenLocale</filename></term> <listitem> -<para>Used by programs, such as Mozilla, to solve broken locales</para> +<para>Used internally by Glibc as a gross hack to get broken programs +(e.g., some Motif applications) running. See comments in +<filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename> for more +information</para> <indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm> </listitem> </varlistentry> @@ -507,7 +539,8 @@ printing the currently executed function</para> <varlistentry id="libSegFault"> <term><filename class="libraryfile">libSegFault</filename></term> <listitem> -<para>The segmentation fault signal handler</para> +<para>The segmentation fault signal handler, used by +<command>catchsegv</command></para> <indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm> </listitem> </varlistentry> @@ -537,6 +570,15 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< </listitem> </varlistentry> +<varlistentry id="libcidn"> +<term><filename class="libraryfile">libcidn</filename></term> +<listitem> +<para>Used internally by Glibc for handling internationalized domain names in +the <function>getaddrinfo()</function> function</para> +<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm> +</listitem> +</varlistentry> + <varlistentry id="libcrypt"> <term><filename class="libraryfile">libcrypt</filename></term> <listitem> @@ -556,7 +598,8 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libg"> <term><filename class="libraryfile">libg</filename></term> <listitem> -<para>A runtime library for <command>g++</command></para> +<para>Dummy library containing no functions. Previously was a runtime library +for <command>g++</command></para> <indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm> </listitem> </varlistentry> @@ -564,7 +607,9 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libieee"> <term><filename class="libraryfile">libieee</filename></term> <listitem> -<para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para> +<para>Linking in this module forces error handling rules for math functions as +defined by the Institute of Electrical and Electronic Engineers (IEEE). +The default is POSIX.1 error handling</para> <indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm> </listitem> </varlistentry> @@ -580,7 +625,7 @@ in order to run certain Berkey Software Distribution (BSD) programs under Linux< <varlistentry id="libmcheck"> <term><filename class="libraryfile">libmcheck</filename></term> <listitem> -<para>Contains code run at boot</para> +<para>Turns on memory allocation checking when linked to</para> <indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm> </listitem> </varlistentry> |