Subject: Re: Compile warning under NetBSD-1.3 for fetchmail-4.3.6 (fwd)
To: David Brownlee <abs@anim.dreamworks.com>
From: Webmaster Jim <jspath@mail.bcpl.lib.md.us>
List: netbsd-help
Date: 02/13/1998 23:42:01
On Sun, Feb 08, 1998 at 03:25:40PM -0800, David Brownlee wrote:
> 	Could you check if fetchmail.h directly includes
> 	/usr/include/machine/param.h, if not can you determine what header
> 	it includes that in turn includes param.h?
> 
> 	As far as I know, if fetchmail is defining _POSIX_SOURCE and
> 	including a header file defined by posix then NetBSD is in
> 	error. If fetchmail is not defining _POSIX_SOURCE then it is
> 	not asking for a posix environment, so it should not expect
> 	one. Similarly if it is including a header file not specific by
> 	posix then it is 'breaking the rules'.
> 
> 	I'm sure someone can correct me if I've missed anything :)
> 
> 
> 		David/absolute
> 
> 	   Raise your standards and lower your expectations...
> 	            and we'll get along just fine.
> 
> On Sat, 7 Feb 1998, Jim Spath (Webmaster Jim) wrote:
> 
> > Is the attached message correct in stating that NetBSD's MSGBUFSIZE
> > parameter is not "posixly-correct?"
> > ---------- Forwarded message ----------
> > Date: Sat, 7 Feb 1998 15:16:27 +0000 (GMT)
> > From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> > To: jspath@mail.bcpl.lib.md.us
> > Cc: fetchmail-friends@thyrsus.com
> > Subject: Re: Compile warning under NetBSD-1.3 for fetchmail-4.3.6
> > Resent-Date: Sat, 7 Feb 1998 10:37:09 -0500 (EST)
> > Resent-From: fetchmail-friends@ccil.org
> > 
> > > In file included from etrn.c:15:
> > > fetchmail.h:31: warning: `MSGBUFSIZE' redefined
> > > /usr/include/machine/param.h:99: warning: this is the location of the previous definition
> > 
> > Yep. This occurs on a few non posix compliant platforms where kernel symbols
> > leak into user name space. MSGBUFSIZE is a kernel parameter on netbsd that
> > "leaks". Fortunately fetchmail keep redefining it the right way.
> > 
> > Alan

===================
gcc -DRELEASE_ID=\"4.3.6\" -DHAVE_CONFIG_H -c -I. -I.  -O driver.c
In file included from driver.c:64:
fetchmail.h:31: warning: `MSGBUFSIZE' redefined
/usr/include/machine/param.h:99: warning: this is the location of the previous definition
23:27:35/jim> grep MSGBUFSIZE *.[hc]
driver.c:    char buf[MSGBUFSIZE+1], return_path[MSGBUFSIZE+1]; 
driver.c:       char    *ap, *ctt, options[MSGBUFSIZE], addr[128];
driver.c:    char buf[MSGBUFSIZE+1];
fetchmail.h:#define             MSGBUFSIZE      2048    /* size of message read buffer */
rfc822.c:    char       buf[MSGBUFSIZE], longbuf[BUFSIZ];
smtp.c:char smtp_response[MSGBUFSIZE];
smtp.c:  char buf[MSGBUFSIZE];
smtp.h:extern char smtp_response[MSGBUFSIZE];
23:27:49/jim> grep netdb.h etrn.c
#include  <netdb.h>
23:28:02/jim> grep param.h /usr/include/netdb.h
#include <sys/param.h>
23:28:09/jim> grep machine/param.h /usr/include/stdio.h
=====================

It looks like several modules in fetchmail include <netdb.h>, which
includes <sys/param.h>.  The <sys/param.h> then includes <machine/param.h>.
This is where MSGBUFSIZE is defined in NetBSD.

Perhaps fetchmail.h should have something like this:

#ifndef MSGBUFSIZE
#define MSGBUFSIZE  NBPG        /* default message buffer size */
#endif


++++++++++++++++++++++++++++
Marvin the Paranoid Android.