[hardknott][PATCH 11/13] dev86: remove the pre-generated token[12].h and force gperf to generate them in do_compile
Martin Jansa
Signed-off-by: Martin Jansa <Martin.Jansa@...>
--- ...1.tok-to-make-new-gperf-happy-regen..patch | 230 +----------- ...gen-token2.h-token1.h-with-gperf-3.1.patch | 332 +----------------- recipes-extended/dev86/dev86_git.bb | 2 + 3 files changed, 5 insertions(+), 559 deletions(-) diff --git a/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch index 38e4d81..47c283b 100644 --- a/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch +++ b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch @@ -8,239 +8,13 @@ Signed-off-by: Martin Jansa <Martin.Jansa@...> Upstream-Status: Pending [it was submitted in https://github.com/jbruchon/dev86/pull/19 but then closed by author] +Remove regenerated token1.h as we'll force it to regenerate in do_compile. + --- cpp/token1.h | 170 +++++++++++++++++++++++++++++++++---------------- cpp/token1.tok | 2 +- 2 files changed, 115 insertions(+), 57 deletions(-) -diff --git a/cpp/token1.h b/cpp/token1.h -index 2e2b9eb..bb313aa 100644 ---- a/cpp/token1.h -+++ b/cpp/token1.h -@@ -1,15 +1,48 @@ --/* C code produced by gperf version 2.7.1 (19981006 egcs) */ -+/* C code produced by gperf version 3.0.4 */ - /* Command-line: gperf -aptTc -N is_ctok -H hash1 token1.tok */ -+/* Computed positions: -k'1-2' */ -+ -+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ -+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ -+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ -+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ -+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ -+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ -+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ -+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ -+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ -+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ -+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ -+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ -+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ -+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ -+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ -+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ -+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ -+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ -+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ -+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ -+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ -+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ -+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -+/* The character set is not based on ISO-646. */ -+error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@...>." -+#endif -+ - - #define TOTAL_KEYWORDS 23 - #define MIN_WORD_LENGTH 2 - #define MAX_WORD_LENGTH 3 - #define MIN_HASH_VALUE 2 --#define MAX_HASH_VALUE 63 --/* maximum key range = 62, duplicates = 0 */ -+#define MAX_HASH_VALUE 62 -+/* maximum key range = 61, duplicates = 0 */ - - #ifdef __GNUC__ - __inline -+#else -+#ifdef __cplusplus -+inline -+#endif - #endif - static unsigned int - hash1 (str, len) -@@ -18,38 +51,41 @@ hash1 (str, len) - { - static unsigned char asso_values[] = - { -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 1, 64, 64, 64, 3, 25, 64, -- 64, 64, 13, 18, 64, 8, 30, 15, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 5, 0, 20, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 30, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 23, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -- 64, 64, 64, 64, 64, 64 -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 6, 63, 63, 63, 28, 8, 63, -+ 63, 63, 23, 3, 63, 25, 20, 18, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 10, 5, 0, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 13, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 30, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, -+ 63, 63, 63, 63, 63, 63 - }; -- return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; -+ return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; - } - - #ifdef __GNUC__ - __inline -+#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ -+__attribute__ ((__gnu_inline__)) -+#endif - #endif - struct token_trans * - is_ctok (str, len) -@@ -59,46 +95,68 @@ is_ctok (str, len) - static struct token_trans wordlist[] = - { - {""}, {""}, -+#line 14 "token1.tok" -+ {">>", TK_RIGHT_OP}, -+#line 4 "token1.tok" -+ {">>=", TK_RIGHT_ASSIGN}, -+ {""}, {""}, {""}, -+#line 22 "token1.tok" -+ {">=", TK_GE_OP}, -+#line 16 "token1.tok" -+ {"++", TK_INC_OP}, -+ {""}, -+#line 6 "token1.tok" -+ {"+=", TK_ADD_ASSIGN}, -+ {""}, -+#line 23 "token1.tok" - {"==", TK_EQ_OP}, -+#line 24 "token1.tok" - {"!=", TK_NE_OP}, - {""}, -- {"%=", TK_MOD_ASSIGN}, -+#line 11 "token1.tok" -+ {"&=", TK_AND_ASSIGN}, - {""}, -+#line 21 "token1.tok" - {"<=", TK_LE_OP}, -- {"<<=", TK_LEFT_ASSIGN}, -+#line 19 "token1.tok" -+ {"&&", TK_AND_OP}, - {""}, -- {"-=", TK_SUB_ASSIGN}, -+#line 12 "token1.tok" -+ {"^=", TK_XOR_ASSIGN}, - {""}, -+#line 15 "token1.tok" - {"<<", TK_LEFT_OP}, -- {""}, {""}, -- {"*=", TK_MUL_ASSIGN}, -+#line 5 "token1.tok" -+ {"<<=", TK_LEFT_ASSIGN}, - {""}, -+#line 9 "token1.tok" - {"/=", TK_DIV_ASSIGN}, -- {"--", TK_DEC_OP}, - {""}, -- {"+=", TK_ADD_ASSIGN}, -- {""}, -- {">=", TK_GE_OP}, -- {">>=", TK_RIGHT_ASSIGN}, -- {""}, -- {"|=", TK_OR_ASSIGN}, -+#line 18 "token1.tok" -+ {"->", TK_PTR_OP}, -+ {""}, {""}, -+#line 8 "token1.tok" -+ {"*=", TK_MUL_ASSIGN}, - {""}, -- {"&=", TK_AND_ASSIGN}, -+#line 7 "token1.tok" -+ {"-=", TK_SUB_ASSIGN}, - {""}, {""}, -- {"->", TK_PTR_OP}, -+#line 10 "token1.tok" -+ {"%=", TK_MOD_ASSIGN}, - {""}, -- {"^=", TK_XOR_ASSIGN}, -- {""}, {""}, {""}, {""}, {""}, -- {"++", TK_INC_OP}, -- {""}, {""}, {""}, -- {">>", TK_RIGHT_OP}, -- {""}, {""}, {""}, {""}, {""}, -- {"||", TK_OR_OP}, -- {""}, {""}, {""}, -- {"&&", TK_AND_OP}, -- {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -+#line 13 "token1.tok" -+ {"|=", TK_OR_ASSIGN}, -+ {""}, {""}, {""}, {""}, -+#line 25 "token1.tok" - {"..", TK_WORD}, -- {"...", TK_ELLIPSIS} -+#line 3 "token1.tok" -+ {"...", TK_ELLIPSIS}, -+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -+#line 17 "token1.tok" -+ {"--", TK_DEC_OP}, -+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -+#line 20 "token1.tok" -+ {"||", TK_OR_OP} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) -@@ -109,7 +167,7 @@ is_ctok (str, len) - { - register const char *s = wordlist[key].name; - -- if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) -+ if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') - return &wordlist[key]; - } - } diff --git a/cpp/token1.tok b/cpp/token1.tok index cd668ce..a98926f 100644 --- a/cpp/token1.tok diff --git a/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch index 8787369..4a5bb25 100644 --- a/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch +++ b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch @@ -9,6 +9,7 @@ Subject: [PATCH] regen token2.h, token1.h with gperf-3.1 Upstream-Status: Pending Signed-off-by: Martin Jansa <Martin.Jansa@...> +Remove regenerated token2.h as we'll force it to regenerate in do_compile. --- cpp/cc.h | 4 +- cpp/token1.c | 2 +- @@ -44,66 +45,6 @@ index f3aa420..cc47f3e 100644 +static unsigned int hash1 P((register const char *, register size_t)); #include "token1.h" -diff --git a/cpp/token1.h b/cpp/token1.h -index bb313aa..2af88c2 100644 ---- a/cpp/token1.h -+++ b/cpp/token1.h -@@ -1,4 +1,4 @@ --/* C code produced by gperf version 3.0.4 */ -+/* ANSI-C code produced by gperf version 3.1 */ - /* Command-line: gperf -aptTc -N is_ctok -H hash1 token1.tok */ - /* Computed positions: -k'1-2' */ - -@@ -26,7 +26,7 @@ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) - /* The character set is not based on ISO-646. */ --error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@...>." -+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@...>." - #endif - - -@@ -45,9 +45,7 @@ inline - #endif - #endif - static unsigned int --hash1 (str, len) -- register const char *str; -- register unsigned int len; -+hash1 (register const char *str, register size_t len) - { - static unsigned char asso_values[] = - { -@@ -81,16 +79,8 @@ hash1 (str, len) - return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; - } - --#ifdef __GNUC__ --__inline --#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ --__attribute__ ((__gnu_inline__)) --#endif --#endif - struct token_trans * --is_ctok (str, len) -- register const char *str; -- register unsigned int len; -+is_ctok (register const char *str, register size_t len) - { - static struct token_trans wordlist[] = - { -@@ -161,9 +151,9 @@ is_ctok (str, len) - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { -- register int key = hash1 (str, len); -+ register unsigned int key = hash1 (str, len); - -- if (key <= MAX_HASH_VALUE && key >= 0) -+ if (key <= MAX_HASH_VALUE) - { - register const char *s = wordlist[key].name; - diff --git a/cpp/token2.c b/cpp/token2.c index b4d22b1..fbc790d 100644 --- a/cpp/token2.c @@ -116,274 +57,3 @@ index b4d22b1..fbc790d 100644 +static unsigned int hash2 P((register const char *, register size_t)); #include "token2.h" -diff --git a/cpp/token2.h b/cpp/token2.h -index 62e69b1..f7ac2fd 100644 ---- a/cpp/token2.h -+++ b/cpp/token2.h -@@ -1,57 +1,87 @@ --/* C code produced by gperf version 2.7.1 (19981006 egcs) */ -+/* ANSI-C code produced by gperf version 3.1 */ - /* Command-line: gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok */ - -+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ -+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ -+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ -+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ -+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ -+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ -+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ -+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ -+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ -+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ -+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ -+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ -+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ -+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ -+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ -+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ -+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ -+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ -+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ -+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ -+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ -+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ -+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -+/* The character set is not based on ISO-646. */ -+#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@...>." -+#endif -+ -+ - #define TOTAL_KEYWORDS 34 - #define MIN_WORD_LENGTH 2 - #define MAX_WORD_LENGTH 8 --#define MIN_HASH_VALUE 2 --#define MAX_HASH_VALUE 69 --/* maximum key range = 68, duplicates = 0 */ -+#define MIN_HASH_VALUE 3 -+#define MAX_HASH_VALUE 44 -+/* maximum key range = 42, duplicates = 0 */ - - #ifdef __GNUC__ - __inline -+#else -+#ifdef __cplusplus -+inline -+#endif - #endif - static unsigned int --hash2 (str, len) -- register const char *str; -- register unsigned int len; -+hash2 (register const char *str, register size_t len) - { - static unsigned char asso_values[] = - { -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 5, 70, 70, 70, 70, 70, 0, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 0, 70, 5, 5, 10, -- 10, 20, 20, 25, 70, 0, 70, 70, 50, 70, -- 0, 15, 0, 70, 15, 0, 40, 20, 0, 0, -- 70, 70, 10, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, -- 70, 70, 70, 70, 70, 70 -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 25, 45, 45, 45, 45, 45, 10, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 5, 45, 30, 10, 10, -+ 25, 20, 0, 10, 45, 5, 45, 45, 25, 45, -+ 10, 10, 5, 45, 0, 5, 0, 0, 0, 20, -+ 45, 45, 25, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -+ 45, 45, 45, 45, 45, 45 - }; -- register int hval = len; -+ register unsigned int hval = len; - - switch (hval) - { - default: -- case 3: - hval += asso_values[(unsigned char)str[2]]; -+ /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; -@@ -60,78 +90,97 @@ hash2 (str, len) - return hval; - } - --#ifdef __GNUC__ --__inline --#endif - struct token_trans * --is_ckey (str, len) -- register const char *str; -- register unsigned int len; -+is_ckey (register const char *str, register size_t len) - { - static struct token_trans wordlist[] = - { -+ {""}, {""}, {""}, -+#line 16 "token2.tok" -+ {"for", TK_FOR}, - {""}, {""}, -+#line 22 "token2.tok" -+ {"return", TK_RETURN}, -+#line 18 "token2.tok" - {"if", TK_IF}, -- {""}, -+#line 19 "token2.tok" -+ {"int", TK_INT}, -+#line 32 "token2.tok" - {"void", TK_VOID}, -- {"while", TK_WHILE}, -+#line 30 "token2.tok" -+ {"union", TK_UNION}, -+#line 27 "token2.tok" -+ {"struct", TK_STRUCT}, -+#line 29 "token2.tok" -+ {"typedef", TK_TYPEDEF}, -+#line 31 "token2.tok" -+ {"unsigned", TK_UNSIGNED}, -+#line 17 "token2.tok" -+ {"goto", TK_GOTO}, -+#line 15 "token2.tok" -+ {"float", TK_FLOAT}, -+#line 28 "token2.tok" - {"switch", TK_SWITCH}, - {""}, -- {"__LINE__", TK_LINE}, -- {""}, {""}, -- {"static", TK_STATIC}, -- {"do", TK_DO}, -- {"__FILE__", TK_FILE}, -+#line 21 "token2.tok" -+ {"register", TK_REGISTER}, -+#line 5 "token2.tok" - {"case", TK_CASE}, -- {"const", TK_CONST}, -- {"sizeof", TK_SIZEOF}, -+#line 23 "token2.tok" -+ {"short", TK_SHORT}, -+#line 24 "token2.tok" -+ {"signed", TK_SIGNED}, - {""}, -+#line 36 "token2.tok" -+ {"__LINE__", TK_LINE}, -+#line 13 "token2.tok" -+ {"enum", TK_ENUM}, -+#line 7 "token2.tok" -+ {"const", TK_CONST}, -+#line 14 "token2.tok" -+ {"extern", TK_EXTERN}, -+#line 10 "token2.tok" -+ {"do", TK_DO}, -+#line 8 "token2.tok" - {"continue", TK_CONTINUE}, -- {"char", TK_CHAR}, -- {"short", TK_SHORT}, -- {"struct", TK_STRUCT}, -- {""}, {""}, -+#line 12 "token2.tok" - {"else", TK_ELSE}, -- {"union", TK_UNION}, -- {""}, {""}, -- {"unsigned", TK_UNSIGNED}, -- {""}, -- {"break", TK_BREAK}, -- {"signed", TK_SIGNED}, -- {""}, {""}, {""}, {""}, -+#line 34 "token2.tok" -+ {"while", TK_WHILE}, -+#line 11 "token2.tok" - {"double", TK_DOUBLE}, -+#line 9 "token2.tok" - {"default", TK_DEFAULT}, -- {"for", TK_FOR}, -- {""}, -- {"float", TK_FLOAT}, -- {""}, {""}, -- {"int", TK_INT}, -- {"enum", TK_ENUM}, -- {""}, {""}, -- {"typedef", TK_TYPEDEF}, -- {"register", TK_REGISTER}, -+#line 33 "token2.tok" -+ {"volatile", TK_VOLATILE}, -+#line 3 "token2.tok" - {"auto", TK_AUTO}, -- {""}, {""}, {""}, {""}, -+#line 4 "token2.tok" -+ {"break", TK_BREAK}, -+#line 25 "token2.tok" -+ {"sizeof", TK_SIZEOF}, -+ {""}, -+#line 35 "token2.tok" -+ {"__FILE__", TK_FILE}, -+#line 20 "token2.tok" - {"long", TK_LONG}, -- {""}, {""}, {""}, -- {"volatile", TK_VOLATILE}, -- {""}, {""}, -- {"return", TK_RETURN}, -- {""}, {""}, {""}, {""}, -- {"extern", TK_EXTERN}, -+ {""}, -+#line 26 "token2.tok" -+ {"static", TK_STATIC}, - {""}, {""}, -- {"goto", TK_GOTO} -+#line 6 "token2.tok" -+ {"char", TK_CHAR} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { -- register int key = hash2 (str, len); -+ register unsigned int key = hash2 (str, len); - -- if (key <= MAX_HASH_VALUE && key >= 0) -+ if (key <= MAX_HASH_VALUE) - { - register const char *s = wordlist[key].name; - -- if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) -+ if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') - return &wordlist[key]; - } - } diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb index a5f40fa..9488d90 100644 --- a/recipes-extended/dev86/dev86_git.bb +++ b/recipes-extended/dev86/dev86_git.bb @@ -24,6 +24,8 @@ BBCLASSEXTEND = "native" EXTRA_OEMAKE = "VERSION=${BASE_PV} PREFIX=${prefix} DIST=${D} LDFLAGS='${LDFLAGS}'" do_compile() { + # always regenerate token1.h, token2.h for deterministic behavior + rm -f ${S}/cpp/token1.h ${S}/cpp/token2.h oe_runmake make.fil oe_runmake -f make.fil bcc86 as86 ld86 } -- 2.32.0
|
|