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

Log:
  indent: fix the -fno-common build
  
  Spread the globals far and wide, hopefully to the files that make the most
  sense.
  
  -fno-common will become the default in GCC10/LLVM11.
  
  MFC after:    3 days

Modified:
  head/usr.bin/indent/indent.c
  head/usr.bin/indent/indent_globs.h
  head/usr.bin/indent/io.c
  head/usr.bin/indent/parse.c

Modified: head/usr.bin/indent/indent.c
==============================================================================
--- head/usr.bin/indent/indent.c        Mon Apr  6 23:16:05 2020        
(r359677)
+++ head/usr.bin/indent/indent.c        Mon Apr  6 23:20:20 2020        
(r359678)
@@ -59,6 +59,30 @@ __FBSDID("$FreeBSD$");
 #include "indent_codes.h"
 #include "indent.h"
 
+/* Globals */
+FILE   *input, *output;
+char   *labbuf, *s_lab, *e_lab, *l_lab;
+char   *codebuf, *s_code, *e_code, *l_code;
+char   *combuf, *s_com, *e_com, *l_com;
+char   *tokenbuf, *s_token, *e_token, *l_token;
+char   *in_buffer, *in_buffer_limit;
+char   *buf_ptr, *buf_end;
+
+char    sc_buf[sc_size];
+
+char   *save_com, *sc_end;
+char   *bp_save;
+char   *be_save;
+
+struct options         opt;
+int     line_no;
+
+struct parser_state    ps;
+int     ifdef_level;
+struct parser_state    state_stack[5];
+struct parser_state    match_state[5];
+
+
 static void bakcopy(void);
 static void indent_declaration(int, int);
 

Modified: head/usr.bin/indent/indent_globs.h
==============================================================================
--- head/usr.bin/indent/indent_globs.h  Mon Apr  6 23:16:05 2020        
(r359677)
+++ head/usr.bin/indent/indent_globs.h  Mon Apr  6 23:20:20 2020        
(r359678)
@@ -49,8 +49,8 @@
 #define true  1
 
 
-FILE       *input;             /* the fid for the input file */
-FILE       *output;            /* the output file */
+extern FILE       *input;              /* the fid for the input file */
+extern FILE       *output;             /* the output file */
 
 #define CHECK_SIZE_CODE(desired_size) \
        if (e_code + (desired_size) >= l_code) { \
@@ -104,41 +104,43 @@ FILE       *output;               /* the output file */
            s_token = tokenbuf + 1; \
        }
 
-char       *labbuf;            /* buffer for label */
-char       *s_lab;             /* start ... */
-char       *e_lab;             /* .. and end of stored label */
-char       *l_lab;             /* limit of label buffer */
+extern char       *labbuf;             /* buffer for label */
+extern char       *s_lab;              /* start ... */
+extern char       *e_lab;              /* .. and end of stored label */
+extern char       *l_lab;              /* limit of label buffer */
 
-char       *codebuf;           /* buffer for code section */
-char       *s_code;            /* start ... */
-char       *e_code;            /* .. and end of stored code */
-char       *l_code;            /* limit of code section */
+extern char       *codebuf;            /* buffer for code section */
+extern char       *s_code;             /* start ... */
+extern char       *e_code;             /* .. and end of stored code */
+extern char       *l_code;             /* limit of code section */
 
-char       *combuf;            /* buffer for comments */
-char       *s_com;             /* start ... */
-char       *e_com;             /* ... and end of stored comments */
-char       *l_com;             /* limit of comment buffer */
+extern char       *combuf;             /* buffer for comments */
+extern char       *s_com;              /* start ... */
+extern char       *e_com;              /* ... and end of stored comments */
+extern char       *l_com;              /* limit of comment buffer */
 
 #define token s_token
-char       *tokenbuf;          /* the last token scanned */
-char      *s_token;
-char       *e_token;
-char      *l_token;
+extern char       *tokenbuf;           /* the last token scanned */
+extern char      *s_token;
+extern char       *e_token;
+extern char      *l_token;
 
-char       *in_buffer;         /* input buffer */
-char      *in_buffer_limit;    /* the end of the input buffer */
-char       *buf_ptr;           /* ptr to next character to be taken from
-                                * in_buffer */
-char       *buf_end;           /* ptr to first after last char in in_buffer */
+extern char       *in_buffer;          /* input buffer */
+extern char      *in_buffer_limit;     /* the end of the input buffer */
+extern char       *buf_ptr;            /* ptr to next character to be taken
+                                * from in_buffer */
+extern char       *buf_end;            /* ptr to first after last char in
+                               * in_buffer */
 
