Hello, Bean!

I think this change from the x86_64 EFI patch should be reverted:

        * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
         GRUB_TARGET_SIZEOF_VOID_P.

It causes warnings when compiling grub-emu on x64_64 for i386:

kern/dl.c: In function 'grub_dl_resolve_symbols':
kern/dl.c:357: warning: cast from pointer to integer of different size
kern/dl.c:368: warning: cast from pointer to integer of different size
kern/dl.c:370: warning: cast to pointer from integer of different size
kern/dl.c:376: warning: cast from pointer to integer of different size
kern/dl.c:378: warning: cast to pointer from integer of different size
kern/dl.c:382: warning: cast to pointer from integer of different size
kern/dl.c:384: warning: cast to pointer from integer of different size
kern/dl.c:389: warning: cast from pointer to integer of different size

I'm really close to eliminating all warnings, and such additions are not making me happy.

The warnings could be suppressed somehow, but I don't think it's the right thing to do. 64-bit grub-emu cannot load 32-bit modules (and vice versa). 64-bit grub-emu could load 64-bit modules in principle, although we don't compile them. We could compile special grub-emu modules, but I would not spend any serious effort on it.

Anyway, I would prefer that we compile support for loading 64-bit modules and possibly catch some useful warnings relevant to 64-bit platforms (even if our target is 32-bit). It's better than to "implement" cross-architecture loading of modules that would not work anyway by filling the code with casts. It's better than to tolerate several warnings. Either increases the risk that a real warning would be missed.

--
Regards,
Pavel Roskin


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to