Commit Graph

3057 Commits

Author SHA1 Message Date
Xi Ruoyao
39c800d18c
bash: Remove bash_cv_strtold_broken=no workaround
It's no longer needed for bash-5.2.37, the upstream has fixed the bug at
https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-033.
2024-11-08 21:04:37 +08:00
Bruce Dubbs
c5fbd9da12 Minor grammar fix. 2024-09-04 09:59:12 -05:00
Xi Ruoyao
e4b4449d11
ncurses: Simplify evading from mawk
Since it's overridable with the command line, just override it instead
of using a sed.
2024-09-04 20:21:58 +08:00
Xi Ruoyao
217802b9c0
gcc-pass2: Fix description of LDFLAGS_FOR_TARGET=
Pass 2 libstdc++ still links to libgcc.a even with LDFLAGS_FOR_TARGET=,
despite this libgcc.a is from pass 2 instead of pass 1.

The difference between pass 2 libgcc and pass 1 libgcc is Glibc wasn't
installed when the pass 1 libgcc was built.  This difference causes both
consequences (1) pass 1 libgcc lacks shared library and (2) pass 1
libgcc cannot support C++ EH, but it's not (1) causing (2).
2024-08-19 13:56:08 +08:00
Xi Ruoyao
6e6641f9b7
binutils: Add --enable-new-dtags
This option makes ld use DT_RUNPATH instead of DT_RPATH.  DT_RPATH is
generally considered bad because it takes precedence over
LD_LIBRARY_PATH.  For example, eog is linked with -rpath /usr/lib/eog,
and with DT_RPATH if an old eog is already installed we are basically
impossible to debug a new eog build w/o overwriting the system
installation first or explicitly using "ld.so --inhibit-rpath" to
invoke it.

This "new" actually means "new in 2000," it's 24 years ago and all other
distros has enabled it.  Thus I guess some unexplainable "test suite
uses installed library instead of the just built one" issues in BLFS are
actually caused by this difference: the package author just assumes
everyone is using DT_RUNPATH thus they just set LD_LIBRARY_PATH and
consider it enough to test with the just built libraries, but DT_RPATH
breaks this expectation.

Let's eliminate the difference as it seems not doing anything good and
doing so just takes one switch.
2024-07-18 11:13:20 +08:00
Xi Ruoyao
201aa93863
Move punctuation/comma into quotes for <xref>s
We are using American rule for punctuation/comma vs. quotes.  We've
fixed most cases but not <xref>s.
2024-06-22 11:43:31 +08:00
Xi Ruoyao
32c050cb58
gcc-pass2: Don't ambigiously use "previously" 2024-05-22 16:22:14 +08:00
Xi Ruoyao
87e5e08d34
gcc pass2: --disable-libsanitizer is no longer strictly needed
GCC 14 libsanitizer no longer depends on crypt.h.  But let's keep this
option for reducing build time, just update the explanation.

Also remove libxcrypt from GCC depedency list.
2024-05-15 19:48:50 +08:00
Bruce Dubbs
340e17adc6 Package updates.
Update to vim-9.1.0405.
Update to util-linux-2.40.1.
Update to linux-6.8.9.
Update to jinja2-3.1.4 (Python mpdule).
Update to iana-etc-20240502.
Update to gcc-14.1.0.
2024-05-11 15:17:56 -05:00
Xi Ruoyao
3abde5946b
ncurses: Remove explicit --enable-widec in chapter 6 like chapter 8 2024-05-01 15:49:51 +08:00
Thomas Trepl
5a661c39b0 Fix changing entity name 2024-05-01 08:16:22 +02:00
Xi Ruoyao
7db37658c2
chapter06/ncurses: Use ncurses-release instead of ncurses-version for library file names
Reported-by: Stefano Moretti <stemoretti@gmx.com>
Closes: https://lists.linuxfromscratch.org/sympa/arc/lfs-dev/2024-04/msg00051.html
2024-04-26 20:02:16 +08:00
Pierre Labastie
360fdfca9c Fix punctuation in quotes, and quote signs
- period and comma inside quotes
- " to <quote>
- some " to <literal> when it is a var value
2024-01-26 18:28:53 +01:00
Xi Ruoyao
943f22504e
ncurses: Use symlinks instead of linker scripts
The effect will not change, but with symlinks ld can save some time
invoking open(), read(), etc. syscalls and parsing the linker scripts.

Note that I've also removed "libcursesw" symlink because this library
has never existed.  Instead libcurses.so is created as a symlink
direct to libncursesw.so.
2024-01-22 00:27:45 +08:00
Xi Ruoyao
d282f88dea
ncurses: Modify the header to always use the ABI of ncursesw
instead of the 8-bit ncurses.