-char        sc_buf[sc_size];   /* input text is saved here when looking for
-                                * the brace after an if, while, etc */
-char       *save_com;          /* start of the comment stored in sc_buf */
-char       *sc_end;            /* pointer into save_com buffer */
+extern char        sc_buf[sc_size];    /* input text is saved here when looking
+                                * for the brace after an if, while, etc */
+extern char       *save_com;           /* start of the comment stored in
+                                * sc_buf */
+extern char       *sc_end;             /* pointer into save_com buffer */
 
-char       *bp_save;           /* saved value of buf_ptr when taking input
-                                * from save_com */
-char       *be_save;           /* similarly saved value of buf_end */
+extern char       *bp_save;            /* saved value of buf_ptr when taking
+                                * input from save_com */
+extern char       *be_save;            /* similarly saved value of buf_end */
 
 
 struct options {
@@ -217,21 +219,22 @@ struct options {
                                 * uses all spaces */
     int         verbose;       /* when true, non-essential error messages
                                 * are printed */
-} opt;
+};
+extern struct options opt;
 
-int         found_err;
-int         n_real_blanklines;
-int         prefix_blankline_requested;
-int         postfix_blankline_requested;
-int         break_comma;       /* when true and not in parens, break after a
+extern int         found_err;
+extern int         n_real_blanklines;
+extern int         prefix_blankline_requested;
+extern int         postfix_blankline_requested;
+extern int         break_comma;        /* when true and not in parens, break 
after a
                                 * comma */
-float       case_ind;          /* indentation level to be used for a "case
+extern float       case_ind;   /* indentation level to be used for a "case
                                 * n:" */
-int         code_lines;                /* count of lines with code */
-int         had_eof;           /* set to true when input is exhausted */
-int         line_no;           /* the current line number. */
-int         inhibit_formatting;        /* true if INDENT OFF is in effect */
-int         suppress_blanklines;/* set iff following blanklines should be
+extern int         code_lines; /* count of lines with code */
+extern int         had_eof;    /* set to true when input is exhausted */
+extern int         line_no;    /* the current line number. */
+extern int         inhibit_formatting; /* true if INDENT OFF is in effect */
+extern int         suppress_blanklines;/* set iff following blanklines should 
be
                                 * suppressed */
 
 #define        STACKSIZE 256
@@ -312,8 +315,10 @@ struct parser_state {
     int         tos;           /* pointer to top of stack */
     char        procname[100]; /* The name of the current procedure */
     int         just_saw_decl;
-}           ps;
+};
 
-int         ifdef_level;
-struct parser_state state_stack[5];
-struct parser_state match_state[5];
+extern struct parser_state ps;
+
+extern int         ifdef_level;
+extern struct parser_state state_stack[5];
+extern struct parser_state match_state[5];

Modified: head/usr.bin/indent/io.c
==============================================================================
--- head/usr.bin/indent/io.c    Mon Apr  6 23:16:05 2020        (r359677)
+++ head/usr.bin/indent/io.c    Mon Apr  6 23:20:20 2020        (r359678)
@@ -52,6 +52,15 @@ __FBSDID("$FreeBSD$");
 #include "indent_globs.h"
 #include "indent.h"
 
+/* Globals */
+int    found_err;
+int    n_real_blanklines;
+int    prefix_blankline_requested, postfix_blankline_requested;
+int    code_lines;
+int    had_eof;
+int    inhibit_formatting;
+int    suppress_blanklines;
+
 int         comment_open;
 static int  paren_target;
 static int pad_output(int current, int target);

Modified: head/usr.bin/indent/parse.c
==============================================================================
--- head/usr.bin/indent/parse.c Mon Apr  6 23:16:05 2020        (r359677)
+++ head/usr.bin/indent/parse.c Mon Apr  6 23:20:20 2020        (r359678)
@@ -50,6 +50,10 @@ __FBSDID("$FreeBSD$");
 #include "indent_codes.h"
 #include "indent.h"
 
+/* Globals */
+int    break_comma;
+float  case_ind;
+
 static void reduce(void);
 
 void
_______________________________________________
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