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  <cjwat...@ubuntu.com>

        * 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                                       [cjwat...@ubuntu.com]


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

Reply via email to