From cf7a256641d0729742707e68efe5e5ee3895b6c9 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 6 Jan 2024 18:54:07 +0000 Subject: gentoo auto-resync : 06:01:2024 - 18:54:07 --- dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch | 149 +++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch (limited to 'dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch') diff --git a/dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch b/dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch new file mode 100644 index 000000000000..32a33cdc6af4 --- /dev/null +++ b/dev-libs/foma/files/foma-0.10.0-gcc-13-fixes.patch @@ -0,0 +1,149 @@ +From 24fa34e5f3731e2e6995fba25e31a2dbb9df8bb4 Mon Sep 17 00:00:00 2001 +From: Tino Didriksen +Date: Thu, 15 Jun 2023 08:44:54 +0000 +Subject: [PATCH] Fixes for GCC 13 (see https://bugs.debian.org/1037663) and + Visual Studio + +--- + foma/cgflookup.c | 2 +- + foma/constructions.c | 2 +- + foma/flookup.c | 2 +- + foma/foma.h | 2 +- + foma/fomalib.h | 2 +- + foma/iface.c | 4 ++-- + foma/regex.l | 2 +- + foma/regex.y | 7 +++++-- + foma/spelling.c | 2 +- + 9 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/foma/cgflookup.c b/foma/cgflookup.c +index 1cc11be..1bdfddb 100644 +--- a/foma/cgflookup.c ++++ b/foma/cgflookup.c +@@ -71,7 +71,7 @@ static FILE *INFILE; + static struct lookup_chain *chain_head, *chain_tail, *chain_new, *chain_pos; + static fsm_read_binary_handle fsrh; + +-static char *(*applyer)() = &apply_up; /* Default apply direction = up */ ++static char *(*applyer)(struct apply_handle *h, char *word) = &apply_up; /* Default apply direction = up */ + static void handle_line(char *s); + static void app_print(char *result); + static char *get_next_line(); +diff --git a/foma/constructions.c b/foma/constructions.c +index dec4087..ca66db4 100644 +--- a/foma/constructions.c ++++ b/foma/constructions.c +@@ -41,7 +41,7 @@ int sort_cmp(const void *a, const void *b) { + return (((const struct fsm_state *)a)->state_no - ((const struct fsm_state *)b)->state_no); + } + +-INLINE int add_fsm_arc(struct fsm_state *fsm, int offset, int state_no, int in, int out, int target, int final_state, int start_state); ++int add_fsm_arc(struct fsm_state *fsm, int offset, int state_no, int in, int out, int target, int final_state, int start_state); + + struct fsm *fsm_kleene_closure(struct fsm *net, int optionality); + +diff --git a/foma/flookup.c b/foma/flookup.c +index 971549d..ecd3db3 100644 +--- a/foma/flookup.c ++++ b/foma/flookup.c +@@ -77,7 +77,7 @@ static FILE *INFILE; + static struct lookup_chain *chain_head, *chain_tail, *chain_new, *chain_pos; + static fsm_read_binary_handle fsrh; + +-static char *(*applyer)() = &apply_up; /* Default apply direction = up */ ++static char *(*applyer)(struct apply_handle *h, char *word) = &apply_up; /* Default apply direction = up */ + static void handle_line(char *s); + static void app_print(char *result); + static char *get_next_line(); +diff --git a/foma/foma.h b/foma/foma.h +index 06cb9f7..f5a5bfb 100644 +--- a/foma/foma.h ++++ b/foma/foma.h +@@ -113,7 +113,7 @@ void iface_print_shortest_string(); + void iface_print_shortest_string_size(); + void iface_print_name(void); + void iface_quit(void); +-void iface_apply_random(char *(*applyer)(), int limit); ++void iface_apply_random(char *(*applyer)(struct apply_handle *h), int limit); + void iface_random_lower(int limit); + void iface_random_upper(int limit); + void iface_random_words(int limit); +diff --git a/foma/fomalib.h b/foma/fomalib.h +index 6f0218a..d937d15 100644 +--- a/foma/fomalib.h ++++ b/foma/fomalib.h +@@ -307,7 +307,7 @@ FEXPORT struct fsm *flag_eliminate(struct fsm *net, char *name); + FEXPORT struct fsm *flag_twosided(struct fsm *net); + + /* Compile a rewrite rule */ +-FEXPORT struct fsm *fsm_rewrite(); ++FEXPORT struct fsm *fsm_rewrite(struct rewrite_set *all_rules); + + /* Boolean tests */ + FEXPORT int fsm_isempty(struct fsm *net); +diff --git a/foma/iface.c b/foma/iface.c +index f41e3ce..7ebd569 100644 +--- a/foma/iface.c ++++ b/foma/iface.c +@@ -790,7 +790,7 @@ void iface_random_words(int limit) { + iface_apply_random(&apply_random_words, limit); + } + +-void iface_apply_random(char *(*applyer)(), int limit) { ++void iface_apply_random(char *(*applyer)(struct apply_handle *h), int limit) { + char *result; + struct apply_handle *ah; + int i; +@@ -1230,7 +1230,7 @@ void iface_words_file(char *filename, int type) { + /* type 0 (words), 1 (upper-words), 2 (lower-words) */ + FILE *outfile; + char *result; +- static char *(*applyer)() = &apply_words; ++ static char *(*applyer)(struct apply_handle *h) = &apply_words; + struct apply_handle *ah; + + if (type == 1) { +diff --git a/foma/regex.l b/foma/regex.l +index c303a40..8e3f1e5 100644 +--- a/foma/regex.l ++++ b/foma/regex.l +@@ -49,7 +49,7 @@ struct parser_vars { + struct parser_vars parservarstack[MAX_PARSE_DEPTH]; + int g_parse_depth = 0; + +-extern int yyparse(); ++extern int yyparse(void *scanner, struct defined_networks *defined_nets, struct defined_functions *defined_funcs); + extern int get_iface_lineno(void); + extern int rewrite, rule_direction, substituting; + extern struct fsmcontexts *contexts; +diff --git a/foma/regex.y b/foma/regex.y +index eb00e5e..60ab2a4 100644 +--- a/foma/regex.y ++++ b/foma/regex.y +@@ -21,8 +21,11 @@ + #include + #include "foma.h" + #define MAX_F_RECURSION 100 +-extern int yyerror(); +-extern int yylex(); ++typedef void* yyscan_t; ++typedef struct YYLTYPE YYLTYPE; ++typedef union YYSTYPE YYSTYPE; ++extern int yyerror(YYLTYPE* yylloc, yyscan_t scanner, struct defined_networks *defined_nets, struct defined_functions *defined_funcs, char *msg); ++extern int yylex(YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner); + extern int my_yyparse(char *my_string, int lineno, struct defined_networks *defined_nets, struct defined_functions *defined_funcs); + struct fsm *current_parse; + int rewrite, rule_direction; +diff --git a/foma/spelling.c b/foma/spelling.c +index ab11e98..ac92bd0 100644 +--- a/foma/spelling.c ++++ b/foma/spelling.c +@@ -37,7 +37,7 @@ + #define min_(X, Y) ((X) < (Y) ? (X) : (Y)) + + static int calculate_h(struct apply_med_handle *medh, int *intword, int currpos, int state); +-static struct astarnode *node_delete_min(); ++static struct astarnode *node_delete_min(struct apply_med_handle *medh); + int node_insert(struct apply_med_handle *medh, int wordpos, int fsmstate, int g, int h, int in, int out, int parent); + + char *print_sym(int sym, struct sigma *sigma) { -- cgit v1.2.3