mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-06-18 19:29:21 +01:00
115 lines
3.4 KiB
XML
115 lines
3.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
|
<!ENTITY % general-entities SYSTEM "../general.ent">
|
|
%general-entities;
|
|
]>
|
|
|
|
<sect1 id="ch-tools-bash" role="wrap">
|
|
<?dbhtml filename="bash.html"?>
|
|
|
|
<sect1info condition="script">
|
|
<productname>bash</productname>
|
|
<productnumber>&bash-version;</productnumber>
|
|
<address>&bash-url;</address>
|
|
</sect1info>
|
|
|
|
<title>Bash-&bash-version;</title>
|
|
|
|
<indexterm zone="ch-tools-bash">
|
|
<primary sortas="a-Bash">Bash</primary>
|
|
<secondary>tools</secondary>
|
|
</indexterm>
|
|
|
|
<sect2 role="package">
|
|
<title/>
|
|
|
|
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
href="../chapter08/bash.xml"
|
|
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
|
|
|
|
<segmentedlist>
|
|
<segtitle>&buildtime;</segtitle>
|
|
<segtitle>&diskspace;</segtitle>
|
|
|
|
<seglistitem>
|
|
<seg>&bash-tmp-sbu;</seg>
|
|
<seg>&bash-tmp-du;</seg>
|
|
</seglistitem>
|
|
</segmentedlist>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="installation">
|
|
<title>Installation of Bash</title>
|
|
|
|
<para>
|
|
Fix an issue when host has already gcc-15:
|
|
</para>
|
|
<screen><userinput remap="configure">patch -Np1 <<EOF
|
|
--- bash-5.3-rc1/bashansi.h 2024-03-26 00:17:49.000000000 +0800
|
|
+++ bash-5.3-rc1.patched/bashansi.h 2025-05-21 15:04:17.090096535 +0800
|
|
@@ -35,8 +35,11 @@
|
|
# include "ansi_stdlib.h"
|
|
#endif /* !HAVE_STDLIB_H */
|
|
|
|
-/* If bool is not a compiler builtin, prefer stdbool.h if we have it */
|
|
-#if !defined (HAVE_C_BOOL)
|
|
+/* If bool is not a compiler builtin, prefer stdbool.h if we have it
|
|
+
|
|
+ Explicitly check __STDC_VERSION__ here in addition to HAVE_C_BOOL:
|
|
+ in cross-compilation build tools does not include config.h. */
|
|
+#if !defined (HAVE_C_BOOL) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L)
|
|
# if defined (HAVE_STDBOOL_H)
|
|
# include <stdbool.h>
|
|
# else
|
|
EOF</userinput></screen>
|
|
|
|
<para>Prepare Bash for compilation:</para>
|
|
|
|
<screen><userinput remap="configure">./configure --prefix=/usr \
|
|
--build=$(sh support/config.guess) \
|
|
--host=$LFS_TGT \
|
|
--without-bash-malloc</userinput></screen>
|
|
|
|
<variablelist>
|
|
<title>The meaning of the configure options:</title>
|
|
|
|
<varlistentry>
|
|
<term><parameter>--without-bash-malloc</parameter></term>
|
|
<listitem>
|
|
<para>This option turns off the use of Bash's memory allocation
|
|
(<function>malloc</function>) function which is known to cause
|
|
segmentation faults. By turning this option off, Bash will use
|
|
the <function>malloc</function> functions from Glibc which are
|
|
more stable.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
<para>Compile the package:</para>
|
|
|
|
<screen><userinput remap="make">make</userinput></screen>
|
|
|
|
<para>Install the package:</para>
|
|
|
|
<screen><userinput remap="install">make DESTDIR=$LFS install</userinput></screen>
|
|
|
|
<para>Make a link for the programs that use <command>sh</command> for
|
|
a shell:</para>
|
|
|
|
<screen><userinput remap="install">ln -sv bash $LFS/bin/sh</userinput></screen>
|
|
|
|
</sect2>
|
|
|
|
<sect2 role="content">
|
|
<title/>
|
|
|
|
<para>Details on this package are located in
|
|
<xref linkend="contents-bash" role="."/></para>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|