From 127b82d81ff41cc4ab26695f6c42af2d7443909f Mon Sep 17 00:00:00 2001
From: Shlomi Fish <shlomif@shlomifish.org>
Date: Wed, 15 Apr 2020 20:23:52 +0300
Subject: [PATCH 8/9] Subject: [PATCH 8/9] Fix multiple global symbols
 definitions.

See the use of extern here:

* https://www.geeksforgeeks.org/understanding-extern-keyword-in-c/

* https://en.wikipedia.org/wiki/External_variable

*
https://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c
---
 src/ignore.c  |  2 ++
 src/ignore.h  |  2 +-
 src/log.c     |  1 +
 src/log.h     |  2 +-
 src/options.c |  2 ++
 src/options.h |  2 +-
 src/search.c  | 13 +++++++++++++
 src/search.h  | 20 ++++++++++----------
 src/util.c    |  2 ++
 src/util.h    |  4 ++--
 10 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/src/ignore.c b/src/ignore.c
index fa41889..32464d7 100644
--- a/src/ignore.c
+++ b/src/ignore.c
@@ -20,6 +20,8 @@
 const int fnmatch_flags = FNM_PATHNAME;
 #endif
 
+ignores *root_ignores;
+
 /* TODO: build a huge-ass list of files we want to ignore by default (build cache stuff, pyc files, etc) */
 
 const char *evil_hardcoded_ignore_files[] = {
diff --git a/src/ignore.h b/src/ignore.h
index 20d5a6a..8db0f37 100644
--- a/src/ignore.h
+++ b/src/ignore.h
@@ -29,7 +29,7 @@ struct ignores {
 };
 typedef struct ignores ignores;
 
-ignores *root_ignores;
+extern ignores *root_ignores;
 
 extern const char *evil_hardcoded_ignore_files[];
 extern const char *ignore_pattern_files[];
diff --git a/src/log.c b/src/log.c
index 1481b6d..f6f4e9a 100644
--- a/src/log.c
+++ b/src/log.c
@@ -4,6 +4,7 @@
 #include "log.h"
 #include "util.h"
 
+pthread_mutex_t print_mtx = PTHREAD_MUTEX_INITIALIZER;
 static enum log_level log_threshold = LOG_LEVEL_ERR;
 
 void set_log_level(enum log_level threshold) {
diff --git a/src/log.h b/src/log.h
index 85847ee..318622c 100644
--- a/src/log.h
+++ b/src/log.h
@@ -9,7 +9,7 @@
 #include <pthread.h>
 #endif
 
-pthread_mutex_t print_mtx;
+extern pthread_mutex_t print_mtx;
 
 enum log_level {
     LOG_LEVEL_DEBUG = 10,
diff --git a/src/options.c b/src/options.c
index a469845..0ff5526 100644
--- a/src/options.c
+++ b/src/options.c
@@ -21,6 +21,8 @@ const char *color_line_number = "\033[1;33m"; /* bold yellow */
 const char *color_match = "\033[30;43m";      /* black with yellow background */
 const char *color_path = "\033[1;32m";        /* bold green */
 
+cli_options opts;
+
 /* TODO: try to obey out_fd? */
 void usage(void) {
     printf("\n");
diff --git a/src/options.h b/src/options.h
index 990ce6a..09cd058 100644
--- a/src/options.h
+++ b/src/options.h
@@ -101,7 +101,7 @@ typedef struct {
 } cli_options;
 
 /* global options. parse_options gives it sane values, everything else reads from it */
-cli_options opts;
+extern cli_options opts;
 
 typedef struct option option_t;
 
diff --git a/src/search.c b/src/search.c
index ff5e386..8539bac 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2,6 +2,19 @@
 #include "print.h"
 #include "scandir.h"
 
+size_t alpha_skip_lookup[256];
+size_t *find_skip_lookup;
+uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
+
+work_queue_t *work_queue = NULL;
+work_queue_t *work_queue_tail = NULL;
+int done_adding_files = 0;
+pthread_cond_t files_ready = PTHREAD_COND_INITIALIZER;
+pthread_mutex_t stats_mtx = PTHREAD_MUTEX_INITIALIZER;
+pthread_mutex_t work_queue_mtx = PTHREAD_MUTEX_INITIALIZER;
+
+symdir_t *symhash = NULL;
+
 void search_buf(const char *buf, const size_t buf_len,
                 const char *dir_full_path) {
     int binary = -1; /* 1 = yes, 0 = no, -1 = don't know */
diff --git a/src/search.h b/src/search.h
index 1071114..a1bc5d7 100644
--- a/src/search.h
+++ b/src/search.h
@@ -31,9 +31,9 @@
 #include "uthash.h"
 #include "util.h"
 
-size_t alpha_skip_lookup[256];
-size_t *find_skip_lookup;
-uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
+extern size_t alpha_skip_lookup[256];
+extern size_t *find_skip_lookup;
+extern uint8_t h_table[H_SIZE] __attribute__((aligned(64)));
 
 struct work_queue_t {
     char *path;
@@ -41,12 +41,12 @@ struct work_queue_t {
 };
 typedef struct work_queue_t work_queue_t;
 
-work_queue_t *work_queue;
-work_queue_t *work_queue_tail;
-int done_adding_files;
-pthread_cond_t files_ready;
-pthread_mutex_t stats_mtx;
-pthread_mutex_t work_queue_mtx;
+extern work_queue_t *work_queue;
+extern work_queue_t *work_queue_tail;
+extern int done_adding_files;
+extern pthread_cond_t files_ready;
+extern pthread_mutex_t stats_mtx;
+extern pthread_mutex_t work_queue_mtx;
 
 
 /* For symlink loop detection */
@@ -64,7 +64,7 @@ typedef struct {
     UT_hash_handle hh;
 } symdir_t;
 
-symdir_t *symhash;
+extern symdir_t *symhash;
 
 void search_buf(const char *buf, const size_t buf_len,
                 const char *dir_full_path);
diff --git a/src/util.c b/src/util.c
index cb23914..0431148 100644
--- a/src/util.c
+++ b/src/util.c
@@ -21,6 +21,8 @@
     }                                     \
     return ptr;
 
+FILE *out_fd = NULL;
+ag_stats stats;
 void *ag_malloc(size_t size) {
     void *ptr = malloc(size);
     CHECK_AND_RETURN(ptr)
diff --git a/src/util.h b/src/util.h
index 0c9b9b1..338b05f 100644
--- a/src/util.h
+++ b/src/util.h
@@ -12,7 +12,7 @@
 #include "log.h"
 #include "options.h"
 
-FILE *out_fd;
+extern FILE *out_fd;
 
 #ifndef TRUE
 #define TRUE 1
@@ -51,7 +51,7 @@ typedef struct {
 } ag_stats;
 
 
-ag_stats stats;
+extern ag_stats stats;
 
 /* Union to translate between chars and words without violating strict aliasing */
 typedef union {
-- 
2.27.0

