El mié, 22-07-2009 a las 21:34 +0800, Bean escribió: > 2009/7/22 Javier Martín <lordhab...@gmail.com>: > > El mié, 22-07-2009 a las 19:12 +0800, Bean escribió: > >> Fix some wrong assumption in types.h and efi header files. For > >> example, grub_efi_uint_t is defined as unsigned long, but it should be > >> grub_uint64_t in 64-bit EFI, this problem won't show previously as > >> unsigned long is 64-bit in elf64 gcc, but it's 32-bit in mingw-w64 > >> gcc. > > I think you haven't corrected _all_ such assumptions. For example, in > > your grub/types.h: > > > > #if GRUB_CPU_SIZEOF_VOID_P == 8 > > # define GRUB_ULONG_MAX 18446744073709551615UL > > # define GRUB_LONG_MAX 9223372036854775807L > > # define GRUB_LONG_MIN (-9223372036854775807L - 1) > > #else > > # define GRUB_ULONG_MAX 4294967295UL > > # define GRUB_LONG_MAX 2147483647L > > # define GRUB_LONG_MIN (-2147483647L - 1) > > #endif > > > > In mingw64, sizeof(void*) = 8, but ULONG_MAX = 2^32-1. > > grub/machine/types.h defines a GRUB_TARGET_SIZEOF_LONG that might be > > suitable for this. Or am I mixing "target" with "host"? > > Hi, > > Oh, thanks for the note. In fact, we can use GRUB_CPU_SIZEOF_LONG, > its value is GRUB_TARGET_SIZEOF_LONG when building target, and > SIZEOF_LONG when building utilities. Wonderful idea. I'm researching this for a possible implementation of a GRUB equivalent to the C99 fixed-length integers print specifiers like PRIx64. It would most likely go into <grub/types.h>, so I'm paying special attention to anyone working on that file.
> As GRUB_CPU_SIZEOF_LONG doesn't necessary equal to > GRUB_CPU_SIZEOF_VOID_P. (It actually avoid this by generating an > #errror message when GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG). I think you lost me here. This check is in the trunk GRUB, but not in your "lib" branch, and actually it would make it impossible to build on mingw64, where void* is 64-bit and long is 32-bit. -- -- Lazy, Oblivious, Recurrent Disaster -- Habbit
signature.asc
Description: Esto es una parte de mensaje firmado digitalmente
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel