support it.
+2013-11-07 Vladimir Serbinenko <phcoder@gmail.com>
+
+ * configure.ac: Add -freg-struct-return on all platforms that
+ support it.
+
2013-11-07 Vladimir Serbinenko <phcoder@gmail.com>
* acinclude.m4: Use -Werror on parameter tests.
# Platform specific options
if COND_i386_pc
- CFLAGS_PLATFORM += -mrtd -mregparm=3 -freg-struct-return
+ CFLAGS_PLATFORM += -mrtd -mregparm=3
endif
if COND_i386_qemu
- CFLAGS_PLATFORM += -mrtd -mregparm=3 -freg-struct-return
+ CFLAGS_PLATFORM += -mrtd -mregparm=3
endif
if COND_i386_coreboot
- CFLAGS_PLATFORM += -mrtd -mregparm=3 -freg-struct-return
+ CFLAGS_PLATFORM += -mrtd -mregparm=3
endif
if COND_i386_ieee1275
- CFLAGS_PLATFORM += -mrtd -mregparm=3 -freg-struct-return
+ CFLAGS_PLATFORM += -mrtd -mregparm=3
endif
if COND_mips_loongson
CFLAGS_PLATFORM += -mexplicit-relocs
fi
fi
+AC_CACHE_CHECK([whether -freg-struct-return works], [grub_cv_cc_freg_struct_return], [
+ CFLAGS="$TARGET_CFLAGS -freg-struct-return -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
+ [grub_cv_cc_freg_struct_return=yes],
+ [grub_cv_cc_freg_struct_return=no])
+])
+
+if test "x$grub_cv_cc_freg_struct_return" = xyes; then
+ TARGET_CFLAGS="$TARGET_CFLAGS -freg-struct-return"
+fi
+
if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then
# Some toolchains enable these features by default, but they need
# registers that aren't set up properly in GRUB.