We don't provide the 8-bit ncurses library and we are "faking" it using
ncursesw.  Thus innocent package may be compiled with the 8-bit ABI
(because it does not know what we are doing and so it does not use
the "expected" preprocessor definitions to enable the wide ABI) but
linked against ncursesw, causing a potential ABI mismatch.
2024-01-22 00:27:45 +08:00
Pierre Labastie
7152faa5fa Change all xml files to utf-8 encoding 2024-01-18 20:53:23 +01:00
Xi Ruoyao
6fec3f51e7
binutils: Add --enable-default-hash-style=gnu for configure (#5401) 2023-12-31 02:37:07 +08:00
Xi Ruoyao
642f779f64
gcc-pass2: Fix the indent of the sed command in case 2023-12-03 12:42:28 +08:00
Bruce Dubbs
a851a78ded Formatting 2023-12-02 14:41:09 -06:00
Douglas R. Reno
5e8bab73a1 Chapter 6 Ncurses: minor text tweaks 2023-11-22 19:18:51 -06:00
Thomas Trepl
96f7f5ed58 Remove textual description of an arg no loger in instructions 2023-09-25 14:46:25 +02:00
Xi Ruoyao
cb6fcea9bf
binutils-pass2: Minor reword 2023-09-10 15:25:04 +08:00
Xi Ruoyao
9f9a9b4950
binutils-pass2: Reword the paragraph about libtool workaround
Well, I was blaming libtool too much.  If the entire Binutils tree uses
libtool this won't happen.  The problem is Binutils building system is
using libtool-style idiom on non-libtool components.

And this issue is not related to cross compiling, at all.  A native
build can exploit the issue as well (see the updated comment).

Maybe I'll submit a patch to GCC (yes, not a typo, GCC is the upstream
of Binutils building system) to fix the issue when I have the mood...
2023-09-08 21:49:06 +08:00
Xi Ruoyao
aa5fa04a5a
coreutils: Drop gl_cv_macro_MB_CUR_MAX_good override
It's not needed anymore with 9.4.
2023-09-08 17:10:14 +08:00
Bruce Dubbs
be5b2e03fc Package updates:
Update to vim-9.0.1677.
Update to openssl-3.1.2.
Update to man-pages-6.05.
Update to binutils-2.41.
Update to gmp-6.3.0.
Update to glibc-2.38.
2023-08-01 13:52:22 -05:00
Xi Ruoyao
fb3b88e8f2
binutils-pass2: Remove libsframe.{a,la} like other libs 2023-07-25 12:33:32 +08:00
Xi Ruoyao
f652d5bb26
gcc-pass2: Disable libsanitizer
Building libsanitizer needs libcrypt.  Disable it so we don't need to
add libxcrypt into Chapter 6.
2023-06-30 06:32:31 +08:00
Xi Ruoyao
0eb98bde5f
coreutils: Explain gl_cv_macro_MB_CUR_MAX_good=yes 2023-05-07 10:56:05 +08:00
Bruce Dubbs
a28bb20e62 Alternate fix for Ch6 coreutils. 2023-04-27 10:19:31 -05:00
Bruce Dubbs
bd5b888ad3 Create new branch for gcc13 2023-04-27 10:01:17 -05:00
Xi Ruoyao
770e789527
Package updates
- Update to systemd-253
- Update to bc-6.3.1
- Update to linux-6.2.2
- Update to procps-ng-4.0.3
- Update to iproute2-6.2.0
- Update to meson-1.0.1
- Update to make-4.4.1
- Update to elfutils-0.189
2023-03-05 10:57:09 +08:00
Xi Ruoyao
f01f8a56da
gcc: remove --disable-decimal-float from pass 1 and 2
We need to enable decimal float here or MPFR will be built w/o decimal
float support.  Then 2 of 183 tests will be skipped, and this will also
cause an ICA issue.

Q: Why we need decimal float in pass 1?
A: We need pass-1 GCC with decimal float support to build decimal float
routines in pass-2 libgcc.
2022-11-22 18:22:53 +08:00
Bruce Dubbs
9292384bac Package updates and a fix.
Fix make-4.4 bug.
Update to wheel-0.38.4 (Python Module).
Update to texinfo-7.0.
Update to sysvinit-3.05.
Update to shadow-4.13.
Update to sed-4.9.
Update to meson-0.64.0.
Update to linux-6.0.7.
Update to elfutils-0.188.
Update to bc-6.1.1.
2022-11-11 09:44:13 -06:00
David Bryant
6dff9ef949 Edit English idiom. punctuation, etc., throughout chapter 6. 2022-11-03 19:29:02 -05:00
Xi Ruoyao
68588615e6
temp bash: fix "support/config.guess: Permission denied"
In bash-5.2 tarball config.guess is not executable, so we need to run
the script with an explicit "sh".
2022-10-09 13:35:48 +08:00
Pierre Labastie
0611f706d5 Use default-pie and default-ssp flags in gcc
Committing only the commands for now, so that others can test the
build. TODO:
- add command explanations
- add changelog
- comment on failing tests in binutils and gcc
2022-09-09 16:15:06 +02:00
Xi Ruoyao
baecd49c48
gcc-pass2: remove unnecessary --enable-initfini-array option
Forgot to remove this one when I removed it in pass 1...

