Author: kevans
Date: Mon Apr  6 23:28:24 2020
New Revision: 359680
URL: https://svnweb.freebsd.org/changeset/base/359680

Log:
  mail/gprof/tip: tap with the ugly stick
  
  The ugly stick here is this bit in the respective headers:
  
  #ifndef EXTERN
  #define EXTERN extern
  #endif
  
  with a follow-up #define EXTERN in a single .c file to push all of their
  definitions into one spot. A pass should be made over these three later to
  push these definitions into the correct files instead, but this will suffice
  for now and at a more leisurely pace.
  
  MFC after:    3 days

Modified:
  head/usr.bin/gprof/gprof.c
  head/usr.bin/gprof/gprof.h
  head/usr.bin/mail/glob.h
  head/usr.bin/mail/main.c
  head/usr.bin/mail/strings.c
  head/usr.bin/tip/tip/tip.c
  head/usr.bin/tip/tip/tip.h

Modified: head/usr.bin/gprof/gprof.c
==============================================================================
--- head/usr.bin/gprof/gprof.c  Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/gprof/gprof.c  Mon Apr  6 23:28:24 2020        (r359680)
@@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$");
 #include <stdint.h>
 #include <string.h>
 
+#define        EXTERN
 #include "gprof.h"
 
 static int valcmp(const void *, const void *);

Modified: head/usr.bin/gprof/gprof.h
==============================================================================
--- head/usr.bin/gprof/gprof.h  Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/gprof/gprof.h  Mon Apr  6 23:28:24 2020        (r359680)
@@ -75,18 +75,22 @@ typedef int bool;
      */
 #define        HISTORICAL_SCALE_2      2
 
+#ifndef EXTERN
+#define        EXTERN  extern
+#endif
+
     /*
      * ticks per second
      */
-long   hz;
+EXTERN long    hz;
 
-size_t histcounter_size;
-int    histcounter_type;
+EXTERN size_t  histcounter_size;
+EXTERN int     histcounter_type;
 
-char   *a_outname;
+EXTERN char    *a_outname;
 #define        A_OUTNAME               "a.out"
 
-char   *gmonname;
+EXTERN char    *gmonname;
 #define        GMONSUM                 "gmon.sum"
 
     /*
@@ -146,9 +150,9 @@ struct nl {
 };
 typedef struct nl      nltype;
 
-nltype *nl;                    /* the whole namelist */
-nltype *npe;                   /* the virtual end of the namelist */
-int    nname;                  /* the number of function names */
+EXTERN nltype  *nl;                    /* the whole namelist */
+EXTERN nltype  *npe;                   /* the virtual end of the namelist */
+EXTERN int     nname;                  /* the number of function names */
 
 #define        HASCYCLEXIT     0x08    /* node has arc exiting from cycle */
 #define        CYCLEHEAD       0x10    /* node marked as head of a cycle */
@@ -167,9 +171,9 @@ struct cl {
 };
 typedef struct cl cltype;
 
-arctype        *archead;               /* the head of arcs in current cycle 
list */
-cltype *cyclehead;             /* the head of the list */
-int    cyclecnt;               /* the number of cycles found */
+EXTERN arctype *archead;       /* the head of arcs in current cycle list */
+EXTERN cltype  *cyclehead;     /* the head of the list */
+EXTERN int     cyclecnt;       /* the number of cycles found */
 #define        CYCLEMAX        100     /* maximum cycles before cutting one of 
them */
 
     /*
@@ -183,8 +187,8 @@ int cyclecnt;               /* the number of cycles found */
      * namelist entries for cycle headers.
      * the number of discovered cycles.
      */
-nltype *cyclenl;               /* cycle header namelist */
-int    ncycle;                 /* number of cycles discovered */
+EXTERN nltype  *cyclenl;               /* cycle header namelist */
+EXTERN int     ncycle;                 /* number of cycles discovered */
 
     /*
      * The header on the gmon.out file.
@@ -200,43 +204,46 @@ struct ophdr {
     int                ncnt;
 };
 
-int    debug;
+EXTERN int     debug;
 
     /*
      * Each discretized pc sample has
      * a count of the number of samples in its range
      */
