textproc/the_silver_searcher: backport upstream patch to compile with -fno-common

21eaa1c416

Same diff from bket@
ok bket@
This commit is contained in:
semarie 2021-01-29 16:38:00 +00:00
parent f2255cb68c
commit 9eabb86da0
11 changed files with 213 additions and 2 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.33 2019/07/12 20:50:16 sthen Exp $
# $OpenBSD: Makefile,v 1.34 2021/01/29 16:38:00 semarie Exp $
COMMENT = code searching tool, with a focus on speed (ag)
DISTNAME = the_silver_searcher-2.2.0
CATEGORIES = textproc
REVISION = 0
REVISION = 1
HOMEPAGE = https://geoff.greer.fm/ag/
# Apache 2.0

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_ignore_c,v 1.3 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/ignore.c
--- src/ignore.c.orig
+++ 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[] = {

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_ignore_h,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/ignore.h
--- src/ignore.h.orig
+++ 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[];

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-src_log_c,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/log.c
--- src/log.c.orig
+++ 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) {

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_log_h,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/log.h
--- src/log.h.orig
+++ 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,

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_options_c,v 1.3 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/options.c
--- src/options.c.orig
+++ src/options.c
@@ -20,6 +20,8 @@ const char *color_line_number = "\033[1;33m"; /* bold
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");

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_options_h,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/options.h
--- src/options.h.orig
+++ src/options.h
@@ -91,7 +91,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;

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-src_search_c,v 1.3 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/search.c
--- src/search.c.orig
+++ 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 */

View File

@ -0,0 +1,48 @@
$OpenBSD: patch-src_search_h,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/search.h
--- src/search.h.orig
+++ 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);

View File

@ -0,0 +1,16 @@
$OpenBSD: patch-src_util_c,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/util.c
--- src/util.c.orig
+++ 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)

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-src_util_h,v 1.1 2021/01/29 16:38:00 semarie Exp $
Compile with -fno-common
https://github.com/ggreer/the_silver_searcher/commit/21eaa1c4160b868b0c5bbf59da17974429f30055
Index: src/util.h
--- src/util.h.orig
+++ 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 {