Thread: plperl warnings on win32

plperl warnings on win32

From
Magnus Hagander
Date:
When building with MingW, we get a ton of warnings of the type:
C:/Perl/lib/CORE/config.h:39:20: warning: "/*" within comment

(see
http://pgbuildfarm.org/cgi-bin/show_stage_log.pl?nm=vaquita&dt=2007-07-23%20200011&stg=make)

Attached patch removes this by disabling the warning specifically for
plperl on mingw.

Any objections? If not, I'll go ahead and apply...

//Magnus


Attachment

Re: plperl warnings on win32

From
Gregory Stark
Date:
"Magnus Hagander" <magnus@hagander.net> writes:

> When building with MingW, we get a ton of warnings of the type:
> C:/Perl/lib/CORE/config.h:39:20: warning: "/*" within comment
>
> (see
> http://pgbuildfarm.org/cgi-bin/show_stage_log.pl?nm=vaquita&dt=2007-07-23%20200011&stg=make)

Huh, what's actually in your /Perl/lib/CORE/config.h ?

Perhaps older versions of perl weren't so careful but on my machine perl
generates a config.h like this:

/* HAS_GETPGRP2:
 *    This symbol, if defined, indicates that the getpgrp2() (as in DG/UX)
 *    routine is available to get the current process group.
 */
/*#define HAS_GETPGRP2        / **/

/* HAS_GETPPID:
 *    This symbol, if defined, indicates that the getppid routine is
 *    available to get the parent process ID.
 */
#define HAS_GETPPID        /**/


--
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com


Re: plperl warnings on win32

From
Magnus Hagander
Date:
On Tue, Jul 24, 2007 at 12:42:38PM +0100, Gregory Stark wrote:
>
> "Magnus Hagander" <magnus@hagander.net> writes:
>
> > When building with MingW, we get a ton of warnings of the type:
> > C:/Perl/lib/CORE/config.h:39:20: warning: "/*" within comment
> >
> > (see
> > http://pgbuildfarm.org/cgi-bin/show_stage_log.pl?nm=vaquita&dt=2007-07-23%20200011&stg=make)
>
> Huh, what's actually in your /Perl/lib/CORE/config.h ?

/*#define HAS_BCMP    /**/


and similar.


> Perhaps older versions of perl weren't so careful but on my machine perl
> generates a config.h like this:

The difference is in the space. This is with perl 5.8.8.819 from
ActiveState - the latest is 5.8.8.820, and I doubt they've changed
that there.

//Magnus

Re: plperl warnings on win32

From
Gregory Stark
Date:
"Magnus Hagander" <magnus@hagander.net> writes:

> /*#define HAS_BCMP    /**/
>
> The difference is in the space. This is with perl 5.8.8.819 from
> ActiveState - the latest is 5.8.8.820, and I doubt they've changed
> that there.

Huh, I'm on 5.8.8 here as well. I suppose ActiveState has to generate the
config.h file themselves and they missed this detail.

--
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com


Re: plperl warnings on win32

From
Andrew Dunstan
Date:

Magnus Hagander wrote:
> When building with MingW, we get a ton of warnings of the type:
> C:/Perl/lib/CORE/config.h:39:20: warning: "/*" within comment
>
> (see
> http://pgbuildfarm.org/cgi-bin/show_stage_log.pl?nm=vaquita&dt=2007-07-23%20200011&stg=make)
>
> Attached patch removes this by disabling the warning specifically for
> plperl on mingw.
>
> Any objections? If not, I'll go ahead and apply...
>
>
I recall I hacked the perl header on one machine to silence this. I
guess this is acceptable. We really should grumble loudly at the perl/AS
people, but then  we cater for all sorts of header oddities elsewhere
too, so this isn't much different.

cheers

andrew

Re: plperl warnings on win32

From
Tom Lane
Date:
Magnus Hagander <magnus@hagander.net> writes:
>   override CPPFLAGS += -DPLPERL_HAVE_UID_GID
> + # Perl on win32 contains /* within comment all over the header file,
> + # so disable this warning.
> + override CFLAGS += -Wno-comment
>   endif

If you insist you can apply that in some way that makes it Windows-only.
I object strongly to the patch in this form, because it will mask our
own mistakes as well as one particular Perl build's mistakes.

            regards, tom lane

Re: plperl warnings on win32

From
Magnus Hagander
Date:
On Tue, Jul 24, 2007 at 09:55:57AM -0400, Tom Lane wrote:
> Magnus Hagander <magnus@hagander.net> writes:
> >   override CPPFLAGS += -DPLPERL_HAVE_UID_GID
> > + # Perl on win32 contains /* within comment all over the header file,
> > + # so disable this warning.
> > + override CFLAGS += -Wno-comment
> >   endif
>
> If you insist you can apply that in some way that makes it Windows-only.
> I object strongly to the patch in this form, because it will mask our
> own mistakes as well as one particular Perl build's mistakes.

Uh, it's already inside a win32-only block. So it'll only affect mingw.

Do you know of a way to do it from inside gcc, like the #pragma that exists
for win32 to disable specific warnings? If so we could just disable it on
the line before we #include the perl header, and re-enable it after...

//Magnus

Re: plperl warnings on win32

From
Andrew Dunstan
Date:

Magnus Hagander wrote:
> On Tue, Jul 24, 2007 at 09:55:57AM -0400, Tom Lane wrote:
>
>> Magnus Hagander <magnus@hagander.net> writes:
>>
>>>   override CPPFLAGS += -DPLPERL_HAVE_UID_GID
>>> + # Perl on win32 contains /* within comment all over the header file,
>>> + # so disable this warning.
>>> + override CFLAGS += -Wno-comment
>>>   endif
>>>
>> If you insist you can apply that in some way that makes it Windows-only.
>> I object strongly to the patch in this form, because it will mask our
>> own mistakes as well as one particular Perl build's mistakes.
>>
>
> Uh, it's already inside a win32-only block. So it'll only affect mingw.
>
> Do you know of a way to do it from inside gcc, like the #pragma that exists
> for win32 to disable specific warnings? If so we could just disable it on
> the line before we #include the perl header, and re-enable it after...
>

see

http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas


cheers

andrew

Re: plperl warnings on win32

From
Magnus Hagander
Date:
On Tue, Jul 24, 2007 at 10:11:52AM -0400, Andrew Dunstan wrote:
>
>
> Magnus Hagander wrote:
> >On Tue, Jul 24, 2007 at 09:55:57AM -0400, Tom Lane wrote:
> >
> >>Magnus Hagander <magnus@hagander.net> writes:
> >>
> >>>  override CPPFLAGS += -DPLPERL_HAVE_UID_GID
> >>>+ # Perl on win32 contains /* within comment all over the header file,
> >>>+ # so disable this warning.
> >>>+ override CFLAGS += -Wno-comment
> >>>  endif
> >>>
> >>If you insist you can apply that in some way that makes it Windows-only.
> >>I object strongly to the patch in this form, because it will mask our
> >>own mistakes as well as one particular Perl build's mistakes.
> >>
> >
> >Uh, it's already inside a win32-only block. So it'll only affect mingw.
> >
> >Do you know of a way to do it from inside gcc, like the #pragma that exists
> >for win32 to disable specific warnings? If so we could just disable it on
> >the line before we #include the perl header, and re-enable it after...
> >
>
> see
>
> http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

This seems to be new in gcc 4.2, so we can't really use that :(

//Magnus

Re: plperl warnings on win32

From
Andrew Dunstan
Date:

Magnus Hagander wrote:
> On Tue, Jul 24, 2007 at 09:55:57AM -0400, Tom Lane wrote:
>
>> Magnus Hagander <magnus@hagander.net> writes:
>>
>>>   override CPPFLAGS += -DPLPERL_HAVE_UID_GID
>>> + # Perl on win32 contains /* within comment all over the header file,
>>> + # so disable this warning.
>>> + override CFLAGS += -Wno-comment
>>>   endif
>>>
>> If you insist you can apply that in some way that makes it Windows-only.
>> I object strongly to the patch in this form, because it will mask our
>> own mistakes as well as one particular Perl build's mistakes.
>>
>
> Uh, it's already inside a win32-only block. So it'll only affect mingw.
>
> Do you know of a way to do it from inside gcc, like the #pragma that exists
> for win32 to disable specific warnings? If so we could just disable it on
> the line before we #include the perl header, and re-enable it after...
>
>

An alternative might be to provide a perl script in the tools directory
which would fix the perl header file.

cheers

andrew

Re: plperl warnings on win32

From
Tom Lane
Date:
Magnus Hagander <magnus@hagander.net> writes:
> On Tue, Jul 24, 2007 at 09:55:57AM -0400, Tom Lane wrote:
>> If you insist you can apply that in some way that makes it Windows-only.

> Uh, it's already inside a win32-only block. So it'll only affect mingw.

Doh ... not enough caffeine yet ... sorry for the noise.

            regards, tom lane

Re: plperl warnings on win32

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> An alternative might be to provide a perl script in the tools directory
> which would fix the perl header file.

Seems like more work than it's worth.  I'm OK with Magnus' proposed
Makefile hack --- though someone should also complain to ActiveState
so maybe they'll fix it sometime.

            regards, tom lane

Re: plperl warnings on win32

From
Magnus Hagander
Date:
On Tue, Jul 24, 2007 at 12:11:03PM -0400, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
> > An alternative might be to provide a perl script in the tools directory
> > which would fix the perl header file.
>
> Seems like more work than it's worth.  I'm OK with Magnus' proposed
> Makefile hack --- though someone should also complain to ActiveState
> so maybe they'll fix it sometime.

Applied and complained, activestate bugid 71303.

//Magnus