-double *samples;
+EXTERN double  *samples;
 
-unsigned long  s_lowpc;        /* lowpc from the profile file */
-unsigned long  s_highpc;       /* highpc from the profile file */
-unsigned long  lowpc, highpc;  /* range profiled, in historical units  */
-unsigned sampbytes;            /* number of bytes of samples */
-int    nsamples;               /* number of samples */
-double actime;                 /* accumulated time thus far for putprofline */
-double totime;                 /* total time for all routines */
-double printtime;              /* total of time being printed */
-double scale;                  /* scale factor converting samples to pc
+EXTERN unsigned long   s_lowpc;        /* lowpc from the profile file */
+EXTERN unsigned long   s_highpc;       /* highpc from the profile file */
+/* range profiled, in historical units  */
+EXTERN unsigned long   lowpc, highpc;
+EXTERN unsigned sampbytes;             /* number of bytes of samples */
+EXTERN int     nsamples;               /* number of samples */
+/* accumulated time thus far for putprofline */
+EXTERN double  actime;
+EXTERN double  totime;                 /* total time for all routines */
+EXTERN double  printtime;              /* total of time being printed */
+EXTERN double  scale;                  /* scale factor converting samples to pc
                                   values: each sample covers scale bytes */
-unsigned char  *textspace;     /* text space of a.out in core */
-int    cyclethreshold;         /* with -C, minimum cycle size to ignore */
+EXTERN unsigned char   *textspace;     /* text space of a.out in core */
+/* with -C, minimum cycle size to ignore */
+EXTERN int     cyclethreshold;
 
     /*
      * option flags, from a to z.
      */
-bool   aflag;                          /* suppress static functions */
-bool   bflag;                          /* blurbs, too */
-bool   Cflag;                          /* find cut-set to eliminate cycles */
-bool   dflag;                          /* debugging options */
-bool   eflag;                          /* specific functions excluded */
-bool   Eflag;                          /* functions excluded with time */
-bool   fflag;                          /* specific functions requested */
-bool   Fflag;                          /* functions requested with time */
-bool   kflag;                          /* arcs to be deleted */
-bool   Kflag;                          /* use the running kernel for symbols */
-bool   sflag;                          /* sum multiple gmon.out files */
-bool   uflag;                          /* suppress symbols hidden from C */
-bool   zflag;                          /* zero time/called functions, too */
+EXTERN bool    aflag;                  /* suppress static functions */
+EXTERN bool    bflag;                  /* blurbs, too */
+EXTERN bool    Cflag;                  /* find cut-set to eliminate cycles */
+EXTERN bool    dflag;                  /* debugging options */
+EXTERN bool    eflag;                  /* specific functions excluded */
+EXTERN bool    Eflag;                  /* functions excluded with time */
+EXTERN bool    fflag;                  /* specific functions requested */
+EXTERN bool    Fflag;                  /* functions requested with time */
+EXTERN bool    kflag;                  /* arcs to be deleted */
+EXTERN bool    Kflag;                  /* use the running kernel for symbols */
+EXTERN bool    sflag;                  /* sum multiple gmon.out files */
+EXTERN bool    uflag;                  /* suppress symbols hidden from C */
+EXTERN bool    zflag;                  /* zero time/called functions, too */
 
     /*
      * structure for various string lists
@@ -245,12 +252,12 @@ struct stringlist {
     struct stringlist  *next;
     char               *string;
 };
-struct stringlist      *elist;
-struct stringlist      *Elist;
-struct stringlist      *flist;
-struct stringlist      *Flist;
-struct stringlist      *kfromlist;
-struct stringlist      *ktolist;
+extern struct stringlist       *elist;
+extern struct stringlist       *Elist;
+extern struct stringlist       *flist;
+extern struct stringlist       *Flist;
+extern struct stringlist       *kfromlist;
+extern struct stringlist       *ktolist;
 
     /*
      * function declarations

Modified: head/usr.bin/mail/glob.h
==============================================================================
--- head/usr.bin/mail/glob.h    Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/mail/glob.h    Mon Apr  6 23:28:24 2020        (r359680)
@@ -38,51 +38,51 @@
  * def.h must be included first.
  */
 
