diff --git a/util/grub-mkimage32.c b/util/grub-mkimage32.c index 9b31397bc..1f2ccccd2 100644 --- a/util/grub-mkimage32.c +++ b/util/grub-mkimage32.c @@ -19,4 +19,6 @@ # define ELF_ST_TYPE(val) ELF32_ST_TYPE(val) #define XEN_NOTE_SIZE 132 +#ifndef GRUB_MKIMAGEXX #include "grub-mkimagexx.c" +#endif diff --git a/util/grub-mkimage64.c b/util/grub-mkimage64.c index d83345924..4ff72a625 100644 --- a/util/grub-mkimage64.c +++ b/util/grub-mkimage64.c @@ -19,4 +19,6 @@ # define ELF_ST_TYPE(val) ELF64_ST_TYPE(val) #define XEN_NOTE_SIZE 120 +#ifndef GRUB_MKIMAGEXX #include "grub-mkimagexx.c" +#endif diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c index 39d7efb91..97ff599f0 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -50,6 +50,15 @@ #pragma GCC diagnostic ignored "-Wcast-align" +#define GRUB_MKIMAGEXX +#if !defined(MKIMAGE_ELF32) && !defined(MKIMAGE_ELF64) +#if __SIZEOF_POINTER__ == 8 +#include "grub-mkimage64.c" +#else +#include "grub-mkimage32.c" +#endif +#endif + /* These structures are defined according to the CHRP binding to IEEE1275, "Client Program Format" section. */