Ignore:
Timestamp:
01/06/2006 01:59:08 AM (18 years ago)
Author:
Jeremy Huntwork <jhuntwork@…>
Branches:
10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
Children:
abf1f62
Parents:
60e34b5
Message:

Initial support of UTF-8. Thanks Alexander Patrakov.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7245 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter06/glibc.xml

    r60e34b5 rfa21b3d  
    4848of achieving a clean build.</para>
    4949
     50<para>The glibc-libidn tarball adds support for internationalized
     51domain names (IDN) to Glibc. Many programs that
     52support IDN require the full libidn library (see
     53<ulink url="&blfs-root;view/svn/general/libidn.html"/>),
     54not this add-on.
     55Unpack the tarball from within the Glibc source
     56directory:</para>
     57
     58<screen><userinput>tar jxf ../glibc-libidn-&glibc-version;.tar.bz2</userinput></screen>
     59
     60<para>In the vi_VN.TCVN locale, <command>bash</command> enters an infinite loop
     61at startup. It is unknown whether this is a <command>bash</command> bug or a
     62Glibc problem. Disable installation of this locale in order to avoid the
     63problem:</para>
     64
     65<screen><userinput>sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED</userinput></screen>
     66
    5067<para>The Glibc documentation recommends building Glibc outside of the source
    5168directory in a dedicated build directory:</para>
     
    122139<para>Install the package:</para>
    123140
    124 <screen><userinput>make install</userinput></screen>
     141<screen><userinput>make install_root=/ install</userinput></screen>
     142
     143<para>The meaning of the make option:</para>
     144
     145<variablelist>
     146<varlistentry>
     147<term><parameter>install_root=/</parameter></term>
     148<listitem><para>This causes the Glibc Makefile not to run the
     149<filename>scripts/test-installation.pl</filename> script at the end
     150of Glibc installation. Since the toolchain has not been adjusted yet for
     151the new Glibc, this script would test Glibc installed in
     152<filename class="directory">/tools</filename> and fail because the
     153libidn add-on has not been installed there.</para></listitem>
     154</varlistentry>
     155</variablelist>
    125156
    126157<para>The locales that can make the system respond in a different
    127 language were not installed by the above command. Install this
    128 with:</para>
    129 
    130 <screen><userinput>make localedata/install-locales</userinput></screen>
    131 
    132 <para>To save time, an alternative to running the
    133 previous command (which generates and installs every locale listed in the
    134 glibc-&glibc-version;/localedata/SUPPORTED file) is to install only those
    135 locales that are wanted and needed.  This can be achieved by using the
    136 <command>localedef</command> command. Information on this command is located in
    137 the <filename>INSTALL</filename> file in the Glibc source.  However, there
    138 are a number of locales that are essential in order for the tests of
    139 future packages to pass, in particular, the
    140 <emphasis>libstdc++</emphasis> tests from GCC. The following
    141 instructions, instead of the <parameter>install-locales</parameter>
    142 target used above, will install the minimum set of locales necessary
    143 for the tests to run successfully:</para>
     158language were not installed by the above command. None of the
     159locales are required, but, if some of them are misssing, testuites of the
     160future packages would skip important testcases.</para>
     161
     162<para>Individual locales can be installed using the <command>localedef</command>
     163program. E.g., the first <command>localedef</command> command below combines
     164the <filename>/usr/share/i18n/locales/de_DE</filename> charset-independent
     165locale definition with the
     166<filename>/usr/share/i18n/charmaps/ISO-8859-1.gz</filename> charmap definition
     167and appends the result to the
     168<filename>/usr/lib/locale/locale-archive</filename> file. The following
     169instructions will install the minimum set of locales necessary
     170for the optimal coverage of tests:</para>
    144171
    145172<screen role="nodump"><userinput>mkdir -pv /usr/lib/locale
     
    153180localedef -i fr_FR -f ISO-8859-1 fr_FR
    154181localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
     182localedef -i fr_FR.UTF-8 -f UTF-8 fr_FR
    155183localedef -i it_IT -f ISO-8859-1 it_IT
    156184localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen>
    157185
    158 <para>Some locales installed by the <command>make
    159 localedata/install-locales</command> command above are not properly
    160 supported by some applications that are in the LFS and BLFS books.
    161 Because of the various problems that arise due to application
    162 programmers making assumptions that break in such locales, LFS should
    163 not be used in locales that utilize multibyte character sets
    164 (including UTF-8) or right-to-left writing order.  Numerous unofficial
    165 and unstable patches are required to fix these problems, and it has
    166 been decided by the LFS developers not to support such complex locales at this
    167 time.  This applies to the ja_JP and fa_IR locales as well&mdash;they have been
    168 installed only for GCC and Gettext tests to pass, and the
    169 <command>watch</command> program (part of the Procps package) does not work
    170 properly in them. Various attempts to circumvent these restrictions are
    171 documented in internationalization-related hints.</para>
     186<para>In addition, install the locale for your own country, language and
     187character set.</para>
     188
     189<para>Alternatively, install all locales
     190listed in the <filename>glibc-&glibc-version;/localedata/SUPPORTED</filename>
     191file (it includes every locale listed above and many more)
     192at once with the following time-consuming command:</para>
     193
     194<screen><userinput>make localedata/install-locales</userinput></screen>
     195
     196<para>Then use the <command>localedef</command> command to create and
     197install locales not listed in the
     198<filename>glibc-&glibc-version;/localedata/SUPPORTED</filename> file
     199in the unlikely case if you need them.</para>
     200<!-- The Live CD patches the localedata/SUPPORTED file instead of
     201running localedef, the results are equivalent -->
    172202
    173203</sect2>
     
    278308rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic</seg>
    279309<seg>ld.so, libBrokenLocale.[a,so],
    280 libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
     310libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libcidn.so,
    281311libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a,
    282312libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so,
     
    367397<term><command>locale</command></term>
    368398<listitem>
    369 <para>Tells the compiler to enable or disable the use of POSIX locales
    370 for built-in operations</para>
     399<para>Prints various information about the current locale</para>
    371400<indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm>
    372401</listitem>
     
    500529<term><filename class="libraryfile">libBrokenLocale</filename></term>
    501530<listitem>
    502 <para>Used by programs, such as Mozilla, to solve broken locales</para>
     531<para>Used internally by Glibc as a gross hack to get broken programs
     532(e.g., some Motif applications) running. See comments in
     533<filename>glibc-&glibc-version;/locale/broken_cur_max.c</filename> for more
     534information</para>
    503535<indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm>
    504536</listitem>
     
    508540<term><filename class="libraryfile">libSegFault</filename></term>
    509541<listitem>
    510 <para>The segmentation fault signal handler</para>
     542<para>The segmentation fault signal handler, used by
     543<command>catchsegv</command></para>
    511544<indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm>
    512545</listitem>
     
    538571</varlistentry>
    539572
     573<varlistentry id="libcidn">
     574<term><filename class="libraryfile">libcidn</filename></term>
     575<listitem>
     576<para>Used internally by Glibc for handling internationalized domain names in
     577the <function>getaddrinfo()</function> function</para>
     578<indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm>
     579</listitem>
     580</varlistentry>
     581
    540582<varlistentry id="libcrypt">
    541583<term><filename class="libraryfile">libcrypt</filename></term>
     
    557599<term><filename class="libraryfile">libg</filename></term>
    558600<listitem>
    559 <para>A runtime library for <command>g++</command></para>
     601<para>Dummy library containing no functions. Previously was a runtime library
     602for <command>g++</command></para>
    560603<indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm>
    561604</listitem>
     
    565608<term><filename class="libraryfile">libieee</filename></term>
    566609<listitem>
    567 <para>The Institute of Electrical and Electronic Engineers (IEEE) floating point library</para>
     610<para>Linking in this module forces error handling rules for math functions as
     611defined by the Institute of Electrical and Electronic Engineers (IEEE).
     612The default is POSIX.1 error handling</para>
    568613<indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm>
    569614</listitem>
     
    581626<term><filename class="libraryfile">libmcheck</filename></term>
    582627<listitem>
    583 <para>Contains code run at boot</para>
     628<para>Turns on memory allocation checking when linked to</para>
    584629<indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm>
    585630</listitem>
Note: See TracChangeset for help on using the changeset viewer.