I'd like to commit this for 1.97; it's important for users of recent
distributions that use GCC 4.4 by default (which is the current release
series of GCC). Otherwise, the core is too big to embed when using LVM
and RAID (https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/423412).
Any objections?

2009-09-03  Colin Watson  <[email protected]>

        * configure.ac: By default, GCC 4.4 generates .eh_frame sections
        containing unwind information in some cases where it previously did
        not. Use -fno-dwarf2-cfi-asm if available to restore the old
        behaviour. See http://patchwork.kernel.org/patch/8555/ for related
        discussion.

Index: configure.ac
===================================================================
--- configure.ac        (revision 2561)
+++ configure.ac        (working copy)
@@ -246,6 +246,21 @@
       TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 
-malign-functions=1"
     fi
   fi
+
+  # By default, GCC 4.4 generates .eh_frame sections containing unwind
+  # information in some cases where it previously did not. GRUB doesn't need
+  # these and they just use up vital space. Restore the old compiler
+  # behaviour.
+  AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], 
[grub_cv_cc_fno_dwarf2_cfi_asm], [
+    CFLAGS="$CFLAGS -fno-dwarf2-cfi-asm"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+                     [grub_cv_cc_fno_dwarf2_cfi_asm=yes],
+                     [grub_cv_cc_fno_dwarf2_cfi_asm=no])
+  ])
+
+  if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then
+    TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm"
+  fi
 fi
 
 grub_apple_target_cc

-- 
Colin Watson                                       [[email protected]]


_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to