On Fri, Jun 05, 2009 at 03:24:09AM +0200, Vladimir 'phcoder' Serbinenko wrote: > On Thu, Jun 4, 2009 at 10:07 PM, Andrey Valyaev<d...@osrc.info> wrote: > > PS: latest svn revision (from 2243) failed with message: > > > > gcc -Icommands -I./commands -I. -I./include -I./include -Wall -W -Wall -W - > > Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef - > > Wstrict-prototypes -g -Os -falign-jumps=1 -falign-loops=1 > > -falign-functions=1 > > -m32 -fno-stack-protector -mno-stack-arg-probe -fno-builtin -mrtd > > -mregparm=3 > > -m32 -Werror -Wall -MD -c -o search_mod-commands_search.o commands/search.c > > cc1: warnings being treated as errors > > commands/search.c: In function 'search_fs': > > commands/search.c:42: error: generating trampoline in object (requires > > executable stack) > > commands/search.c: In function 'grub_cmd_search': > > commands/search.c:105: error: generating trampoline in object (requires > > executable stack) > > make[1]: *** [search_mod-commands_search.o] Error 1 > > > > $ gcc --version > > gcc (Gentoo 4.3.3-r2 p1.1, pie-10.1.5) 4.3.3 > > > This is because of commit 2243 by Robert Millan. The commit was about > floppy probing but also added -Wall -Werror to search.mod > I myself stepped on this mine once with adding -Wall -Werror to my xnu module. > I'll revert this change (only -Werror, not the rest of commit) as it > causes build error for all gentoo users. Sorry, Robert, but we can't > enable -Werror and still have nested functions. I don't think we > should use -Werror at all because different compilers, versions or > modifications of same compiler cause different warnings and imho > maintaintaining cost is too high and breaks are too frequent. Or > perhaps we can enable -Werror only on some compilers? Or perhaps > anyone has a better idea
You could use -Wno-trampolines (IIRC that's the spelling) on Gentoo's patched GCC; it's generally good to minimise unwanted warnings even if they aren't errors. Here's the macro I use in man-db to add GCC warning options: # man-gcc-warning.m4 serial 1 dnl MAN_GCC_WARNING(WARNING) dnl Add -WWARNING to CFLAGS if it is supported by the compiler. AC_DEFUN([MAN_GCC_WARNING], [man_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -W$1" AC_CACHE_CHECK([that GCC supports -W$1], [AS_TR_SH([man_cv_gcc_warning_$1])], [AS_TR_SH([man_cv_gcc_warning_$1])=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [AS_TR_SH([man_cv_gcc_warning_$1])=yes])]) if test "$AS_TR_SH([man_cv_gcc_warning_$1])" = no; then CFLAGS="$man_saved_CFLAGS" fi]) # MAN_GCC_WARNING I then use this in configure.ac: if test "$GCC" = yes then MAN_GCC_WARNING([]) # -W MAN_GCC_WARNING([pointer-arith]) MAN_GCC_WARNING([write-strings]) MAN_GCC_WARNING([strict-prototypes]) MAN_GCC_WARNING([shadow]) MAN_GCC_WARNING([format-security]) MAN_GCC_WARNING([no-missing-field-initializers]) fi Feel free to use and adjust to taste if you want. -- Colin Watson [cjwat...@ubuntu.com] _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel