From a109bb6d0eb936ac4e2a9f0ee46a269a58ec48ce Mon Sep 17 00:00:00 2001 From: root Date: Fri, 16 Nov 2012 11:52:02 +0000 Subject: fish --- master/debian/efiemu_fix.patch | 134 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 master/debian/efiemu_fix.patch (limited to 'master/debian/efiemu_fix.patch') diff --git a/master/debian/efiemu_fix.patch b/master/debian/efiemu_fix.patch new file mode 100644 index 0000000..5dba671 --- /dev/null +++ b/master/debian/efiemu_fix.patch @@ -0,0 +1,134 @@ +Description: Fix efiemu + Without this, lzo.patch causes efiemu not to be built. +Author: Vladimir Serbinenko +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3740 +Origin: upstream, http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/4066 +Forwarded: not-needed +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3740 +Last-Update: 2012-03-19 + +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -479,6 +479,42 @@ + esac + AC_MSG_RESULT([$TARGET_OBJ2ELF]) + ++ ++AC_ARG_ENABLE([efiemu], ++ [AS_HELP_STRING([--enable-efiemu], ++ [build and install the efiemu runtimes (default=guessed)])]) ++if test x"$enable_efiemu" = xno ; then ++ efiemu_excuse="explicitly disabled" ++fi ++if test x"$target_cpu" != xi386 ; then ++ efiemu_excuse="only available on i386" ++fi ++if test x"$platform" = xefi ; then ++ efiemu_excuse="not available on efi" ++fi ++if test x"$efiemu_excuse" = x ; then ++ AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [ ++ SAVED_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib" ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], ++ [grub_cv_cc_efiemu=yes], ++ [grub_cv_cc_efiemu=no]) ++ CFLAGS="$SAVED_CFLAGS" ++ ]) ++ if test x$grub_cv_cc_efiemu = xno; then ++ efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib" ++ fi ++fi ++if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then ++ AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled]) ++fi ++if test x"$efiemu_excuse" = x ; then ++enable_efiemu=yes ++else ++enable_efiemu=no ++fi ++AC_SUBST([enable_efiemu]) ++ + if test "x$target_m32" = x1; then + # Force 32-bit mode. + TARGET_CFLAGS="$TARGET_CFLAGS -m32" +@@ -638,39 +674,6 @@ + grub_I386_ASM_ADDR32 + fi + +-AC_ARG_ENABLE([efiemu], +- [AS_HELP_STRING([--enable-efiemu], +- [build and install the efiemu runtimes (default=guessed)])]) +-if test x"$enable_efiemu" = xno ; then +- efiemu_excuse="explicitly disabled" +-fi +-if test x"$target_cpu" != xi386 ; then +- efiemu_excuse="only available on i386" +-fi +-if test x"$platform" = xefi ; then +- efiemu_excuse="not available on efi" +-fi +-if test x"$efiemu_excuse" = x ; then +- AC_CACHE_CHECK([whether options required for efiemu work], grub_cv_cc_efiemu, [ +- CFLAGS="$CFLAGS -m64 -mcmodel=large -mno-red-zone -nostdlib" +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], +- [grub_cv_cc_efiemu=yes], +- [grub_cv_cc_efiemu=no]) +- ]) +- if test x$grub_cv_cc_efiemu = xno; then +- efiemu_excuse="cannot compile with -m64 -mcmodel=large -mno-red-zone -nostdlib" +- fi +-fi +-if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then +- AC_MSG_ERROR([efiemu runtime was explicitly requested but can't be compiled]) +-fi +-if test x"$efiemu_excuse" = x ; then +-enable_efiemu=yes +-else +-enable_efiemu=no +-fi +-AC_SUBST([enable_efiemu]) +- + if test "$platform" != emu; then + AC_CACHE_CHECK([whether -nostdinc -isystem works], [grub_cv_cc_isystem], [ + SAVED_CPPFLAGS="$CPPFLAGS" +Index: b/grub-core/efiemu/runtime/efiemu.c +=================================================================== +--- a/grub-core/efiemu/runtime/efiemu.c ++++ b/grub-core/efiemu/runtime/efiemu.c +@@ -21,6 +21,12 @@ + As it emulates only runtime serviceit isn't able + to chainload EFI bootloader on non-EFI system (TODO) */ + ++#ifdef __i386__ ++#include ++#else ++#include ++#endif ++ + #include + #include + #include +@@ -369,16 +375,16 @@ + switch (cur_relloc->size) + { + case 8: +- *((grub_uint64_t *) UINT_TO_PTR (cur_relloc->addr)) += corr; ++ *((grub_uint64_t *) (grub_addr_t) cur_relloc->addr) += corr; + break; + case 4: +- *((grub_uint32_t *) UINT_TO_PTR (cur_relloc->addr)) += corr; ++ *((grub_uint32_t *) (grub_addr_t) cur_relloc->addr) += corr; + break; + case 2: +- *((grub_uint16_t *) UINT_TO_PTR (cur_relloc->addr)) += corr; ++ *((grub_uint16_t *) (grub_addr_t) cur_relloc->addr) += corr; + break; + case 1: +- *((grub_uint8_t *) UINT_TO_PTR (cur_relloc->addr)) += corr; ++ *((grub_uint8_t *) (grub_addr_t) cur_relloc->addr) += corr; + break; + } + } -- cgit v1.2.3