Since the previous commit, we've ensured the kernel displaying via DRM
even in the early stage. Now enable DRM_PANIC so the kernel will
correctly show the last lines of the kernel messages in case a panic
happens.
Currently on a LFS system booted via legacy BIOS (intead of UEFI), the
users can make two different configurations:
1. The DRM driver for the GPU is built as a module. Then before the
module is loaded (i.e. the root fs is properly mounted) the kernel
messages are displayed via the VGA console.
2. The DRM driver for the GPU is built into the kernel image. Then the
kernel messages are displayed via the DRM-emulated framebuffer
console since a very early stage (before the root fs is properly
mounted).
When the system is booted via UEFI, we use SimpleDRM on the EFI
framebuffer for displaying kernel messages, thus it's always the case 2.
Both are not good for diagnostic in case the root fs cannot be mounted
properly (it's very frequent on lfs-support):
- With 1 the VGA console can only fit 80x24 characters, so the relevent
information is often flushed away.
- With 2 the panic message is often displayed improperly when a DRM
driver is running.
The "DRM panic" feature introduced since Linux 6.11 (but it'll only
become usable for LFS since Linux 6.12) can fix the case 2, while case
1 just cannot be fixed. So start to make LFS booted via legacy BIOS
to use method 2 now, then we can enable DRM panic and fix this
long-standing issue.
Update to iana-etc-20241015.
Update to vim-9.1.0813.
Update to xz-5.6.3.
Update to sysvinit-3.11.
Update to setuptools-75.2.0.
Update to Python3-3.13.0.
Update to openssl-3.4.0.
Update to meson-1.6.0.
Update to markupsafe-3.0.2.
Update to linux-6.11.5.
Update to less-668.
Update to elfutils-0.192.
Update to Python3-3.12.7.
Update to tcl9.0.0.
Update to linux-6.11.1.
Update to libtool-2.5.3.
Update to iproute2-6.11.0.
Update to bash-5.2.37.
Update to bc-7.0.3.
The info has been severly outdated. And some info is even incorrect
from day one, for example even Glibc and GCC are not listed for LSB core
(they provide libc.so.6, libstdc++.so.6, etc.).
Update to vim-9.1.0738.
Update to texinfo-7,1,1.
Update to tcl8.6.15.
Update to sysklogd-2.6.2.
Update to setuptools-75.1.0.
Update to meson-1.5.2.
Update to iana-etc-20240912.
Update to gawk-5.3.1.
Update to bc-7.0.2.
Update to tzdata-2024b. Fixes
Update to systemd-256.5. Fixes
Update to setuptools-74.1.2. Fixes
Update to python3-3.12.6. Fixes
Update to openssl-3.3.2. Fixes
Update to man-db-2.13.0. Fixes
Update to linux-6.10.8. Fixes
Update to libpipeline-1.5.8. Fixes
Update to expat-2.6.3. Fixes
Update to bc-7.0.1. Fixes
+
I've had doubts on this "ulimit -s 32768" command for years. After
reading GCC code (libiberty/stack-limit.c) I'm pretty sure this command
is not doing what we expected.
In a typical Linux distro, the default "soft" stack limit is 8 MiB and
the default "hard" stack limit is infinite. And GCC will automatically
increase the soft limit to 64 MiB if the original soft limit is smaller
than 64 MiB, and the hard limit is at least 64 MiB. So with a typical
default configuration, the real stack limit of GCC is 64 MiB.
But our "ulimit -s 32768" command sets both the soft limit and the hard
limit to 32 MiB. Thus we are actually *decreasing* the real stack
limit. Fortunately this has not caused any test failures, but it's just
wrong (contradicting with the explanation of the command).
Thus just raise the hard limit to infinite in case the host distro uses
a not so typical configuration where the hard limit is tight, and let
GCC to set up the soft limit to the expected value on its own. It's
more future-proof than "ulimit -s 65536" in case GCC changes the
expected stack limit in the future.
It should be safe to make the change in freeze because in jhalfs it only
affects the test suite, and even in a manual build the user can skip
this command if not running the GCC test suite.
If CONFIG_FB is not set but CONFIG_DRM_FBDEV_EMULATION is set to y, on a
DRM-drived graphic card (anything from AMD/ATI, Intel, or NVIDIA in
recent 20 years) we'd be using a fb console but without
/sys/class/graphics/fb0. Then the script won't run setfont for VT 2-6.
Check /sys/class/graphics/fbcon instead of /sys/class/graphics/fb0 to
fix the issue.
Closes: https://lists.linuxfromscratch.org/sympa/arc/lfs-support/2024-08/msg00001.html
Reported-by: Alan Ianson <agianson@gmail.com>
It's added after 12.1 release and removed before 12.2 release, so when
we compare 12.1 and 12.2 it's neither added nor removed and it just
seems never existed.
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).