diff options
| author | Martin Jansa <Martin.Jansa@gmail.com> | 2021-05-14 07:36:27 -0700 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2021-05-14 11:06:06 -0400 |
| commit | 09c3281d443c9f9b00f0bae3ac62e504b25dd6c8 (patch) | |
| tree | 06ba460166d9e21603eeded9b60b0a47387f2f7f | |
| parent | d1e08a20d169b8cbcca20987d709ae4eb25a3be8 (diff) | |
| download | meta-virtualization-09c3281d443c9f9b00f0bae3ac62e504b25dd6c8.tar.gz | |
dev86: fix compatibility with gperf-3.1
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
3 files changed, 647 insertions, 0 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 new file mode 100644 index 00000000..38e4d815 --- /dev/null +++ b/recipes-extended/dev86/dev86/0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch | |||
| @@ -0,0 +1,256 @@ | |||
| 1 | From e908a3ad04bb40e425542b85fbb3a1eb5a38e194 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Tee-Kiah Chia <tkchia@users.noreply.github.com> | ||
| 3 | Date: Thu, 27 Feb 2020 00:52:05 +0800 | ||
| 4 | Subject: [PATCH] [cpp] update token1.tok to make new gperf happy; regen. | ||
| 5 | token1.h | ||
| 6 | |||
| 7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 8 | Upstream-Status: Pending [it was submitted in https://github.com/jbruchon/dev86/pull/19 | ||
| 9 | but then closed by author] | ||
| 10 | |||
| 11 | --- | ||
| 12 | cpp/token1.h | 170 +++++++++++++++++++++++++++++++++---------------- | ||
| 13 | cpp/token1.tok | 2 +- | ||
| 14 | 2 files changed, 115 insertions(+), 57 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/cpp/token1.h b/cpp/token1.h | ||
| 17 | index 2e2b9eb..bb313aa 100644 | ||
| 18 | --- a/cpp/token1.h | ||
| 19 | +++ b/cpp/token1.h | ||
| 20 | @@ -1,15 +1,48 @@ | ||
| 21 | -/* C code produced by gperf version 2.7.1 (19981006 egcs) */ | ||
| 22 | +/* C code produced by gperf version 3.0.4 */ | ||
| 23 | /* Command-line: gperf -aptTc -N is_ctok -H hash1 token1.tok */ | ||
| 24 | +/* Computed positions: -k'1-2' */ | ||
| 25 | + | ||
| 26 | +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | ||
| 27 | + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | ||
| 28 | + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | ||
| 29 | + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | ||
| 30 | + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | ||
| 31 | + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | ||
| 32 | + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | ||
| 33 | + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ | ||
| 34 | + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ | ||
| 35 | + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ | ||
| 36 | + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ | ||
| 37 | + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ | ||
| 38 | + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ | ||
| 39 | + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ | ||
| 40 | + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ | ||
| 41 | + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ | ||
| 42 | + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ | ||
| 43 | + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ | ||
| 44 | + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ | ||
| 45 | + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ | ||
| 46 | + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ | ||
| 47 | + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
| 48 | + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
| 49 | +/* The character set is not based on ISO-646. */ | ||
| 50 | +error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | ||
| 51 | +#endif | ||
| 52 | + | ||
| 53 | |||
| 54 | #define TOTAL_KEYWORDS 23 | ||
| 55 | #define MIN_WORD_LENGTH 2 | ||
| 56 | #define MAX_WORD_LENGTH 3 | ||
| 57 | #define MIN_HASH_VALUE 2 | ||
| 58 | -#define MAX_HASH_VALUE 63 | ||
| 59 | -/* maximum key range = 62, duplicates = 0 */ | ||
| 60 | +#define MAX_HASH_VALUE 62 | ||
| 61 | +/* maximum key range = 61, duplicates = 0 */ | ||
| 62 | |||
| 63 | #ifdef __GNUC__ | ||
| 64 | __inline | ||
| 65 | +#else | ||
| 66 | +#ifdef __cplusplus | ||
| 67 | +inline | ||
| 68 | +#endif | ||
| 69 | #endif | ||
| 70 | static unsigned int | ||
| 71 | hash1 (str, len) | ||
| 72 | @@ -18,38 +51,41 @@ hash1 (str, len) | ||
| 73 | { | ||
| 74 | static unsigned char asso_values[] = | ||
| 75 | { | ||
| 76 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 77 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 78 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 79 | - 64, 64, 64, 1, 64, 64, 64, 3, 25, 64, | ||
| 80 | - 64, 64, 13, 18, 64, 8, 30, 15, 64, 64, | ||
| 81 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 82 | - 5, 0, 20, 64, 64, 64, 64, 64, 64, 64, | ||
| 83 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 84 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 85 | - 64, 64, 64, 64, 30, 64, 64, 64, 64, 64, | ||
| 86 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 87 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 88 | - 64, 64, 64, 64, 23, 64, 64, 64, 64, 64, | ||
| 89 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 90 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 91 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 92 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 93 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 94 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 95 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 96 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 97 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 98 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 99 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 100 | - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | ||
| 101 | - 64, 64, 64, 64, 64, 64 | ||
| 102 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 103 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 104 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 105 | + 63, 63, 63, 6, 63, 63, 63, 28, 8, 63, | ||
| 106 | + 63, 63, 23, 3, 63, 25, 20, 18, 63, 63, | ||
| 107 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 108 | + 10, 5, 0, 63, 63, 63, 63, 63, 63, 63, | ||
| 109 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 110 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 111 | + 63, 63, 63, 63, 13, 63, 63, 63, 63, 63, | ||
| 112 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 113 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 114 | + 63, 63, 63, 63, 30, 63, 63, 63, 63, 63, | ||
| 115 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 116 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 117 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 118 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 119 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 120 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 121 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 122 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 123 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 124 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 125 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 126 | + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, | ||
| 127 | + 63, 63, 63, 63, 63, 63 | ||
| 128 | }; | ||
| 129 | - return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; | ||
| 130 | + return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; | ||
| 131 | } | ||
| 132 | |||
| 133 | #ifdef __GNUC__ | ||
| 134 | __inline | ||
| 135 | +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ | ||
| 136 | +__attribute__ ((__gnu_inline__)) | ||
| 137 | +#endif | ||
| 138 | #endif | ||
| 139 | struct token_trans * | ||
| 140 | is_ctok (str, len) | ||
| 141 | @@ -59,46 +95,68 @@ is_ctok (str, len) | ||
| 142 | static struct token_trans wordlist[] = | ||
| 143 | { | ||
| 144 | {""}, {""}, | ||
| 145 | +#line 14 "token1.tok" | ||
| 146 | + {">>", TK_RIGHT_OP}, | ||
| 147 | +#line 4 "token1.tok" | ||
| 148 | + {">>=", TK_RIGHT_ASSIGN}, | ||
| 149 | + {""}, {""}, {""}, | ||
| 150 | +#line 22 "token1.tok" | ||
| 151 | + {">=", TK_GE_OP}, | ||
| 152 | +#line 16 "token1.tok" | ||
| 153 | + {"++", TK_INC_OP}, | ||
| 154 | + {""}, | ||
| 155 | +#line 6 "token1.tok" | ||
| 156 | + {"+=", TK_ADD_ASSIGN}, | ||
| 157 | + {""}, | ||
| 158 | +#line 23 "token1.tok" | ||
| 159 | {"==", TK_EQ_OP}, | ||
| 160 | +#line 24 "token1.tok" | ||
| 161 | {"!=", TK_NE_OP}, | ||
| 162 | {""}, | ||
| 163 | - {"%=", TK_MOD_ASSIGN}, | ||
| 164 | +#line 11 "token1.tok" | ||
| 165 | + {"&=", TK_AND_ASSIGN}, | ||
| 166 | {""}, | ||
| 167 | +#line 21 "token1.tok" | ||
| 168 | {"<=", TK_LE_OP}, | ||
| 169 | - {"<<=", TK_LEFT_ASSIGN}, | ||
| 170 | +#line 19 "token1.tok" | ||
| 171 | + {"&&", TK_AND_OP}, | ||
| 172 | {""}, | ||
| 173 | - {"-=", TK_SUB_ASSIGN}, | ||
| 174 | +#line 12 "token1.tok" | ||
| 175 | + {"^=", TK_XOR_ASSIGN}, | ||
| 176 | {""}, | ||
| 177 | +#line 15 "token1.tok" | ||
| 178 | {"<<", TK_LEFT_OP}, | ||
| 179 | - {""}, {""}, | ||
| 180 | - {"*=", TK_MUL_ASSIGN}, | ||
| 181 | +#line 5 "token1.tok" | ||
| 182 | + {"<<=", TK_LEFT_ASSIGN}, | ||
| 183 | {""}, | ||
| 184 | +#line 9 "token1.tok" | ||
| 185 | {"/=", TK_DIV_ASSIGN}, | ||
| 186 | - {"--", TK_DEC_OP}, | ||
| 187 | {""}, | ||
| 188 | - {"+=", TK_ADD_ASSIGN}, | ||
| 189 | - {""}, | ||
| 190 | - {">=", TK_GE_OP}, | ||
| 191 | - {">>=", TK_RIGHT_ASSIGN}, | ||
| 192 | - {""}, | ||
| 193 | - {"|=", TK_OR_ASSIGN}, | ||
| 194 | +#line 18 "token1.tok" | ||
| 195 | + {"->", TK_PTR_OP}, | ||
| 196 | + {""}, {""}, | ||
| 197 | +#line 8 "token1.tok" | ||
| 198 | + {"*=", TK_MUL_ASSIGN}, | ||
| 199 | {""}, | ||
| 200 | - {"&=", TK_AND_ASSIGN}, | ||
| 201 | +#line 7 "token1.tok" | ||
| 202 | + {"-=", TK_SUB_ASSIGN}, | ||
| 203 | {""}, {""}, | ||
| 204 | - {"->", TK_PTR_OP}, | ||
| 205 | +#line 10 "token1.tok" | ||
| 206 | + {"%=", TK_MOD_ASSIGN}, | ||
| 207 | {""}, | ||
| 208 | - {"^=", TK_XOR_ASSIGN}, | ||
| 209 | - {""}, {""}, {""}, {""}, {""}, | ||
| 210 | - {"++", TK_INC_OP}, | ||
| 211 | - {""}, {""}, {""}, | ||
| 212 | - {">>", TK_RIGHT_OP}, | ||
| 213 | - {""}, {""}, {""}, {""}, {""}, | ||
| 214 | - {"||", TK_OR_OP}, | ||
| 215 | - {""}, {""}, {""}, | ||
| 216 | - {"&&", TK_AND_OP}, | ||
| 217 | - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
| 218 | +#line 13 "token1.tok" | ||
| 219 | + {"|=", TK_OR_ASSIGN}, | ||
| 220 | + {""}, {""}, {""}, {""}, | ||
| 221 | +#line 25 "token1.tok" | ||
| 222 | {"..", TK_WORD}, | ||
| 223 | - {"...", TK_ELLIPSIS} | ||
| 224 | +#line 3 "token1.tok" | ||
| 225 | + {"...", TK_ELLIPSIS}, | ||
| 226 | + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
| 227 | +#line 17 "token1.tok" | ||
| 228 | + {"--", TK_DEC_OP}, | ||
| 229 | + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
| 230 | +#line 20 "token1.tok" | ||
| 231 | + {"||", TK_OR_OP} | ||
| 232 | }; | ||
| 233 | |||
| 234 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
| 235 | @@ -109,7 +167,7 @@ is_ctok (str, len) | ||
| 236 | { | ||
| 237 | register const char *s = wordlist[key].name; | ||
| 238 | |||
| 239 | - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) | ||
| 240 | + if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') | ||
| 241 | return &wordlist[key]; | ||
| 242 | } | ||
| 243 | } | ||
| 244 | diff --git a/cpp/token1.tok b/cpp/token1.tok | ||
| 245 | index cd668ce..a98926f 100644 | ||
| 246 | --- a/cpp/token1.tok | ||
| 247 | +++ b/cpp/token1.tok | ||
| 248 | @@ -7,7 +7,7 @@ struct token_trans { char * name; int token; }; | ||
| 249 | -=, TK_SUB_ASSIGN | ||
| 250 | *=, TK_MUL_ASSIGN | ||
| 251 | /=, TK_DIV_ASSIGN | ||
| 252 | -%=, TK_MOD_ASSIGN | ||
| 253 | +"%=", TK_MOD_ASSIGN | ||
| 254 | &=, TK_AND_ASSIGN | ||
| 255 | ^=, TK_XOR_ASSIGN | ||
| 256 | |=, TK_OR_ASSIGN | ||
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 new file mode 100644 index 00000000..8787369f --- /dev/null +++ b/recipes-extended/dev86/dev86/0004-regen-token2.h-token1.h-with-gperf-3.1.patch | |||
| @@ -0,0 +1,389 @@ | |||
| 1 | From ce2b9747d51df2a4c358a037950f0464f3f53fe8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 3 | Date: Fri, 14 May 2021 14:31:50 +0000 | ||
| 4 | Subject: [PATCH] regen token2.h, token1.h with gperf-3.1 | ||
| 5 | |||
| 6 | * update cc.h, token1.c, token2.c to be compatible with | ||
| 7 | gperf-3.1 output | ||
| 8 | |||
| 9 | Upstream-Status: Pending | ||
| 10 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 11 | |||
| 12 | --- | ||
| 13 | cpp/cc.h | 4 +- | ||
| 14 | cpp/token1.c | 2 +- | ||
| 15 | cpp/token1.h | 22 ++---- | ||
| 16 | cpp/token2.c | 2 +- | ||
| 17 | cpp/token2.h | 211 +++++++++++++++++++++++++++++++-------------------- | ||
| 18 | 5 files changed, 140 insertions(+), 101 deletions(-) | ||
| 19 | |||
| 20 | diff --git a/cpp/cc.h b/cpp/cc.h | ||
| 21 | index 9c298e7..3724543 100644 | ||
| 22 | --- a/cpp/cc.h | ||
| 23 | +++ b/cpp/cc.h | ||
| 24 | @@ -25,8 +25,8 @@ extern int dialect; | ||
| 25 | extern int gettok P((void)); | ||
| 26 | |||
| 27 | struct token_trans { char * name; int token; }; | ||
| 28 | -struct token_trans * is_ctok P((const char *str, unsigned int len)); | ||
| 29 | -struct token_trans * is_ckey P((const char *str, unsigned int len)); | ||
| 30 | +struct token_trans * is_ctok P((register const char *str, register size_t len)); | ||
| 31 | +struct token_trans * is_ckey P((register const char *str, register size_t len)); | ||
| 32 | |||
| 33 | #define WORDSIZE 128 | ||
| 34 | #define TK_WSPACE 256 | ||
| 35 | diff --git a/cpp/token1.c b/cpp/token1.c | ||
| 36 | index f3aa420..cc47f3e 100644 | ||
| 37 | --- a/cpp/token1.c | ||
| 38 | +++ b/cpp/token1.c | ||
| 39 | @@ -6,6 +6,6 @@ | ||
| 40 | #ifdef __GNUC__ | ||
| 41 | __inline | ||
| 42 | #endif | ||
| 43 | -static unsigned int hash1 P((register const char *, register unsigned int)); | ||
| 44 | +static unsigned int hash1 P((register const char *, register size_t)); | ||
| 45 | |||
| 46 | #include "token1.h" | ||
| 47 | diff --git a/cpp/token1.h b/cpp/token1.h | ||
| 48 | index bb313aa..2af88c2 100644 | ||
| 49 | --- a/cpp/token1.h | ||
| 50 | +++ b/cpp/token1.h | ||
| 51 | @@ -1,4 +1,4 @@ | ||
| 52 | -/* C code produced by gperf version 3.0.4 */ | ||
| 53 | +/* ANSI-C code produced by gperf version 3.1 */ | ||
| 54 | /* Command-line: gperf -aptTc -N is_ctok -H hash1 token1.tok */ | ||
| 55 | /* Computed positions: -k'1-2' */ | ||
| 56 | |||
| 57 | @@ -26,7 +26,7 @@ | ||
| 58 | && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
| 59 | && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
| 60 | /* The character set is not based on ISO-646. */ | ||
| 61 | -error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | ||
| 62 | +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." | ||
| 63 | #endif | ||
| 64 | |||
| 65 | |||
| 66 | @@ -45,9 +45,7 @@ inline | ||
| 67 | #endif | ||
| 68 | #endif | ||
| 69 | static unsigned int | ||
| 70 | -hash1 (str, len) | ||
| 71 | - register const char *str; | ||
| 72 | - register unsigned int len; | ||
| 73 | +hash1 (register const char *str, register size_t len) | ||
| 74 | { | ||
| 75 | static unsigned char asso_values[] = | ||
| 76 | { | ||
| 77 | @@ -81,16 +79,8 @@ hash1 (str, len) | ||
| 78 | return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]]; | ||
| 79 | } | ||
| 80 | |||
| 81 | -#ifdef __GNUC__ | ||
| 82 | -__inline | ||
| 83 | -#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ | ||
| 84 | -__attribute__ ((__gnu_inline__)) | ||
| 85 | -#endif | ||
| 86 | -#endif | ||
| 87 | struct token_trans * | ||
| 88 | -is_ctok (str, len) | ||
| 89 | - register const char *str; | ||
| 90 | - register unsigned int len; | ||
| 91 | +is_ctok (register const char *str, register size_t len) | ||
| 92 | { | ||
| 93 | static struct token_trans wordlist[] = | ||
| 94 | { | ||
| 95 | @@ -161,9 +151,9 @@ is_ctok (str, len) | ||
| 96 | |||
| 97 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
| 98 | { | ||
| 99 | - register int key = hash1 (str, len); | ||
| 100 | + register unsigned int key = hash1 (str, len); | ||
| 101 | |||
| 102 | - if (key <= MAX_HASH_VALUE && key >= 0) | ||
| 103 | + if (key <= MAX_HASH_VALUE) | ||
| 104 | { | ||
| 105 | register const char *s = wordlist[key].name; | ||
| 106 | |||
| 107 | diff --git a/cpp/token2.c b/cpp/token2.c | ||
| 108 | index b4d22b1..fbc790d 100644 | ||
| 109 | --- a/cpp/token2.c | ||
| 110 | +++ b/cpp/token2.c | ||
| 111 | @@ -6,6 +6,6 @@ | ||
| 112 | #ifdef __GNUC__ | ||
| 113 | __inline | ||
| 114 | #endif | ||
| 115 | -static unsigned int hash2 P((register const char *, register unsigned int)); | ||
| 116 | +static unsigned int hash2 P((register const char *, register size_t)); | ||
| 117 | |||
| 118 | #include "token2.h" | ||
| 119 | diff --git a/cpp/token2.h b/cpp/token2.h | ||
| 120 | index 62e69b1..f7ac2fd 100644 | ||
| 121 | --- a/cpp/token2.h | ||
| 122 | +++ b/cpp/token2.h | ||
| 123 | @@ -1,57 +1,87 @@ | ||
| 124 | -/* C code produced by gperf version 2.7.1 (19981006 egcs) */ | ||
| 125 | +/* ANSI-C code produced by gperf version 3.1 */ | ||
| 126 | /* Command-line: gperf -aptTc -k1,3 -N is_ckey -H hash2 token2.tok */ | ||
| 127 | |||
| 128 | +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | ||
| 129 | + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | ||
| 130 | + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | ||
| 131 | + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | ||
| 132 | + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | ||
| 133 | + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | ||
| 134 | + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | ||
| 135 | + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ | ||
| 136 | + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ | ||
| 137 | + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ | ||
| 138 | + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ | ||
| 139 | + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ | ||
| 140 | + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ | ||
| 141 | + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ | ||
| 142 | + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ | ||
| 143 | + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ | ||
| 144 | + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ | ||
| 145 | + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ | ||
| 146 | + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ | ||
| 147 | + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ | ||
| 148 | + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ | ||
| 149 | + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
| 150 | + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
| 151 | +/* The character set is not based on ISO-646. */ | ||
| 152 | +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." | ||
| 153 | +#endif | ||
| 154 | + | ||
| 155 | + | ||
| 156 | #define TOTAL_KEYWORDS 34 | ||
| 157 | #define MIN_WORD_LENGTH 2 | ||
| 158 | #define MAX_WORD_LENGTH 8 | ||
| 159 | -#define MIN_HASH_VALUE 2 | ||
| 160 | -#define MAX_HASH_VALUE 69 | ||
| 161 | -/* maximum key range = 68, duplicates = 0 */ | ||
| 162 | +#define MIN_HASH_VALUE 3 | ||
| 163 | +#define MAX_HASH_VALUE 44 | ||
| 164 | +/* maximum key range = 42, duplicates = 0 */ | ||
| 165 | |||
| 166 | #ifdef __GNUC__ | ||
| 167 | __inline | ||
| 168 | +#else | ||
| 169 | +#ifdef __cplusplus | ||
| 170 | +inline | ||
| 171 | +#endif | ||
| 172 | #endif | ||
| 173 | static unsigned int | ||
| 174 | -hash2 (str, len) | ||
| 175 | - register const char *str; | ||
| 176 | - register unsigned int len; | ||
| 177 | +hash2 (register const char *str, register size_t len) | ||
| 178 | { | ||
| 179 | static unsigned char asso_values[] = | ||
| 180 | { | ||
| 181 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 182 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 183 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 184 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 185 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 186 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 187 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 188 | - 5, 70, 70, 70, 70, 70, 0, 70, 70, 70, | ||
| 189 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 190 | - 70, 70, 70, 70, 70, 0, 70, 5, 5, 10, | ||
| 191 | - 10, 20, 20, 25, 70, 0, 70, 70, 50, 70, | ||
| 192 | - 0, 15, 0, 70, 15, 0, 40, 20, 0, 0, | ||
| 193 | - 70, 70, 10, 70, 70, 70, 70, 70, 70, 70, | ||
| 194 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 195 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 196 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 197 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 198 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 199 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 200 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 201 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 202 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 203 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 204 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 205 | - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, | ||
| 206 | - 70, 70, 70, 70, 70, 70 | ||
| 207 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 208 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 209 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 210 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 211 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 212 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 213 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 214 | + 25, 45, 45, 45, 45, 45, 10, 45, 45, 45, | ||
| 215 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 216 | + 45, 45, 45, 45, 45, 5, 45, 30, 10, 10, | ||
| 217 | + 25, 20, 0, 10, 45, 5, 45, 45, 25, 45, | ||
| 218 | + 10, 10, 5, 45, 0, 5, 0, 0, 0, 20, | ||
| 219 | + 45, 45, 25, 45, 45, 45, 45, 45, 45, 45, | ||
| 220 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 221 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 222 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 223 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 224 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 225 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 226 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 227 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 228 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 229 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 230 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 231 | + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, | ||
| 232 | + 45, 45, 45, 45, 45, 45 | ||
| 233 | }; | ||
| 234 | - register int hval = len; | ||
| 235 | + register unsigned int hval = len; | ||
| 236 | |||
| 237 | switch (hval) | ||
| 238 | { | ||
| 239 | default: | ||
| 240 | - case 3: | ||
| 241 | hval += asso_values[(unsigned char)str[2]]; | ||
| 242 | + /*FALLTHROUGH*/ | ||
| 243 | case 2: | ||
| 244 | case 1: | ||
| 245 | hval += asso_values[(unsigned char)str[0]]; | ||
| 246 | @@ -60,78 +90,97 @@ hash2 (str, len) | ||
| 247 | return hval; | ||
| 248 | } | ||
| 249 | |||
| 250 | -#ifdef __GNUC__ | ||
| 251 | -__inline | ||
| 252 | -#endif | ||
| 253 | struct token_trans * | ||
| 254 | -is_ckey (str, len) | ||
| 255 | - register const char *str; | ||
| 256 | - register unsigned int len; | ||
| 257 | +is_ckey (register const char *str, register size_t len) | ||
| 258 | { | ||
| 259 | static struct token_trans wordlist[] = | ||
| 260 | { | ||
| 261 | + {""}, {""}, {""}, | ||
| 262 | +#line 16 "token2.tok" | ||
| 263 | + {"for", TK_FOR}, | ||
| 264 | {""}, {""}, | ||
| 265 | +#line 22 "token2.tok" | ||
| 266 | + {"return", TK_RETURN}, | ||
| 267 | +#line 18 "token2.tok" | ||
| 268 | {"if", TK_IF}, | ||
| 269 | - {""}, | ||
| 270 | +#line 19 "token2.tok" | ||
| 271 | + {"int", TK_INT}, | ||
| 272 | +#line 32 "token2.tok" | ||
| 273 | {"void", TK_VOID}, | ||
| 274 | - {"while", TK_WHILE}, | ||
| 275 | +#line 30 "token2.tok" | ||
| 276 | + {"union", TK_UNION}, | ||
| 277 | +#line 27 "token2.tok" | ||
| 278 | + {"struct", TK_STRUCT}, | ||
| 279 | +#line 29 "token2.tok" | ||
| 280 | + {"typedef", TK_TYPEDEF}, | ||
| 281 | +#line 31 "token2.tok" | ||
| 282 | + {"unsigned", TK_UNSIGNED}, | ||
| 283 | +#line 17 "token2.tok" | ||
| 284 | + {"goto", TK_GOTO}, | ||
| 285 | +#line 15 "token2.tok" | ||
| 286 | + {"float", TK_FLOAT}, | ||
| 287 | +#line 28 "token2.tok" | ||
| 288 | {"switch", TK_SWITCH}, | ||
| 289 | {""}, | ||
| 290 | - {"__LINE__", TK_LINE}, | ||
| 291 | - {""}, {""}, | ||
| 292 | - {"static", TK_STATIC}, | ||
| 293 | - {"do", TK_DO}, | ||
| 294 | - {"__FILE__", TK_FILE}, | ||
| 295 | +#line 21 "token2.tok" | ||
| 296 | + {"register", TK_REGISTER}, | ||
| 297 | +#line 5 "token2.tok" | ||
| 298 | {"case", TK_CASE}, | ||
| 299 | - {"const", TK_CONST}, | ||
| 300 | - {"sizeof", TK_SIZEOF}, | ||
| 301 | +#line 23 "token2.tok" | ||
| 302 | + {"short", TK_SHORT}, | ||
| 303 | +#line 24 "token2.tok" | ||
| 304 | + {"signed", TK_SIGNED}, | ||
| 305 | {""}, | ||
| 306 | +#line 36 "token2.tok" | ||
| 307 | + {"__LINE__", TK_LINE}, | ||
| 308 | +#line 13 "token2.tok" | ||
| 309 | + {"enum", TK_ENUM}, | ||
| 310 | +#line 7 "token2.tok" | ||
| 311 | + {"const", TK_CONST}, | ||
| 312 | +#line 14 "token2.tok" | ||
| 313 | + {"extern", TK_EXTERN}, | ||
| 314 | +#line 10 "token2.tok" | ||
| 315 | + {"do", TK_DO}, | ||
| 316 | +#line 8 "token2.tok" | ||
| 317 | {"continue", TK_CONTINUE}, | ||
| 318 | - {"char", TK_CHAR}, | ||
| 319 | - {"short", TK_SHORT}, | ||
| 320 | - {"struct", TK_STRUCT}, | ||
| 321 | - {""}, {""}, | ||
| 322 | +#line 12 "token2.tok" | ||
| 323 | {"else", TK_ELSE}, | ||
| 324 | - {"union", TK_UNION}, | ||
| 325 | - {""}, {""}, | ||
| 326 | - {"unsigned", TK_UNSIGNED}, | ||
| 327 | - {""}, | ||
| 328 | - {"break", TK_BREAK}, | ||
| 329 | - {"signed", TK_SIGNED}, | ||
| 330 | - {""}, {""}, {""}, {""}, | ||
| 331 | +#line 34 "token2.tok" | ||
| 332 | + {"while", TK_WHILE}, | ||
| 333 | +#line 11 "token2.tok" | ||
| 334 | {"double", TK_DOUBLE}, | ||
| 335 | +#line 9 "token2.tok" | ||
| 336 | {"default", TK_DEFAULT}, | ||
| 337 | - {"for", TK_FOR}, | ||
| 338 | - {""}, | ||
| 339 | - {"float", TK_FLOAT}, | ||
| 340 | - {""}, {""}, | ||
| 341 | - {"int", TK_INT}, | ||
| 342 | - {"enum", TK_ENUM}, | ||
| 343 | - {""}, {""}, | ||
| 344 | - {"typedef", TK_TYPEDEF}, | ||
| 345 | - {"register", TK_REGISTER}, | ||
| 346 | +#line 33 "token2.tok" | ||
| 347 | + {"volatile", TK_VOLATILE}, | ||
| 348 | +#line 3 "token2.tok" | ||
| 349 | {"auto", TK_AUTO}, | ||
| 350 | - {""}, {""}, {""}, {""}, | ||
| 351 | +#line 4 "token2.tok" | ||
| 352 | + {"break", TK_BREAK}, | ||
| 353 | +#line 25 "token2.tok" | ||
| 354 | + {"sizeof", TK_SIZEOF}, | ||
| 355 | + {""}, | ||
| 356 | +#line 35 "token2.tok" | ||
| 357 | + {"__FILE__", TK_FILE}, | ||
| 358 | +#line 20 "token2.tok" | ||
| 359 | {"long", TK_LONG}, | ||
| 360 | - {""}, {""}, {""}, | ||
| 361 | - {"volatile", TK_VOLATILE}, | ||
| 362 | - {""}, {""}, | ||
| 363 | - {"return", TK_RETURN}, | ||
| 364 | - {""}, {""}, {""}, {""}, | ||
| 365 | - {"extern", TK_EXTERN}, | ||
| 366 | + {""}, | ||
| 367 | +#line 26 "token2.tok" | ||
| 368 | + {"static", TK_STATIC}, | ||
| 369 | {""}, {""}, | ||
| 370 | - {"goto", TK_GOTO} | ||
| 371 | +#line 6 "token2.tok" | ||
| 372 | + {"char", TK_CHAR} | ||
| 373 | }; | ||
| 374 | |||
| 375 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
| 376 | { | ||
| 377 | - register int key = hash2 (str, len); | ||
| 378 | + register unsigned int key = hash2 (str, len); | ||
| 379 | |||
| 380 | - if (key <= MAX_HASH_VALUE && key >= 0) | ||
| 381 | + if (key <= MAX_HASH_VALUE) | ||
| 382 | { | ||
| 383 | register const char *s = wordlist[key].name; | ||
| 384 | |||
| 385 | - if (*str == *s && !strncmp (str + 1, s + 1, len - 1)) | ||
| 386 | + if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') | ||
| 387 | return &wordlist[key]; | ||
| 388 | } | ||
| 389 | } | ||
diff --git a/recipes-extended/dev86/dev86_git.bb b/recipes-extended/dev86/dev86_git.bb index c987342b..a5f40fab 100644 --- a/recipes-extended/dev86/dev86_git.bb +++ b/recipes-extended/dev86/dev86_git.bb | |||
| @@ -9,6 +9,8 @@ PV = "${BASE_PV}+git${SRCPV}" | |||
| 9 | SRCREV = "e254e0b19651d3b8a20225b40281c9974a95dec4" | 9 | SRCREV = "e254e0b19651d3b8a20225b40281c9974a95dec4" |
| 10 | SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https \ | 10 | SRC_URI = "git://github.com/jbruchon/${BPN}.git;protocol=https \ |
| 11 | file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \ | 11 | file://0001-cpp-Makefile-respect-LDFLAGS-when-building-bcc-cpp.patch \ |
| 12 | file://0003-cpp-update-token1.tok-to-make-new-gperf-happy-regen..patch \ | ||
| 13 | file://0004-regen-token2.h-token1.h-with-gperf-3.1.patch \ | ||
| 12 | " | 14 | " |
| 13 | SRC_URI_append_class-target = " \ | 15 | SRC_URI_append_class-target = " \ |
| 14 | file://0002-Makefile-use-ifdefg-from-dev86-native-instead-of-tar.patch \ | 16 | file://0002-Makefile-use-ifdefg-from-dev86-native-instead-of-tar.patch \ |
