1 | <?xml version="1.0" encoding="ISO-8859-1"?>
|
---|
2 | <!DOCTYPE c:package [
|
---|
3 | <!ENTITY % general-entities SYSTEM "../../general.ent">
|
---|
4 | %general-entities;
|
---|
5 | ]>
|
---|
6 |
|
---|
7 | <c:package xmlns:c="http://schema.cross-lfs.org/book"
|
---|
8 | xmlns:xi="http://www.w3.org/2001/XInclude"
|
---|
9 | id="ch-temp-system-bash" c:multibuild="false">
|
---|
10 |
|
---|
11 | <c:title>Bash</c:title>
|
---|
12 | <c:version>&bash-version;</c:version>
|
---|
13 | <c:variant>temporary system</c:variant>
|
---|
14 |
|
---|
15 | <xi:include href="../../final-system/common/bash.xml"
|
---|
16 | xpointer="xmlns(co=http://schema.cross-lfs.org/book)
|
---|
17 | xpointer(/co:package/co:description[1])" />
|
---|
18 |
|
---|
19 | <c:install>
|
---|
20 |
|
---|
21 | <xi:include href="../../final-system/common/bash.xml"
|
---|
22 | xpointer="xmlns(co=http://schema.cross-lfs.org/book)
|
---|
23 | xpointer(/co:package/co:install/*[@co:r='p-bu'])" />
|
---|
24 |
|
---|
25 | <c:para>When Bash is cross-compiled, it cannot test for the presence
|
---|
26 | of named pipes, among other things. If you used <c:command>su</c:command> to
|
---|
27 | become an unprivileged user, this combination will cause Bash to build
|
---|
28 | without <c:emphasis>process substitution</c:emphasis>, which will break one
|
---|
29 | of the C++ test scripts in <c:literal>eglibc</c:literal>. The following prevents
|
---|
30 | future problems by skipping the check for named pipes, as well as other
|
---|
31 | tests that can not run while cross-compiling or that do not run properly:</c:para>
|
---|
32 |
|
---|
33 | <c:command>cat > config.cache << "EOF"
|
---|
34 | ac_cv_func_mmap_fixed_mapped=yes
|
---|
35 | ac_cv_func_strcoll_works=yes
|
---|
36 | ac_cv_func_working_mktime=yes
|
---|
37 | bash_cv_func_sigsetjmp=present
|
---|
38 | bash_cv_getcwd_malloc=yes
|
---|
39 | bash_cv_job_control_missing=present
|
---|
40 | bash_cv_printf_a_format=yes
|
---|
41 | bash_cv_sys_named_pipes=present
|
---|
42 | bash_cv_ulimit_maxfds=yes
|
---|
43 | bash_cv_under_sys_siglist=yes
|
---|
44 | bash_cv_unusable_rtsigs=no
|
---|
45 | gt_cv_int_divbyzero_sigfpe=yes
|
---|
46 | EOF</c:command>
|
---|
47 |
|
---|
48 | <c:para>Prepare Bash for compilation:</c:para>
|
---|
49 |
|
---|
50 | <c:command c:arch="alpha,mips,ppc,sparc,x86">./configure -prefix=/tools \
|
---|
51 | -build=${CLFS_HOST} -host=${CLFS_TARGET} \
|
---|
52 | -without-bash-malloc -cache-file=config.cache</c:command>
|
---|
53 | <c:command c:arch="mips64-64,mips64,ppc64,sparc64-64,sparc64,x86_64-64,x86_64">CC="${CC} ${BUILD64}" CXX="${CXX} ${BUILD64}" \
|
---|
54 | ./configure --prefix=/tools \
|
---|
55 | --build=${CLFS_HOST} --host=${CLFS_TARGET} \
|
---|
56 | --without-bash-malloc --cache-file=config.cache</c:command>
|
---|
57 |
|
---|
58 | <!--
|
---|
59 | <variablelist os="c">
|
---|
60 | <title>The meaning of the configure option:</title>
|
---|
61 |
|
---|
62 | <varlistentry>
|
---|
63 | <term><parameter>-without-bash-malloc</parameter></term>
|
---|
64 | <listitem>
|
---|
65 | <para>This option turns off the use of Bash's memory allocation
|
---|
66 | (malloc) function which is known to cause segmentation faults.
|
---|
67 | By turning this option off, Bash will use the malloc functions
|
---|
68 | from Glibc which are more stable.</para>
|
---|
69 | </listitem>
|
---|
70 | </varlistentry>
|
---|
71 |
|
---|
72 | </variablelist>
|
---|
73 | -->
|
---|
74 |
|
---|
75 | <c:para>Compile the package:</c:para>
|
---|
76 |
|
---|
77 | <c:command>make</c:command>
|
---|
78 |
|
---|
79 | <c:para>Install the package:</c:para>
|
---|
80 |
|
---|
81 | <c:command>make install</c:command>
|
---|
82 |
|
---|
83 | <c:para>Make a link for programs that use <c:command>sh</c:command> for
|
---|
84 | a shell:</c:para>
|
---|
85 |
|
---|
86 | <c:command>ln -sv bash /tools/bin/sh</c:command>
|
---|
87 |
|
---|
88 | </c:install>
|
---|
89 |
|
---|
90 | <c:contents c:ref="ch-system-bash" />
|
---|
91 |
|
---|
92 | </c:package>
|
---|
93 |
|
---|