I was able to build 2.02 back in the day in my Debian Jessie chroot. Now I am unable to build 2.04 RC01.
So basically what I do is: git clone git://git.savannah.gnu.org/grub.git mydir cd mydir git reset --hard git clean -f -d git clean -f -x -d # Checkout master so that we can pull last version git checkout master # Pull last version just in case we are requesting a new commit # not found or our local copy of git git pull # Finally checkout the requested commit git checkout "grub-2.04-rc1" # prepare the locales ./linguas.sh ./bootstrap ./configure \ --enable-grub-mkfont \ --with-platform="pc" \ --target="i386-pe" \ --prefix \ "/path/to/sg2d_grub_installations/hybrid/" make make is the step that fails with this error: gcc -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-include-dirs -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -march=i386 -m32 -mrtd -mregparm=3 -falign-jumps=1 -falign-loops=1 -falign-functions=1 -freg-struct-return -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -msoft-float -fno-dwarf2-cfi-asm -mno-stack-arg-probe -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector -Wtrampolines -Werror -ffreestanding -m32 -Wl,-melf_i386 -Wl,--build-id=none -nostdlib -Wl,-N -Wl,-r,-d -o file.module commands/file_module-file.o commands/file_module-file32.o commands/file_module-file64.o loader/i386/file_module-xen_file.o loader/i386/file_module-xen_file32.o loader/i386/file_module-xen_file64.o gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -m32 -nostdinc -isystem /usr/lib/gcc/i586-linux-gnu/4.9/include -I../include -I../include -DGRUB_FILE=\"commands/i386/rdmsr.c\" -I. -I. -I.. -I.. -I../include -I../include -I../grub-core/lib/libgcrypt-grub/src/ -D_FILE_OFFSET_BITS=64 -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-include-dirs -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -march=i386 -m32 -mrtd -mregparm=3 -falign-jumps=1 -falign-loops=1 -falign-functions=1 -freg-struct-return -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -msoft-float -fno-dwarf2-cfi-asm -mno-stack-arg-probe -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-stack-protector -Wtrampolines -Werror -ffreestanding -MT commands/i386/rdmsr_module-rdmsr.o -MD -MP -MF commands/i386/.deps-core/rdmsr_module-rdmsr.Tpo -c -o commands/i386/rdmsr_module-rdmsr.o `test -f 'commands/i386/rdmsr.c' || echo './'`commands/i386/rdmsr.c In file included from commands/i386/rdmsr.c:29:0: ../include/grub/i386/rdmsr.h:27:29: error: no previous declaration for ‘grub_msr_read’ [-Werror=missing-declarations] extern inline grub_uint64_t grub_msr_read (grub_uint32_t msr_id) ^ cc1: all warnings being treated as errors Makefile:39757: recipe for target 'commands/i386/rdmsr_module-rdmsr.o' failed make[3]: *** [commands/i386/rdmsr_module-rdmsr.o] Error 1 make[3]: Leaving directory '/home/rescatuxs/gnu/sgd/git/supergrub2/sg2d_grub_builds/hybrid_i386_pc/grub-core' Makefile:26391: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory '/home/rescatuxs/gnu/sgd/git/supergrub2/sg2d_grub_builds/hybrid_i386_pc/grub-core' Makefile:11293: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/rescatuxs/gnu/sgd/git/supergrub2/sg2d_grub_builds/hybrid_i386_pc' Makefile:3332: recipe for target 'all' failed make: *** [all] Error 2 Any help or tip is appreciated. I suspect I might be missing some dependencies that were not needed for 2.02 but now are needed for 2.04 but I'm not sure. So, thank you again. Note: I know I should probably need to use a more recent distribution suchs as Debian 9 (stretch) but I think it's better to report the hipothetic bug here, you know, just in case. Note: A quick search finds Jesús Diéguez as the one who added those msr modules on February/March 2019 which their build seems to fail. I CC him too. adrian15 -- Support free software. Donate to Super Grub Disk. Apoya el software libre. Dona a Super Grub Disk. http://www.supergrubdisk.org/donate/ _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel