grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: multiboot take partial mmap


From: Colin Watson
Subject: Re: multiboot take partial mmap
Date: Fri, 5 Jun 2009 10:10:52 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

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<address@hidden> 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                                       address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]