> On 28 Feb 2026, at 3:22 AM, John Paul Adrian Glaubitz > <[email protected]> wrote: > > Hi Sudhakar, > > On Fri, 2026-02-27 at 22:29 +0100, John Paul Adrian Glaubitz wrote: >> On Fri, 2026-02-27 at 19:11 +0530, Sudhakar Kuppusamy wrote: >>> Configuring the build with --with-platform=emu fails on 32-bit PowerPC with: >>> >>> /usr/bin/ld: appendedsig.module: in function `grub_mod_init': >>> /home/glaubitz/grub/grub-core/commands/appendedsig/appendedsig.c:1615:(.text+0x2ab4): >>> undefined reference to `grub_pks_get_keystore' >>> /usr/bin/ld: appendedsig.module: in function `create_dbs_from_pks': >>> /home/glaubitz/grub/grub-core/commands/appendedsig/appendedsig.c:1400:(.text+0x2c3c): >>> undefined reference to `grub_pks_free_data' >>> collect2: error: ld returned 1 exit status >>> >>> Fixing this by excluding the Platform Keystore (PKS) for grub-emu on 32-bit >>> PowerPC. >>> >>> Reported-by: John Paul Adrian Glaubitz <[email protected]> >>> Signed-off-by: Sudhakar Kuppusamy <[email protected]> >>> --- >>> include/grub/powerpc/ieee1275/platform_keystore.h | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/include/grub/powerpc/ieee1275/platform_keystore.h >>> b/include/grub/powerpc/ieee1275/platform_keystore.h >>> index 931ada224..3bfb594a3 100644 >>> --- a/include/grub/powerpc/ieee1275/platform_keystore.h >>> +++ b/include/grub/powerpc/ieee1275/platform_keystore.h >>> @@ -96,7 +96,7 @@ struct grub_pks >>> }; >>> typedef struct grub_pks grub_pks_t; >>> >>> -#if defined(__powerpc__) >>> +#if defined(__powerpc__) && !(GRUB_MACHINE_EMU) >>> /* Initialization of the Platform Keystore. */ >>> extern void >>> grub_pks_keystore_init (void); >> >> I can confirm that this patch fixes the problem, so: >> >> Tested-by: John Paul Adrian Glaubitz <[email protected]> >> >> However, I'm wondering whether the commit message is correct as __powerpc__ >> is also defined on 64-bit PowerPC: >> >> glaubitz@perotto:~$ echo | gcc -E -dM - |grep -i powerpc >> #define __powerpc__ 1 >> #define __powerpc64__ 1 >> glaubitz@perotto:~$ >> >> Shouldn't the correct commit message be: >> >> powerpc_ieee1275: Exclude PKS support for grub-emu on PowerPC >> >> ? >> >> Or am I missing something here? > > I just tried to build --with-platform=ieee1275 which fails: > > cc -DHAVE_CONFIG_H -I. -I../../../grub-core -I.. > -Wno-unused-but-set-variable -Wall -W -DGRUB_MACHINE_IEEE1275=1 > -DGRUB_MACHINE=POWERPC_IEEE1275 -m32 -mbig-endian -nostdinc -isystem > /usr/lib/gcc/powerpc-linux-gnu/15/include -I../../../include -I../include > -DGRUB_FILE=\"kern/rescue_parser.c\" -I. -I../../../grub-core -I.. -I../../.. > -I../../../include -I../include -I../../../grub- > core/lib/libgcrypt-grub/src/ -DGRUB_KERNEL=1 -D_FILE_OFFSET_BITS=64 > -std=gnu99 -fno-common -Os -m32 -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 -Wcast-align -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 > -mbig-endian -freg-struct-return -msoft-float -fno-omit-frame-pointer > -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables > -fno-unwind-tables -fno-ident -fno-PIE -fno-pie -fno-stack-protector > -Wtrampolines -Werror -mcpu=powerpc -ffreestanding -c -o > kern/kernel_exec-rescue_parser.o `test -f 'kern/rescue_parser.c' || > echo '../../../grub-core/'`kern/rescue_parser.c > In file included from > ../../../grub-core/kern/powerpc/ieee1275/platform_keystore.c:26: > ../../../include/grub/powerpc/ieee1275/platform_keystore.h:99:31: error: > 'GRUB_MACHINE_EMU' is not defined, evaluates to '0' [-Werror=undef] > 99 | #if defined(__powerpc__) && !(GRUB_MACHINE_EMU) > | ^~~~~~~~~~~~~~~~ > > Using "&& !defined(GRUB_MACHINE_EMU)" instead works. > > Can you change that?
Thank you Adrian for the testing and suggestion. I'll make changes in v2. Thanks, Sudhakar > > Adrian > > -- > .''`. John Paul Adrian Glaubitz > : :' : Debian Developer > `. `' Physicist > `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