-int    msgCount;                       /* Count of messages read in */
-int    rcvmode;                        /* True if receiving mail */
-int    sawcom;                         /* Set after first command */
-char   *Tflag;                         /* -T temp file for netnews */
-int    senderr;                        /* An error while checking */
-int    edit;                           /* Indicates editing a file */
-int    readonly;                       /* Will be unable to rewrite file */
-int    noreset;                        /* String resets suspended */
-int    sourcing;                       /* Currently reading variant file */
-int    loading;                        /* Loading user definitions */
-int    cond;                           /* Current state of conditional exc. */
-FILE   *itf;                           /* Input temp file buffer */
-FILE   *otf;                           /* Output temp file buffer */
-int    image;                          /* File descriptor for image of msg */
-FILE   *input;                         /* Current command input file */
-char   mailname[PATHSIZE];             /* Name of current file */
-char   prevfile[PATHSIZE];             /* Name of previous file */
-char   *homedir;                       /* Path name of home directory */
-char   *myname;                        /* My login name */
-off_t  mailsize;                       /* Size of system mailbox */
-int    lexnumber;                      /* Number of TNUMBER from scan() */
-char   lexstring[STRINGLEN];           /* String from TSTRING, scan() */
-int    regretp;                        /* Pointer to TOS of regret tokens */
-int    regretstack[REGDEP];            /* Stack of regretted tokens */
-char   *string_stack[REGDEP];          /* Stack of regretted strings */
-int    numberstack[REGDEP];            /* Stack of regretted numbers */
-struct message *dot;                   /* Pointer to current message */
-struct message *message;               /* The actual message structure */
-struct var     *variables[HSHSIZE];    /* Pointer to active var list */
-struct grouphead       *groups[HSHSIZE];/* Pointer to active groups */
-struct ignoretab       ignore[2];      /* ignored and retained fields
+extern int     msgCount;                       /* Count of messages read in */
+extern int     rcvmode;                        /* True if receiving mail */
+extern int     sawcom;                         /* Set after first command */
+extern char    *Tflag;                         /* -T temp file for netnews */
+extern int     senderr;                        /* An error while checking */
+extern int     edit;                           /* Indicates editing a file */
+extern int     readonly;                       /* Will be unable to rewrite 
file */
+extern int     noreset;                        /* String resets suspended */
+extern int     sourcing;                       /* Currently reading variant 
file */
+extern int     loading;                        /* Loading user definitions */
+extern int     cond;                           /* Current state of conditional 
exc. */
+extern FILE    *itf;                           /* Input temp file buffer */
+extern FILE    *otf;                           /* Output temp file buffer */
+extern int     image;                          /* File descriptor for image of 
msg */
+extern FILE    *input;                         /* Current command input file */
+extern char    mailname[PATHSIZE];             /* Name of current file */
+extern char    prevfile[PATHSIZE];             /* Name of previous file */
+extern char    *homedir;                       /* Path name of home directory 
*/
+extern char    *myname;                        /* My login name */
+extern off_t   mailsize;                       /* Size of system mailbox */
+extern int     lexnumber;                      /* Number of TNUMBER from 
scan() */
+extern char    lexstring[STRINGLEN];           /* String from TSTRING, scan() 
*/
+extern int     regretp;                        /* Pointer to TOS of regret 
tokens */
+extern int     regretstack[REGDEP];            /* Stack of regretted tokens */
+extern char    *string_stack[REGDEP];          /* Stack of regretted strings */
+extern int     numberstack[REGDEP];            /* Stack of regretted numbers */
+extern struct  message *dot;                   /* Pointer to current message */
+extern struct  message *message;               /* The actual message structure 
*/
+extern struct  var     *variables[HSHSIZE];    /* Pointer to active var list */
+extern struct  grouphead       *groups[HSHSIZE];/* Pointer to active groups */
+extern struct  ignoretab       ignore[2];      /* ignored and retained fields
                                           0 is ignore, 1 is retain */
