Thread: cleaning up plperl warnings
First, I cleaned up many of the warnings on my Windows box by running this to fix up comments in perl's config.h: sed -i -e 's,\(^/\*.*\)/\*,\1/ *,' config.h unix2dos config.h That puts a space between the / and * of what would otherwise be an embedded comment start, and thus removes a huge number of warning messages. Second, stopping the hijacking of stdio and other things by the perl headers (see discussion elsewhere) cleans up most of the remaining messages. Now, in src/include/port/win32.h we have this: /** Supplement to <sys/types.h>.** Perl already has conflicting defines for uid_t and gid_t.*/ #ifndef PLPERL_HAVE_UID_GID typedef int uid_t; typedef int gid_t; #else /* These are redefined by perl. */ #define uid_t int #define gid_t int #endif But in my perl installation, at least, these are not redefined at all, but typedef''d: typedef long uid_t; typedef long gid_t; Which causes a couple of pretty obscure warnings: C:/Perl/lib/CORE/win32.h:219: warning: useless keyword or type name in empty declaration C:/Perl/lib/CORE/win32.h:219: warning: empty declaration C:/Perl/lib/CORE/win32.h:220: warning: useless keyword or type name in empty declaration C:/Perl/lib/CORE/win32.h:220: warning: empty declaration Why do we need these defines at all? We don't use either of these types anywhere in the plperl code. Is the community perl different in what it does here from what the ActiveState perl? cheers andrew
Andrew Dunstan wrote: > Now, in src/include/port/win32.h we have this: > > /* > * Supplement to <sys/types.h>. > * > * Perl already has conflicting defines for uid_t and gid_t. > */ > #ifndef PLPERL_HAVE_UID_GID > typedef int uid_t; > typedef int gid_t; > #else > /* These are redefined by perl. */ > #define uid_t int > #define gid_t int > #endif > > > But in my perl installation, at least, these are not redefined at all, > but typedef''d: > > typedef long uid_t; > typedef long gid_t; > > Which causes a couple of pretty obscure warnings: > > C:/Perl/lib/CORE/win32.h:219: warning: useless keyword or type name in empty declaration > C:/Perl/lib/CORE/win32.h:219: warning: empty declaration > C:/Perl/lib/CORE/win32.h:220: warning: useless keyword or type name in empty declaration > C:/Perl/lib/CORE/win32.h:220: warning: empty declaration > > > Why do we need these defines at all? We don't use either of these types anywhere in the plperl code. > > Is the community perl different in what it does here from what the ActiveState perl? No idea, but if you don't need them, remove them so they work on your setup, and if it breaks other people's perl, we will hear about it before we package 8.2 and make adjustments. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian wrote: >> >>Why do we need these defines at all? We don't use either of these types anywhere in the plperl code. >> >>Is the community perl different in what it does here from what the ActiveState perl? >> >> > >No idea, but if you don't need them, remove them so they work on your >setup, and if it breaks other people's perl, we will hear about it >before we package 8.2 and make adjustments. > > done cheers andrew