Reference: https://gcc.gnu.org/r12-1328
2022-09-01 14:04:34 +08:00
Bruce Dubbs
f2af13d7a0 Intermediate update prior to lfs-11.2-rc1 2022-08-20 10:35:01 -05:00
Xi Ruoyao
6099a47149
Remove libtool archive (.la) files in Chapter 5 and 6
They are really harmful.  In Binutils pass 2, libstdc++.la caused the
building system to use host /usr/lib/libstdc++.so for gprofng.  We now
has disabled gprofng for pass 2, but the similar issue also exists in
GCC pass 2.  In a normal LFS build, the building system silently uses
/usr/lib/libstdc++.so (I guess it does not blow up simply because some
blind luck); in a real cross build (x86 -> ARM for example) the build
will fail.

Remove the .la files to fix this issue.  Instead of only modifying
clfs-ng, it makes more sense to apply the change for trunk: though
the build does not fail, using host library is still a contamination.
2022-08-19 12:41:48 +08:00
Bruce Dubbs
1b11115cd2 Package updates.
Update to binutils-2.38.
Update to util-linux-2.38.1.
Update to Python3-3.10.6.
Update to glibc-2.36.
2022-08-06 17:40:17 -05:00
Pierre Labastie
f8b27abcda Generate shared C++ bindings for ncurses
Presently we let the build system generate static C++ bindings, and
then we remove them. Note that we could also prevent generating
any C++ binding, since nothing in LFS/BLFS use them, but it seems to
me that generating the shared ones is closer to what is done for
other packages.
2022-06-29 14:08:29 +02:00
Xi Ruoyao
f81a8a4a3c
fix command for removing libncurses++w.a
What was I doing ?!
2022-05-27 21:50:53 +08:00
Xi Ruoyao
2bb813a1e8
ncurses: remove libncurses++w.a from temp ncurses 2022-05-26 19:30:40 +08:00
Xi Ruoyao
d70e621d8e
gcc-12: remove unneeded sed for PR100017 in pass 2
Reference: https://gcc.gnu.org/r12-6406
2022-05-06 21:13:27 +08:00
Bruce Dubbs
c9629e0347 Typo 2022-03-06 15:37:02 -06:00
Xi Ruoyao
3bb463d33d
gcc-pass2: document *_FOR_TARGET parameters 2022-03-02 18:02:07 +08:00
Xi Ruoyao
8e0f8a9a52
gcc pass2: use --target=$LFS_TGT instead of many {C,CXX}_FOR_TARGET
There is also a "GCC_FOR_TARGET" which was not set correctly.  The
--target=$LFS_TGT parameter can set up all of these variables as we
expected.
2022-03-02 18:00:10 +08:00
Xi Ruoyao
459d4936ae
fix GCC PR100017 and enable libstdc++ for pass 2
This is the issue preventing us from cross-compiling libstdc++ in
Chapter 6.  By fixing this issue we can remove a seperate pass 2 for
libstdc++ and simplify the instruction.

The upstream fix will be released in 11.3 and 12.0, so we can remove the
first sed upgrading gcc next time.
2022-02-27 23:36:55 +08:00
Xi Ruoyao
426913ea08
binutils-pass2: workaround "binaries link to host libraries" issue
A very old libtool copy (2009-11-29) is shipped in binutils tarball.  It
does not support sysroot, so the cross-built binutils binaries may link
to libraries from the host distro, if certain libraries are available.

The ideal solution should be updating libtool, as libtool-2.4.6 (in LFS)
has sysroot support.  However, updating libtool for binutils is not
trivial: it would require to rerun autoconf and binutils building system
sticks to autoconf-2.69.  Another issue is the sysroot support for
libtool has introduced a configure option "--with-sysroot", which
conflicts with an already existing option with the same name in
GCC and binutils building system (we are using the GCC/binutils version
of --with-sysroot in chapter 5).

GCC building system has --with-build-sysroot (we are using this for GCC
pass 2) for this issue.  Binutils copied GCC building system, but it
does not respect --with-build-sysroot.

So for now we just edit libtool code to prevent "-L/usr/lib" in
$LFS_TGT_gcc command line.  It should fix the issue about host libiberty
(reported in #lfs-support) as well, but it still need to be confirmed by
someone having such a host.

Tested with a jhalfs run on LFS.
2022-02-10 21:05:33 +08:00
Bruce Dubbs
9c4ff70edf Package updates.
Update to bc-5.2.2.
Update to linux-5.16.8.
Update to binutils-2.38. Requires adding zlib to Chapter 6.
2022-02-09 20:54:15 -06:00