-struct ignoretab       saveignore[2];  /* ignored and retained fields
+extern struct  ignoretab       saveignore[2];  /* ignored and retained fields
                                           on save to folder */
-struct ignoretab       ignoreall[2];   /* special, ignore all headers */
-char   **altnames;                     /* List of alternate names for user */
-int    debug;                          /* Debug flag set */
-int    screenwidth;                    /* Screen width, or best guess */
-int    screenheight;                   /* Screen height, or best guess,
+extern struct  ignoretab       ignoreall[2];   /* special, ignore all headers 
*/
+extern char    **altnames;                     /* List of alternate names for 
user */
+extern int     debug;                          /* Debug flag set */
+extern int     screenwidth;                    /* Screen width, or best guess 
*/
+extern int     screenheight;                   /* Screen height, or best guess,
                                           for "header" command */
-int    realscreenheight;               /* the real screen height */
+extern int     realscreenheight;               /* the real screen height */
 
 #include <setjmp.h>
 
-jmp_buf        srbuf;
+extern jmp_buf srbuf;
 
 
 /*
@@ -93,7 +93,7 @@ jmp_buf       srbuf;
  */
 
 #define        NSPACE  25                      /* Total number of string 
spaces */
-struct strings {
+extern struct strings {
        char    *s_topFree;             /* Beginning of this area */
        char    *s_nextFree;            /* Next alloctable place here */
        unsigned s_nleft;               /* Number of bytes left here */

Modified: head/usr.bin/mail/main.c
==============================================================================
--- head/usr.bin/mail/main.c    Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/mail/main.c    Mon Apr  6 23:28:24 2020        (r359680)
@@ -52,6 +52,49 @@ __FBSDID("$FreeBSD$");
  *
  * Startup -- interface with user.
  */
+int    msgCount;
+int    rcvmode;
+int    sawcom;
+char   *Tflag;
+int    senderr;
+int    edit;
+int    readonly;
+int    noreset;
+int    sourcing;
+int    loading;
+int    cond;
+FILE   *itf;
+FILE   *otf;
+int    image;
+FILE   *input;
+char   mailname[PATHSIZE];
+char   prevfile[PATHSIZE];
+char   *homedir;
+char   *myname;
+off_t  mailsize;
+int    lexnumber;
+char   lexstring[STRINGLEN];
+int    regretp;
+int    regretstack[REGDEP];
+char   *string_stack[REGDEP];
+int    numberstack[REGDEP];
+struct message *dot;
+struct message *message;
+struct var     *variables[HSHSIZE];
+struct grouphead       *groups[HSHSIZE];
+struct ignoretab       ignore[2];
+
+struct ignoretab       saveignore[2];
+
+struct ignoretab       ignoreall[2];
+char   **altnames;
+int    debug;
+int    screenwidth;
+int    screenheight;
+
+int    realscreenheight;
+
+jmp_buf        srbuf;
 
 static jmp_buf hdrjmp;
 

Modified: head/usr.bin/mail/strings.c
==============================================================================
--- head/usr.bin/mail/strings.c Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/mail/strings.c Mon Apr  6 23:28:24 2020        (r359680)
@@ -48,6 +48,8 @@ __FBSDID("$FreeBSD$");
 #include "rcv.h"
 #include "extern.h"
 
+struct strings stringdope[NSPACE];
+
 /*
  * Allocate size more bytes of space and return the address of the
  * first byte to the caller.  An even number of bytes are always

Modified: head/usr.bin/tip/tip/tip.c
==============================================================================
--- head/usr.bin/tip/tip/tip.c  Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/tip/tip/tip.c  Mon Apr  6 23:28:24 2020        (r359680)
@@ -54,6 +54,7 @@ static const char rcsid[] = "$OpenBSD: tip.c,v 1.30 20
  * or
  *  cu phone-number [-s speed] [-l line] [-a acu]
  */
+#define        EXTERN
 #include "tip.h"
 #include "pathnames.h"
 

Modified: head/usr.bin/tip/tip/tip.h
==============================================================================
--- head/usr.bin/tip/tip/tip.h  Mon Apr  6 23:21:39 2020        (r359679)
+++ head/usr.bin/tip/tip/tip.h  Mon Apr  6 23:28:24 2020        (r359680)
@@ -58,40 +58,44 @@
 #include <errno.h>
 #include <limits.h>
 
+#ifndef EXTERN
+#define        EXTERN  extern
+#endif
+
 /*
  * Remote host attributes
  */
-char   *DV;                    /* UNIX device(s) to open */
-char   *EL;                    /* chars marking an EOL */
-char   *CM;                    /* initial connection message */
-char   *IE;                    /* EOT to expect on input */
-char   *OE;                    /* EOT to send to complete FT */
-char   *CU;                    /* call unit if making a phone call */
-char   *AT;                    /* acu type */
-char   *PN;                    /* phone number(s) */
-char   *DI;                    /* disconnect string */
-char   *PA;                    /* parity to be generated */
+EXTERN char    *DV;                    /* UNIX device(s) to open */
+EXTERN char    *EL;                    /* chars marking an EOL */
+EXTERN char    *CM;                    /* initial connection message */
+EXTERN char    *IE;                    /* EOT to expect on input */
+EXTERN char    *OE;                    /* EOT to send to complete FT */
+EXTERN char    *CU;                    /* call unit if making a phone call */
+EXTERN char    *AT;                    /* acu type */
+EXTERN char    *PN;                    /* phone number(s) */
+EXTERN char    *DI;                    /* disconnect string */
+EXTERN char    *PA;                    /* parity to be generated */
 
-char   *PH;                    /* phone number file */
-char   *RM;                    /* remote file name */
-char   *HO;                    /* host name */
+EXTERN char    *PH;                    /* phone number file */
+EXTERN char    *RM;                    /* remote file name */
+EXTERN char    *HO;                    /* host name */
 
-long   BR;                     /* line speed for conversation */
-long   FS;                     /* frame size for transfers */
+EXTERN long    BR;                     /* line speed for conversation */
+EXTERN long    FS;                     /* frame size for transfers */
 
-short  DU;                     /* this host is dialed up */
-short  HW;                     /* this device is hardwired, see hunt.c */
-char   *ES;                    /* escape character */
-char   *EX;                    /* exceptions */
-char   *FO;                    /* force (literal next) char*/
-char   *RC;                    /* raise character */
-char   *RE;                    /* script record file */
-char   *PR;                    /* remote prompt */
-long   DL;                     /* line delay for file transfers to remote */
-long   CL;                     /* char delay for file transfers to remote */
-long   ET;                     /* echocheck timeout */
-long   LD;                     /* line disc */
-short  HD;                     /* this host is half duplex - do local echo */
+EXTERN short   DU;                     /* this host is dialed up */
+EXTERN short   HW;                     /* this device is hardwired, see hunt.c 
*/
+EXTERN char    *ES;                    /* escape character */
+EXTERN char    *EX;                    /* exceptions */
+EXTERN char    *FO;                    /* force (literal next) char*/
+EXTERN char    *RC;                    /* raise character */
+EXTERN char    *RE;                    /* script record file */
+EXTERN char    *PR;                    /* remote prompt */
+EXTERN long    DL;                     /* line delay for file transfers to 
remote */
+EXTERN long    CL;                     /* char delay for file transfers to 
remote */
+EXTERN long    ET;                     /* echocheck timeout */
+EXTERN long    LD;                     /* line disc */
+EXTERN short   HD;                     /* this host is half duplex - do local 
echo */
 
 /*
  * String value table
@@ -237,39 +241,39 @@ extern value_t    vtable[];       /* variable table */
 #define NOFILE ((FILE *)NULL)
 #define NOPWD  ((struct passwd *)0)
 
-struct termios term;           /* current mode of terminal */
-struct termios defterm;        /* initial mode of terminal */
-struct termios defchars;       /* current mode with initial chars */
-int    gotdefterm;
+EXTERN struct termios  term;           /* current mode of terminal */
+EXTERN struct termios  defterm;        /* initial mode of terminal */
+EXTERN struct termios  defchars;       /* current mode with initial chars */
+EXTERN int     gotdefterm;
 
-FILE   *fscript;               /* FILE for scripting */
+EXTERN FILE    *fscript;               /* FILE for scripting */
 
-int    fildes[2];              /* file transfer synchronization channel */
-int    repdes[2];              /* read process sychronization channel */
-int    FD;                     /* open file descriptor to remote host */
-int    AC;                     /* open file descriptor to dialer (v831 only) */
-int    vflag;                  /* print .tiprc initialization sequence */
-int    noesc;                  /* no `~' escape char */
-int    sfd;                    /* for ~< operation */
-pid_t  tipin_pid;              /* pid of tipin */
-pid_t  tipout_pid;             /* pid of tipout */
-uid_t  uid, euid;              /* real and effective user id's */
-gid_t  gid, egid;              /* real and effective group id's */
-int    stop;                   /* stop transfer session flag */
-int    quit;                   /* same; but on other end */
-int    intflag;                /* recognized interrupt */
-int    stoprompt;              /* for interrupting a prompt session */
-int    timedout;               /* ~> transfer timedout */
-int    cumode;                 /* simulating the "cu" program */
-int    bits8;                  /* terminal is 8-bit mode */
+EXTERN int     fildes[2];              /* file transfer synchronization 
channel */
+EXTERN int     repdes[2];              /* read process sychronization channel 
*/
+EXTERN int     FD;                     /* open file descriptor to remote host 
*/
+EXTERN int     AC;                     /* open file descriptor to dialer (v831 
only) */
+EXTERN int     vflag;                  /* print .tiprc initialization sequence 
*/
+EXTERN int     noesc;                  /* no `~' escape char */
+EXTERN int     sfd;                    /* for ~< operation */
+EXTERN pid_t   tipin_pid;              /* pid of tipin */
+EXTERN pid_t   tipout_pid;             /* pid of tipout */
+EXTERN uid_t   uid, euid;              /* real and effective user id's */
+EXTERN gid_t   gid, egid;              /* real and effective group id's */
+EXTERN int     stop;                   /* stop transfer session flag */
+EXTERN int     quit;                   /* same; but on other end */
+EXTERN int     intflag;                /* recognized interrupt */
+EXTERN int     stoprompt;              /* for interrupting a prompt session */
+EXTERN int     timedout;               /* ~> transfer timedout */
+EXTERN int     cumode;                 /* simulating the "cu" program */
+EXTERN int     bits8;                  /* terminal is 8-bit mode */
 #define STRIP_PAR      (bits8 ? 0377 : 0177)
 
-char   fname[PATH_MAX];        /* file name buffer for ~< */
-char   copyname[PATH_MAX];     /* file name buffer for ~> */
-char   ccc;                    /* synchronization character */
-char   *uucplock;              /* name of lock file for uucp's */
+EXTERN char    fname[PATH_MAX];        /* file name buffer for ~< */
+EXTERN char    copyname[PATH_MAX];     /* file name buffer for ~> */
+EXTERN char    ccc;                    /* synchronization character */
+EXTERN char    *uucplock;              /* name of lock file for uucp's */
 
-int    odisc;                  /* initial tty line discipline */
+EXTERN int     odisc;                  /* initial tty line discipline */
 extern int disc;               /* current tty discpline */
 
 extern char *__progname;       /* program name */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to