Hi Pedro,

2015-08-15 0:24 GMT+02:00 Paolo Bonzini <bonz...@gnu.org>:
> There are plenty of targets that do not require -fPIC because they always
> generate position independent code, but none of them feels the need to
> complain with the user about an unnecessary but perfectly valid option,
> on each and every .c->.o rule, and without a way to disable it.
>
> Adding insult to injury, the warning is also wrong in 3 cases out of four.
> For 32-bit, warning may make a small amount of sense because there is
> simply no such thing as PIC code (Windows just uses a "preferred base
> address" for DLLs); but then the text is wrong.
>
> For 64-bit, -fpic does not warn, but "all code is position independent"
> would apply just as well!

Agreed.

> As a summary, googling for the warning text finds exactly two categories
> of people: those that are annoyed by the message because they want to
> use -Werror (this includes me), and those that suggest replacing -fPIC
> with -fpic.  Just zap it.
>
> Paolo

Patch is ok.  Please apply.

Thanks,
Kai

>         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
>         not warn.
>
> diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
> index fda59fb..71506ec 100644
> --- a/gcc/config/i386/cygming.h
> +++ b/gcc/config/i386/cygming.h
> @@ -198,20 +198,7 @@ along with GCC; see the file COPYING3.  If not see
>  #undef  SUBTARGET_OVERRIDE_OPTIONS
>  #define SUBTARGET_OVERRIDE_OPTIONS                                     \
>  do {                                                                   \
> -  if (TARGET_64BIT && flag_pic != 1)                                   \
> -    {                                                                  \
> -      if (flag_pic > 1)                                                      
>   \
> -        warning (0,                                                    \
> -                "-fPIC ignored for target (all code is position 
> independent)"\
> -                 );                                                    \
> -      flag_pic = 1;                                                    \
> -    }                                                                  \
> -  else if (!TARGET_64BIT && flag_pic)                                  \
> -    {                                                                  \
> -      warning (0, "-f%s ignored for target (all code is position 
> independent)",\
> -              (flag_pic > 1) ? "PIC" : "pic");                         \
> -      flag_pic = 0;                                                    \
> -    }                                                                  \
> +  flag_pic = TARGET_64BIT ? 1 : 0;                                      \
>  } while (0)
>
>  /* Define this macro if references to a symbol must be treated

Reply via email to