From 7b40a1c6e275d097c89a8411db1d1e37b75c8e6d Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Wed, 10 Jan 2024 21:45:02 +0100 Subject: [PATCH] Revert "grub: update to 2.12-rc1" This reverts commit 3273f4796a108c7fbe66c0c30a6d6b18be43d4d3. --- config/flash-images/grub/11_linux_scon | 139 ++++++------------ config/rootfiles/common/aarch64/grub | 64 +++++++- config/rootfiles/common/riscv64/grub | 64 +++++++- config/rootfiles/common/x86_64/grub | 70 +++++++-- lfs/grub | 8 +- .../grub-2.12-rc1-fix_bli_bin_sh_path.patch | 9 -- .../grub-Handle-R_RISCV_CALL_PLT-reloc.patch | 48 ++++++ .../grub/grub-Use-zifencei-on-riscv.patch | 47 ++++++ 8 files changed, 313 insertions(+), 136 deletions(-) delete mode 100644 src/patches/grub/grub-2.12-rc1-fix_bli_bin_sh_path.patch create mode 100644 src/patches/grub/grub-Handle-R_RISCV_CALL_PLT-reloc.patch create mode 100644 src/patches/grub/grub-Use-zifencei-on-riscv.patch diff --git a/config/flash-images/grub/11_linux_scon b/config/flash-images/grub/11_linux_scon index e49c857a3d..68f5543863 100755 --- a/config/flash-images/grub/11_linux_scon +++ b/config/flash-images/grub/11_linux_scon @@ -18,10 +18,10 @@ set -e # along with GRUB. If not, see . prefix="/usr" -exec_prefix="/usr" -datarootdir="/usr/share" +exec_prefix="${prefix}" +datarootdir="${prefix}/share" -. "$pkgdatadir/grub-mkconfig_lib" +. "${datarootdir}/grub/grub-mkconfig_lib" export TEXTDOMAIN=grub export TEXTDOMAINDIR="${datarootdir}/locale" @@ -32,7 +32,7 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS=GNU/Linux else OS="${GRUB_DISTRIBUTOR} GNU/Linux" - CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}" fi # loop-AES arranges things so that /dev/loop/X can be our root device, but @@ -43,29 +43,21 @@ case ${GRUB_DEVICE} in ;; esac -: ${GRUB_CMDLINE_LINUX_RECOVERY:=single} - -# Default to disabling partition uuid support to maintian compatibility with -# older kernels. -: ${GRUB_DISABLE_LINUX_PARTUUID=true} - -# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter -# and mounting btrfs requires user space scanning, so force UUID in this case. -if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ - || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ - && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ - || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ - && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ - || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then +if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ + || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ + || uses_abstraction "${GRUB_DEVICE}" lvm; then LINUX_ROOT_DEVICE=${GRUB_DEVICE} -elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ - || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then - LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} else LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} fi -case x"$GRUB_FS" in +GRUBFS="`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" + +if [ x"$GRUBFS" = x ]; then + GRUBFS="$(stat -f --printf=%T / || true)" +fi + +case x"$GRUBFS" in xbtrfs) rootsubvol="`make_system_path_relative_to_its_root /`" rootsubvol="${rootsubvol#/}" @@ -75,7 +67,7 @@ case x"$GRUB_FS" in xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" - LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}" + LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}" ;; esac @@ -109,7 +101,7 @@ linux_entry () echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" fi if [ x$type != xrecovery ] ; then - save_default_entry | grub_add_tab + save_default_entry | sed -e "s/^/\t/" fi # Use ELILO's generic "efifb" when it's known to be available. @@ -131,30 +123,26 @@ linux_entry () if [ x$dirname = x/ ]; then if [ -z "${prepare_root_cache}" ]; then - prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)" + prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | sed -e "s/^/\t/")" fi printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/" else if [ -z "${prepare_boot_cache}" ]; then - prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)" + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" fi printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" fi message="$(gettext_printf "Loading Linux %s ..." ${version})" sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' + echo '$message' linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF if test -n "${initrd}" ; then # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" - initrd_path= - for i in ${initrd}; do - initrd_path="${initrd_path} ${rel_dirname}/${i}" - done sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - initrd $(echo $initrd_path) + echo '$message' + initrd ${rel_dirname}/${initrd} EOF fi sed "s/^/$submenu_indentation/" << EOF @@ -165,15 +153,13 @@ EOF machine=`uname -m` case "x$machine" in xi?86 | xx86_64) - list= - for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do - if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi - done ;; + list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do + if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi + done` ;; *) - list= - for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do - if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi - done ;; + list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do + if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi + done` ;; esac case "$machine" in @@ -193,19 +179,9 @@ title_correction_code= # yet, so it's empty. In a submenu it will be equal to '\t' (one tab). submenu_indentation="" -# Perform a reverse version sort on the entire list. -# Temporarily replace the '.old' suffix by ' 1' and append ' 2' for all -# other files to order the '.old' files after their non-old counterpart -# in reverse-sorted order. - -reverse_sorted_list=$(echo $list | tr ' ' '\n' | sed -e 's/\.old$/ 1/; / 1$/! s/$/ 2/' | version_sort -r | sed -e 's/ 1$/.old/; s/ 2$//') - -if [ "x$GRUB_TOP_LEVEL" != x ]; then - reverse_sorted_list=$(grub_move_to_front "$GRUB_TOP_LEVEL" ${reverse_sorted_list}) -fi - -is_top_level=true -for linux in ${reverse_sorted_list}; do +is_first_entry=true +while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 basename=`basename $linux` dirname=`dirname $linux` @@ -214,19 +190,9 @@ for linux in ${reverse_sorted_list}; do alt_version=`echo $version | sed -e "s,\.old$,,g"` linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" - initrd_early= - for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ - ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do - if test -e "${dirname}/${i}" ; then - initrd_early="${initrd_early} ${i}" - fi - done - - initrd_real= - for i in "initrd.img-${version}" "initrd-${version}.img" \ - "initrd-${alt_version}.img.old" "initrd-${version}.gz" \ - "initrd-${alt_version}.gz.old" "initrd-${version}" \ - "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \ + initrd= + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ "initrd-${alt_version}" "initramfs-${alt_version}.img" \ "initramfs-genkernel-${version}" \ @@ -234,22 +200,11 @@ for linux in ${reverse_sorted_list}; do "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do if test -e "${dirname}/${i}" ; then - initrd_real="${i}" + initrd="$i" break fi done - initrd= - if test -n "${initrd_early}" || test -n "${initrd_real}"; then - initrd="${initrd_early} ${initrd_real}" - - initrd_display= - for i in ${initrd}; do - initrd_display="${initrd_display} ${dirname}/${i}" - done - gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 - fi - config= for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then @@ -263,36 +218,26 @@ for linux in ${reverse_sorted_list}; do initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` fi - if test -z "${initramfs}" && test -z "${initrd_real}" ; then + if test -n "${initrd}" ; then + gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 + elif test -z "${initramfs}" ; then # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's # no initrd or builtin initramfs, it can't work here. - if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ - || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then - - linux_root_device_thisversion=${GRUB_DEVICE} - else - linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} - fi + linux_root_device_thisversion=${GRUB_DEVICE} fi - # The GRUB_DISABLE_SUBMENU option used to be different than others since it was - # mentioned in the documentation that has to be set to 'y' instead of 'true' to - # enable it. This caused a lot of confusion to users that set the option to 'y', - # 'yes' or 'true'. This was fixed but all of these values must be supported now. - if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then - GRUB_DISABLE_SUBMENU="true" - fi - - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then + if [ "x$is_first_entry" = xtrue ]; then linux_entry "Serial Console: ${OS}" "${version}" serial \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} console=ttyS0,115200n8" - submenu_indentation="$grub_tab" + submenu_indentation="\t" if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi fi + + list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` done echo "$title_correction_code" diff --git a/config/rootfiles/common/aarch64/grub b/config/rootfiles/common/aarch64/grub index ddacba511f..af297b7742 100644 --- a/config/rootfiles/common/aarch64/grub +++ b/config/rootfiles/common/aarch64/grub @@ -9,7 +9,6 @@ etc/grub.d/00_cloud etc/grub.d/00_header etc/grub.d/10_linux etc/grub.d/20_linux_xen -etc/grub.d/25_bli etc/grub.d/30_os-prober etc/grub.d/30_uefi-firmware etc/grub.d/40_custom @@ -54,8 +53,6 @@ usr/lib/grub/arm64-efi/bitmap.mod usr/lib/grub/arm64-efi/bitmap.module usr/lib/grub/arm64-efi/bitmap_scale.mod usr/lib/grub/arm64-efi/bitmap_scale.module -usr/lib/grub/arm64-efi/bli.mod -usr/lib/grub/arm64-efi/bli.module usr/lib/grub/arm64-efi/blocklist.mod usr/lib/grub/arm64-efi/blocklist.module usr/lib/grub/arm64-efi/boot.mod @@ -119,8 +116,6 @@ usr/lib/grub/arm64-efi/efifwsetup.mod usr/lib/grub/arm64-efi/efifwsetup.module usr/lib/grub/arm64-efi/efinet.mod usr/lib/grub/arm64-efi/efinet.module -usr/lib/grub/arm64-efi/efitextmode.mod -usr/lib/grub/arm64-efi/efitextmode.module usr/lib/grub/arm64-efi/elf.mod usr/lib/grub/arm64-efi/elf.module usr/lib/grub/arm64-efi/eval.mod @@ -194,7 +189,6 @@ usr/lib/grub/arm64-efi/gcry_twofish.module usr/lib/grub/arm64-efi/gcry_whirlpool.mod usr/lib/grub/arm64-efi/gcry_whirlpool.module usr/lib/grub/arm64-efi/gdb_grub -usr/lib/grub/arm64-efi/gdb_helper.py usr/lib/grub/arm64-efi/geli.mod usr/lib/grub/arm64-efi/geli.module usr/lib/grub/arm64-efi/gettext.mod @@ -207,6 +201,7 @@ usr/lib/grub/arm64-efi/gfxterm_background.mod usr/lib/grub/arm64-efi/gfxterm_background.module usr/lib/grub/arm64-efi/gfxterm_menu.mod usr/lib/grub/arm64-efi/gfxterm_menu.module +usr/lib/grub/arm64-efi/gmodule.pl usr/lib/grub/arm64-efi/gptsync.mod usr/lib/grub/arm64-efi/gptsync.module usr/lib/grub/arm64-efi/gzio.mod @@ -361,8 +356,6 @@ usr/lib/grub/arm64-efi/pbkdf2_test.mod usr/lib/grub/arm64-efi/pbkdf2_test.module usr/lib/grub/arm64-efi/pgp.mod usr/lib/grub/arm64-efi/pgp.module -usr/lib/grub/arm64-efi/plainmount.mod -usr/lib/grub/arm64-efi/plainmount.module usr/lib/grub/arm64-efi/png.mod usr/lib/grub/arm64-efi/png.module usr/lib/grub/arm64-efi/priority_queue.mod @@ -509,6 +502,61 @@ usr/share/grub/unicode.pf2 #usr/share/info/grub.info #usr/share/info/grub.info-1 #usr/share/info/grub.info-2 +#usr/share/locale/ast/LC_MESSAGES/grub.mo +#usr/share/locale/ca/LC_MESSAGES/grub.mo +#usr/share/locale/da/LC_MESSAGES/grub.mo +#usr/share/locale/de/LC_MESSAGES/grub.mo +#usr/share/locale/de@hebrew +#usr/share/locale/de@hebrew/LC_MESSAGES +#usr/share/locale/de@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/de_CH +#usr/share/locale/de_CH/LC_MESSAGES +#usr/share/locale/de_CH/LC_MESSAGES/grub.mo +#usr/share/locale/en@arabic +#usr/share/locale/en@arabic/LC_MESSAGES +#usr/share/locale/en@arabic/LC_MESSAGES/grub.mo +#usr/share/locale/en@cyrillic +#usr/share/locale/en@cyrillic/LC_MESSAGES +#usr/share/locale/en@cyrillic/LC_MESSAGES/grub.mo +#usr/share/locale/en@greek +#usr/share/locale/en@greek/LC_MESSAGES +#usr/share/locale/en@greek/LC_MESSAGES/grub.mo +#usr/share/locale/en@hebrew +#usr/share/locale/en@hebrew/LC_MESSAGES +#usr/share/locale/en@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/en@piglatin +#usr/share/locale/en@piglatin/LC_MESSAGES +#usr/share/locale/en@piglatin/LC_MESSAGES/grub.mo +#usr/share/locale/en@quot/LC_MESSAGES/grub.mo +#usr/share/locale/eo/LC_MESSAGES/grub.mo +#usr/share/locale/es/LC_MESSAGES/grub.mo +#usr/share/locale/fi/LC_MESSAGES/grub.mo +#usr/share/locale/fr/LC_MESSAGES/grub.mo +#usr/share/locale/gl/LC_MESSAGES/grub.mo +#usr/share/locale/hr/LC_MESSAGES/grub.mo +#usr/share/locale/hu/LC_MESSAGES/grub.mo +#usr/share/locale/id/LC_MESSAGES/grub.mo +#usr/share/locale/it/LC_MESSAGES/grub.mo +#usr/share/locale/ja/LC_MESSAGES/grub.mo +#usr/share/locale/ko/LC_MESSAGES/grub.mo +#usr/share/locale/lg/LC_MESSAGES/grub.mo +#usr/share/locale/lt/LC_MESSAGES/grub.mo +#usr/share/locale/nb/LC_MESSAGES/grub.mo +#usr/share/locale/nl/LC_MESSAGES/grub.mo +#usr/share/locale/pa/LC_MESSAGES/grub.mo +#usr/share/locale/pl/LC_MESSAGES/grub.mo +#usr/share/locale/pt/LC_MESSAGES/grub.mo +#usr/share/locale/pt_BR/LC_MESSAGES/grub.mo +#usr/share/locale/ro/LC_MESSAGES/grub.mo +#usr/share/locale/ru/LC_MESSAGES/grub.mo +#usr/share/locale/sl/LC_MESSAGES/grub.mo +#usr/share/locale/sr/LC_MESSAGES/grub.mo +#usr/share/locale/sv/LC_MESSAGES/grub.mo +#usr/share/locale/tr/LC_MESSAGES/grub.mo +#usr/share/locale/uk/LC_MESSAGES/grub.mo +#usr/share/locale/vi/LC_MESSAGES/grub.mo +#usr/share/locale/zh_CN/LC_MESSAGES/grub.mo +#usr/share/locale/zh_TW/LC_MESSAGES/grub.mo #usr/share/man/man1/grub-editenv.1 #usr/share/man/man1/grub-file.1 #usr/share/man/man1/grub-fstest.1 diff --git a/config/rootfiles/common/riscv64/grub b/config/rootfiles/common/riscv64/grub index ca262f7d09..be2fed0a5c 100644 --- a/config/rootfiles/common/riscv64/grub +++ b/config/rootfiles/common/riscv64/grub @@ -9,7 +9,6 @@ etc/grub.d/00_cloud etc/grub.d/00_header etc/grub.d/10_linux etc/grub.d/20_linux_xen -etc/grub.d/25_bli etc/grub.d/30_os-prober etc/grub.d/30_uefi-firmware etc/grub.d/40_custom @@ -54,8 +53,6 @@ usr/lib/grub/riscv64-efi/bitmap.mod usr/lib/grub/riscv64-efi/bitmap.module usr/lib/grub/riscv64-efi/bitmap_scale.mod usr/lib/grub/riscv64-efi/bitmap_scale.module -usr/lib/grub/riscv64-efi/bli.mod -usr/lib/grub/riscv64-efi/bli.module usr/lib/grub/riscv64-efi/blocklist.mod usr/lib/grub/riscv64-efi/blocklist.module usr/lib/grub/riscv64-efi/boot.mod @@ -119,8 +116,6 @@ usr/lib/grub/riscv64-efi/efifwsetup.mod usr/lib/grub/riscv64-efi/efifwsetup.module usr/lib/grub/riscv64-efi/efinet.mod usr/lib/grub/riscv64-efi/efinet.module -usr/lib/grub/riscv64-efi/efitextmode.mod -usr/lib/grub/riscv64-efi/efitextmode.module usr/lib/grub/riscv64-efi/elf.mod usr/lib/grub/riscv64-efi/elf.module usr/lib/grub/riscv64-efi/eval.mod @@ -194,7 +189,6 @@ usr/lib/grub/riscv64-efi/gcry_twofish.module usr/lib/grub/riscv64-efi/gcry_whirlpool.mod usr/lib/grub/riscv64-efi/gcry_whirlpool.module usr/lib/grub/riscv64-efi/gdb_grub -usr/lib/grub/riscv64-efi/gdb_helper.py usr/lib/grub/riscv64-efi/geli.mod usr/lib/grub/riscv64-efi/geli.module usr/lib/grub/riscv64-efi/gettext.mod @@ -207,6 +201,7 @@ usr/lib/grub/riscv64-efi/gfxterm_background.mod usr/lib/grub/riscv64-efi/gfxterm_background.module usr/lib/grub/riscv64-efi/gfxterm_menu.mod usr/lib/grub/riscv64-efi/gfxterm_menu.module +usr/lib/grub/riscv64-efi/gmodule.pl usr/lib/grub/riscv64-efi/gptsync.mod usr/lib/grub/riscv64-efi/gptsync.module usr/lib/grub/riscv64-efi/gzio.mod @@ -361,8 +356,6 @@ usr/lib/grub/riscv64-efi/pbkdf2_test.mod usr/lib/grub/riscv64-efi/pbkdf2_test.module usr/lib/grub/riscv64-efi/pgp.mod usr/lib/grub/riscv64-efi/pgp.module -usr/lib/grub/riscv64-efi/plainmount.mod -usr/lib/grub/riscv64-efi/plainmount.module usr/lib/grub/riscv64-efi/png.mod usr/lib/grub/riscv64-efi/png.module usr/lib/grub/riscv64-efi/priority_queue.mod @@ -507,6 +500,61 @@ usr/share/grub/unicode.pf2 #usr/share/info/grub.info #usr/share/info/grub.info-1 #usr/share/info/grub.info-2 +#usr/share/locale/ast/LC_MESSAGES/grub.mo +#usr/share/locale/ca/LC_MESSAGES/grub.mo +#usr/share/locale/da/LC_MESSAGES/grub.mo +#usr/share/locale/de/LC_MESSAGES/grub.mo +#usr/share/locale/de@hebrew +#usr/share/locale/de@hebrew/LC_MESSAGES +#usr/share/locale/de@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/de_CH +#usr/share/locale/de_CH/LC_MESSAGES +#usr/share/locale/de_CH/LC_MESSAGES/grub.mo +#usr/share/locale/en@arabic +#usr/share/locale/en@arabic/LC_MESSAGES +#usr/share/locale/en@arabic/LC_MESSAGES/grub.mo +#usr/share/locale/en@cyrillic +#usr/share/locale/en@cyrillic/LC_MESSAGES +#usr/share/locale/en@cyrillic/LC_MESSAGES/grub.mo +#usr/share/locale/en@greek +#usr/share/locale/en@greek/LC_MESSAGES +#usr/share/locale/en@greek/LC_MESSAGES/grub.mo +#usr/share/locale/en@hebrew +#usr/share/locale/en@hebrew/LC_MESSAGES +#usr/share/locale/en@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/en@piglatin +#usr/share/locale/en@piglatin/LC_MESSAGES +#usr/share/locale/en@piglatin/LC_MESSAGES/grub.mo +#usr/share/locale/en@quot/LC_MESSAGES/grub.mo +#usr/share/locale/eo/LC_MESSAGES/grub.mo +#usr/share/locale/es/LC_MESSAGES/grub.mo +#usr/share/locale/fi/LC_MESSAGES/grub.mo +#usr/share/locale/fr/LC_MESSAGES/grub.mo +#usr/share/locale/gl/LC_MESSAGES/grub.mo +#usr/share/locale/hr/LC_MESSAGES/grub.mo +#usr/share/locale/hu/LC_MESSAGES/grub.mo +#usr/share/locale/id/LC_MESSAGES/grub.mo +#usr/share/locale/it/LC_MESSAGES/grub.mo +#usr/share/locale/ja/LC_MESSAGES/grub.mo +#usr/share/locale/ko/LC_MESSAGES/grub.mo +#usr/share/locale/lg/LC_MESSAGES/grub.mo +#usr/share/locale/lt/LC_MESSAGES/grub.mo +#usr/share/locale/nb/LC_MESSAGES/grub.mo +#usr/share/locale/nl/LC_MESSAGES/grub.mo +#usr/share/locale/pa/LC_MESSAGES/grub.mo +#usr/share/locale/pl/LC_MESSAGES/grub.mo +#usr/share/locale/pt/LC_MESSAGES/grub.mo +#usr/share/locale/pt_BR/LC_MESSAGES/grub.mo +#usr/share/locale/ro/LC_MESSAGES/grub.mo +#usr/share/locale/ru/LC_MESSAGES/grub.mo +#usr/share/locale/sl/LC_MESSAGES/grub.mo +#usr/share/locale/sr/LC_MESSAGES/grub.mo +#usr/share/locale/sv/LC_MESSAGES/grub.mo +#usr/share/locale/tr/LC_MESSAGES/grub.mo +#usr/share/locale/uk/LC_MESSAGES/grub.mo +#usr/share/locale/vi/LC_MESSAGES/grub.mo +#usr/share/locale/zh_CN/LC_MESSAGES/grub.mo +#usr/share/locale/zh_TW/LC_MESSAGES/grub.mo #usr/share/man/man1/grub-editenv.1 #usr/share/man/man1/grub-file.1 #usr/share/man/man1/grub-fstest.1 diff --git a/config/rootfiles/common/x86_64/grub b/config/rootfiles/common/x86_64/grub index 665c0e2234..737fa8ccbb 100644 --- a/config/rootfiles/common/x86_64/grub +++ b/config/rootfiles/common/x86_64/grub @@ -10,7 +10,6 @@ etc/grub.d/00_cloud etc/grub.d/00_header etc/grub.d/10_linux etc/grub.d/20_linux_xen -etc/grub.d/25_bli etc/grub.d/30_os-prober etc/grub.d/30_uefi-firmware etc/grub.d/40_custom @@ -231,7 +230,6 @@ usr/lib/grub/i386-pc/gcry_whirlpool.module usr/lib/grub/i386-pc/gdb.mod usr/lib/grub/i386-pc/gdb.module usr/lib/grub/i386-pc/gdb_grub -usr/lib/grub/i386-pc/gdb_helper.py usr/lib/grub/i386-pc/geli.mod usr/lib/grub/i386-pc/geli.module usr/lib/grub/i386-pc/gettext.mod @@ -244,6 +242,7 @@ usr/lib/grub/i386-pc/gfxterm_background.mod usr/lib/grub/i386-pc/gfxterm_background.module usr/lib/grub/i386-pc/gfxterm_menu.mod usr/lib/grub/i386-pc/gfxterm_menu.module +usr/lib/grub/i386-pc/gmodule.pl usr/lib/grub/i386-pc/gptsync.mod usr/lib/grub/i386-pc/gptsync.module usr/lib/grub/i386-pc/gzio.mod @@ -430,8 +429,6 @@ usr/lib/grub/i386-pc/pcidump.mod usr/lib/grub/i386-pc/pcidump.module usr/lib/grub/i386-pc/pgp.mod usr/lib/grub/i386-pc/pgp.module -usr/lib/grub/i386-pc/plainmount.mod -usr/lib/grub/i386-pc/plainmount.module usr/lib/grub/i386-pc/plan9.mod usr/lib/grub/i386-pc/plan9.module usr/lib/grub/i386-pc/play.mod @@ -643,8 +640,6 @@ usr/lib/grub/x86_64-efi/bitmap.mod usr/lib/grub/x86_64-efi/bitmap.module usr/lib/grub/x86_64-efi/bitmap_scale.mod usr/lib/grub/x86_64-efi/bitmap_scale.module -usr/lib/grub/x86_64-efi/bli.mod -usr/lib/grub/x86_64-efi/bli.module usr/lib/grub/x86_64-efi/blocklist.mod usr/lib/grub/x86_64-efi/blocklist.module usr/lib/grub/x86_64-efi/boot.mod @@ -724,8 +719,6 @@ usr/lib/grub/x86_64-efi/efifwsetup.mod usr/lib/grub/x86_64-efi/efifwsetup.module usr/lib/grub/x86_64-efi/efinet.mod usr/lib/grub/x86_64-efi/efinet.module -usr/lib/grub/x86_64-efi/efitextmode.mod -usr/lib/grub/x86_64-efi/efitextmode.module usr/lib/grub/x86_64-efi/ehci.mod usr/lib/grub/x86_64-efi/ehci.module usr/lib/grub/x86_64-efi/elf.mod @@ -801,7 +794,6 @@ usr/lib/grub/x86_64-efi/gcry_twofish.module usr/lib/grub/x86_64-efi/gcry_whirlpool.mod usr/lib/grub/x86_64-efi/gcry_whirlpool.module usr/lib/grub/x86_64-efi/gdb_grub -usr/lib/grub/x86_64-efi/gdb_helper.py usr/lib/grub/x86_64-efi/geli.mod usr/lib/grub/x86_64-efi/geli.module usr/lib/grub/x86_64-efi/gettext.mod @@ -814,6 +806,7 @@ usr/lib/grub/x86_64-efi/gfxterm_background.mod usr/lib/grub/x86_64-efi/gfxterm_background.module usr/lib/grub/x86_64-efi/gfxterm_menu.mod usr/lib/grub/x86_64-efi/gfxterm_menu.module +usr/lib/grub/x86_64-efi/gmodule.pl usr/lib/grub/x86_64-efi/gptsync.mod usr/lib/grub/x86_64-efi/gptsync.module usr/lib/grub/x86_64-efi/gzio.mod @@ -998,8 +991,6 @@ usr/lib/grub/x86_64-efi/pcidump.mod usr/lib/grub/x86_64-efi/pcidump.module usr/lib/grub/x86_64-efi/pgp.mod usr/lib/grub/x86_64-efi/pgp.module -usr/lib/grub/x86_64-efi/plainmount.mod -usr/lib/grub/x86_64-efi/plainmount.module usr/lib/grub/x86_64-efi/play.mod usr/lib/grub/x86_64-efi/play.module usr/lib/grub/x86_64-efi/png.mod @@ -1182,6 +1173,63 @@ usr/share/grub/unicode.pf2 #usr/share/info/grub.info #usr/share/info/grub.info-1 #usr/share/info/grub.info-2 +#usr/share/locale/ast/LC_MESSAGES/grub.mo +#usr/share/locale/ca/LC_MESSAGES/grub.mo +#usr/share/locale/da/LC_MESSAGES/grub.mo +#usr/share/locale/de/LC_MESSAGES/grub.mo +#usr/share/locale/de@hebrew +#usr/share/locale/de@hebrew/LC_MESSAGES +#usr/share/locale/de@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/de_CH +#usr/share/locale/de_CH/LC_MESSAGES +#usr/share/locale/de_CH/LC_MESSAGES/grub.mo +#usr/share/locale/en@arabic +#usr/share/locale/en@arabic/LC_MESSAGES +#usr/share/locale/en@arabic/LC_MESSAGES/grub.mo +#usr/share/locale/en@cyrillic +#usr/share/locale/en@cyrillic/LC_MESSAGES +#usr/share/locale/en@cyrillic/LC_MESSAGES/grub.mo +#usr/share/locale/en@greek +#usr/share/locale/en@greek/LC_MESSAGES +#usr/share/locale/en@greek/LC_MESSAGES/grub.mo +#usr/share/locale/en@hebrew +#usr/share/locale/en@hebrew/LC_MESSAGES +#usr/share/locale/en@hebrew/LC_MESSAGES/grub.mo +#usr/share/locale/en@piglatin +#usr/share/locale/en@piglatin/LC_MESSAGES +#usr/share/locale/en@piglatin/LC_MESSAGES/grub.mo +#usr/share/locale/en@quot/LC_MESSAGES/grub.mo +#usr/share/locale/eo/LC_MESSAGES/grub.mo +#usr/share/locale/es/LC_MESSAGES/grub.mo +#usr/share/locale/fi/LC_MESSAGES/grub.mo +#usr/share/locale/fr/LC_MESSAGES/grub.mo +#usr/share/locale/gl/LC_MESSAGES/grub.mo +#usr/share/locale/hr/LC_MESSAGES/grub.mo +#usr/share/locale/hu/LC_MESSAGES/grub.mo +#usr/share/locale/id/LC_MESSAGES/grub.mo +#usr/share/locale/it/LC_MESSAGES/grub.mo +#usr/share/locale/ja/LC_MESSAGES/grub.mo +#usr/share/locale/ko/LC_MESSAGES/grub.mo +#usr/share/locale/lg/LC_MESSAGES/grub.mo +#usr/share/locale/lt/LC_MESSAGES/grub.mo +#usr/share/locale/nb/LC_MESSAGES/grub.mo +#usr/share/locale/nl/LC_MESSAGES/grub.mo +#usr/share/locale/pa +#usr/share/locale/pa/LC_MESSAGES +#usr/share/locale/pa/LC_MESSAGES/grub.mo +#usr/share/locale/pl/LC_MESSAGES/grub.mo +#usr/share/locale/pt/LC_MESSAGES/grub.mo +#usr/share/locale/pt_BR/LC_MESSAGES/grub.mo +#usr/share/locale/ro/LC_MESSAGES/grub.mo +#usr/share/locale/ru/LC_MESSAGES/grub.mo +#usr/share/locale/sl/LC_MESSAGES/grub.mo +#usr/share/locale/sr/LC_MESSAGES/grub.mo +#usr/share/locale/sv/LC_MESSAGES/grub.mo +#usr/share/locale/tr/LC_MESSAGES/grub.mo +#usr/share/locale/uk/LC_MESSAGES/grub.mo +#usr/share/locale/vi/LC_MESSAGES/grub.mo +#usr/share/locale/zh_CN/LC_MESSAGES/grub.mo +#usr/share/locale/zh_TW/LC_MESSAGES/grub.mo #usr/share/man/man1/grub-editenv.1 #usr/share/man/man1/grub-file.1 #usr/share/man/man1/grub-fstest.1 diff --git a/lfs/grub b/lfs/grub index 2db76c627f..e4cd35d780 100644 --- a/lfs/grub +++ b/lfs/grub @@ -24,7 +24,7 @@ include Config -VER = 2.12-rc1 +VER = 2.06 THISAPP = grub-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -61,7 +61,7 @@ objects = $(DL_FILE) \ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) unifont-7.0.03.pcf.gz = $(DL_FROM)/unifont-7.0.03.pcf.gz -$(DL_FILE)_BLAKE2 = 3ada3d51b8cbae260b8ddeb249d8529f273ca578e5361a24988e6e1bf5ef405e507831862dfcefd35ee1c26068cbdc38eda7a04fe1cec378e945e08c5b00d891 +$(DL_FILE)_BLAKE2 = 2a40b9b03d7bb3b9e7b1309ab274d686f01b3c42e7035ebc6e5a0e59a59c3b7362ba518341664b314cb0dbc8222bb10ea05ce09f08ce9d58a293207cb909e417 unifont-7.0.03.pcf.gz_BLAKE2 = fb96c1786fcc8c77796c90ce30a2b7d544013bd62cedbf7b027e1894fe75cdbd2044717796cb0e3150db1457fcb58076491d9c0b855621b652fb9a52c0793469 install : $(TARGET) @@ -92,9 +92,11 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_APP_EFI) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.06-remove_os_prober_disabled_warning.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.02_disable_vga_fallback.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.12-rc1-fix_bli_bin_sh_path.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-Use-zifencei-on-riscv.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-Handle-R_RISCV_CALL_PLT-reloc.patch cd $(DIR_APP) && autoreconf -vfi # Install unifont diff --git a/src/patches/grub/grub-2.12-rc1-fix_bli_bin_sh_path.patch b/src/patches/grub/grub-2.12-rc1-fix_bli_bin_sh_path.patch deleted file mode 100644 index f933f59227..0000000000 --- a/src/patches/grub/grub-2.12-rc1-fix_bli_bin_sh_path.patch +++ /dev/null @@ -1,9 +0,0 @@ -diff -Naur grub-2.12-rc1.org/util/grub.d/25_bli.in grub-2.12-rc1/util/grub.d/25_bli.in ---- grub-2.12-rc1.org/util/grub.d/25_bli.in 2023-07-10 17:43:48.000000000 +0200 -+++ grub-2.12-rc1/util/grub.d/25_bli.in 2023-11-17 07:07:30.743519612 +0100 -@@ -1,4 +1,4 @@ --#!/usr/bin/sh -+#!/bin/sh - set -e - - # grub-mkconfig helper script. diff --git a/src/patches/grub/grub-Handle-R_RISCV_CALL_PLT-reloc.patch b/src/patches/grub/grub-Handle-R_RISCV_CALL_PLT-reloc.patch new file mode 100644 index 0000000000..f3f12b6f0e --- /dev/null +++ b/src/patches/grub/grub-Handle-R_RISCV_CALL_PLT-reloc.patch @@ -0,0 +1,48 @@ +From 64be669638e198bc0c7c1a344547265dfacd2470 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 23 Jan 2023 15:29:02 -0800 +Subject: [PATCH] risc-v: Handle R_RISCV_CALL_PLT reloc + +GNU assembler starting 2.40 release always generates R_RISCV_CALL_PLT +reloc for call in assembler [1], similarly llvm does not make +distinction between R_RISCV_CALL_PLT and R_RISCV_CALL [2] + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/grub-devel/2023-02/msg00143.html] + +[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=70f35d72ef04cd23771875c1661c9975044a749c +[2] https://reviews.llvm.org/D132530 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + grub-core/kern/riscv/dl.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/grub-core/kern/riscv/dl.c ++++ b/grub-core/kern/riscv/dl.c +@@ -188,6 +188,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t + break; + + case R_RISCV_CALL: ++ case R_RISCV_CALL_PLT: + { + grub_uint32_t *abs_place = place; + grub_ssize_t off = sym_addr - (grub_addr_t) place; +--- a/util/grub-mkimagexx.c ++++ b/util/grub-mkimagexx.c +@@ -1294,6 +1294,7 @@ SUFFIX (relocate_addrs) (Elf_Ehdr *e, st + } + break; + case R_RISCV_CALL: ++ case R_RISCV_CALL_PLT: + { + grub_uint32_t hi20, lo12; + +@@ -1725,6 +1726,7 @@ translate_relocation_pe (struct translat + case R_RISCV_BRANCH: + case R_RISCV_JAL: + case R_RISCV_CALL: ++ case R_RISCV_CALL_PLT: + case R_RISCV_PCREL_HI20: + case R_RISCV_PCREL_LO12_I: + case R_RISCV_PCREL_LO12_S: diff --git a/src/patches/grub/grub-Use-zifencei-on-riscv.patch b/src/patches/grub/grub-Use-zifencei-on-riscv.patch new file mode 100644 index 0000000000..c575a31161 --- /dev/null +++ b/src/patches/grub/grub-Use-zifencei-on-riscv.patch @@ -0,0 +1,47 @@ +From f1217c803cec90813eb834dde7829f4961b2a2e4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 17 Feb 2022 15:07:02 -0800 +Subject: [PATCH] configure.ac: Use _zicsr_zifencei extentions on riscv + +From version 2.38, binutils defaults to ISA spec version 20191213. This +means that the csr read/write (csrr*/csrw*) instructions and fence.i +instruction has separated from the `I` extension, become two standalone +extensions: Zicsr and Zifencei. + +The fix is to specify those extensions explicitely in -march. Since we +are now using binutils 2.38+ in OE this is ok, a more upstreamable fix for +grub will be to detect these extentions, however thats not easy to +implement + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: Khem Raj +--- + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c7fc55a..072f2c9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -849,14 +849,14 @@ if test x"$platform" != xemu ; then + [grub_cv_target_cc_soft_float="-mgeneral-regs-only"], []) + fi + if test "x$target_cpu" = xriscv32; then +- CFLAGS="$TARGET_CFLAGS -march=rv32imac -mabi=ilp32 -Werror" ++ CFLAGS="$TARGET_CFLAGS -march=rv32imac_zicsr_zifencei -mabi=ilp32 -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], +- [grub_cv_target_cc_soft_float="-march=rv32imac -mabi=ilp32"], []) ++ [grub_cv_target_cc_soft_float="-march=rv32imac_zicsr_zifencei -mabi=ilp32"], []) + fi + if test "x$target_cpu" = xriscv64; then +- CFLAGS="$TARGET_CFLAGS -march=rv64imac -mabi=lp64 -Werror" ++ CFLAGS="$TARGET_CFLAGS -march=rv64imac_zicsr_zifencei -mabi=lp64 -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], +- [grub_cv_target_cc_soft_float="-march=rv64imac -mabi=lp64"], []) ++ [grub_cv_target_cc_soft_float="-march=rv64imac_zicsr_zifencei -mabi=lp64"], []) + fi + if test "x$target_cpu" = xia64; then + CFLAGS="$TARGET_CFLAGS -mno-inline-float-divide -mno-inline-sqrt -Werror" +-- +2.35.1 + -- 2.39.5