[MDEV-30692] conf_to_src is not up to date Created: 2023-02-21  Updated: 2023-02-21  Resolved: 2023-02-21

Status: Closed
Project: MariaDB Server
Component/s: Character Sets
Affects Version/s: 10.6, 10.7, 10.8, 10.9, 10.10
Fix Version/s: 10.11.3, 11.0.1, 10.10.4

Type: Bug Priority: Critical
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-30577 Case folding for uca1400 collations i... Closed

 Description   

conf_to_src is a program that is needed to re-generate ctype-extra.c when the structure of CHARSET_INFO changes.
It fails to compile in the latest sources.

$ cd BUILD-DEB/strings/
$ make conf_to_src

/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘get_collation_number’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:81:11: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
   81 |     if (cs->name && !strcmp(cs->name, name))
      |           ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:81:31: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
   81 |     if (cs->name && !strcmp(cs->name, name))
      |                               ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘get_charset_number_internal’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:96:13: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
   96 |     if (cs->csname && (cs->state & cs_flags) &&
      |             ^~~~~~
      |             cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:97:21: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
   97 |         !strcmp(cs->csname, charset_name))
      |                     ^~~~~~
      |                     cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘simple_cs_copy_data’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:117:13: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
  117 |   if (from->csname)
      |             ^~~~~~
      |             cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:118:9: error: ‘struct charset_info_st’ has no member named ‘csname’; did you mean ‘cs_name’?
  118 |     to->csname= strdup(from->csname);
      |         ^~~~~~
      |         cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:118:30: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
  118 |     to->csname= strdup(from->csname);
      |                              ^~~~~~
      |                              cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:120:11: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  120 |   if (from->name)
      |           ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:121:7: error: ‘struct charset_info_st’ has no member named ‘name’
  121 |     to->name= strdup(from->name);
      |       ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:121:26: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  121 |     to->name= strdup(from->name);
      |                          ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:126:13: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  126 |   if (from->ctype)
      |             ^~~~~
      |             m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:127:9: error: ‘struct charset_info_st’ has no member named ‘ctype’; did you mean ‘m_ctype’?
  127 |     to->ctype= (uchar*) mdup((char*) from->ctype, MY_CS_CTYPE_TABLE_SIZE);
      |         ^~~~~
      |         m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:127:44: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  127 |     to->ctype= (uchar*) mdup((char*) from->ctype, MY_CS_CTYPE_TABLE_SIZE);
      |                                            ^~~~~
      |                                            m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘inherit_charset_data’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:163:14: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  163 |   if (refcs->ctype && cs->ctype &&
      |              ^~~~~
      |              m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:163:27: error: ‘struct charset_info_st’ has no member named ‘ctype’; did you mean ‘m_ctype’?
  163 |   if (refcs->ctype && cs->ctype &&
      |                           ^~~~~
      |                           m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:164:19: error: ‘struct charset_info_st’ has no member named ‘ctype’; did you mean ‘m_ctype’?
  164 |       !memcmp(cs->ctype, refcs->ctype, MY_CS_CTYPE_TABLE_SIZE))
      |                   ^~~~~
      |                   m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:164:33: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  164 |       !memcmp(cs->ctype, refcs->ctype, MY_CS_CTYPE_TABLE_SIZE))
      |                                 ^~~~~
      |                                 m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:165:9: error: ‘struct charset_info_st’ has no member named ‘ctype’; did you mean ‘m_ctype’?
  165 |     cs->ctype= NULL;
      |         ^~~~~
      |         m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘find_charset_data_inheritance_source’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:182:47: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
  182 |   uint refid= get_charset_number_internal(cs->csname, MY_CS_PRIMARY);
      |                                               ^~~~~~
      |                                               cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘simple_cs_is_full’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:200:16: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
  200 |   return ((cs->csname && cs->tab_to_uni && cs->ctype && cs->to_upper &&
      |                ^~~~~~
      |                cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:200:48: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  200 |   return ((cs->csname && cs->tab_to_uni && cs->ctype && cs->to_upper &&
      |                                                ^~~~~
      |                                                m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:202:21: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  202 |    (cs->number && cs->name &&
      |                     ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘add_collation’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:208:9: error: ‘struct charset_info_st’ has no member named ‘name’
  208 |   if (cs->name &&
      |         ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:209:58: error: ‘struct charset_info_st’ has no member named ‘name’
  209 |       (cs->number || (cs->number= get_collation_number(cs->name))))
      |                                                          ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:218:7: error: ‘struct charset_info_st’ has no member named ‘name’
  218 |     cs->name= NULL;
      |       ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘print_arrays’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:279:11: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  279 |   if (cs->ctype)
      |           ^~~~~
      |           m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:280:22: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  280 |     print_array(f, cs->name, "ctype",      cs->ctype,      MY_CS_CTYPE_TABLE_SIZE);
      |                      ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:280:48: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  280 |     print_array(f, cs->name, "ctype",      cs->ctype,      MY_CS_CTYPE_TABLE_SIZE);
      |                                                ^~~~~
      |                                                m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:282:22: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  282 |     print_array(f, cs->name, "to_lower",   cs->to_lower,   MY_CS_TO_LOWER_TABLE_SIZE);
      |                      ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:284:22: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  284 |     print_array(f, cs->name, "to_upper",   cs->to_upper,   MY_CS_TO_UPPER_TABLE_SIZE);
      |                      ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:286:22: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  286 |     print_array(f, cs->name, "sort_order", cs->sort_order, MY_CS_SORT_ORDER_TABLE_SIZE);
      |                      ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:288:24: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  288 |     print_array16(f, cs->name, "to_uni",     cs->tab_to_uni, MY_CS_TO_UNI_TABLE_SIZE);
      |                        ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘print_array_ref’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:335:21: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  335 |             name, cs->name, name);
      |                     ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘dispcset’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:359:9: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  359 |   if (cs->name)
      |         ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:362:73: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘csname’; did you mean ‘cs_name’?
  362 |    fprintf(f,"  \"%s\",                     /* cset name     */\n",cs->csname);
      |                                                                        ^~~~~~
      |                                                                        cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:363:71: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  363 |     fprintf(f,"  \"%s\",                     /* coll name     */\n",cs->name);
      |                                                                       ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:370:32: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  370 |     print_array_ref(f, cs, cs->ctype, srccs, srccs->ctype, "ctype");
      |                                ^~~~~
      |                                m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:370:53: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘ctype’; did you mean ‘m_ctype’?
  370 |     print_array_ref(f, cs, cs->ctype, srccs, srccs->ctype, "ctype");
      |                                                     ^~~~~
      |                                                     m_ctype
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:375:71: error: ‘CHARSET_INFO’ {aka ‘const struct charset_info_st’} has no member named ‘name’
  375 |       fprintf(f,"  sort_order_%s,            /* sort_order    */\n",cs->name);
      |                                                                       ^~
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘main’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:471:45: error: ‘struct charset_info_st’ has no member named ‘csname’; did you mean ‘cs_name’?
  471 |       if ( (!simple_cs_is_full(cs)) && (cs->csname))
      |                                             ^~~~~~
      |                                             cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:473:50: error: ‘struct charset_info_st’ has no member named ‘csname’; did you mean ‘cs_name’?
  473 |         sprintf(filename,"%s/%s.xml",argv[1],cs->csname);
      |                                                  ^~~~~~
      |                                                  cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:507:48: error: ‘struct charset_info_st’ has no member named ‘csname’; did you mean ‘cs_name’?
  507 |       fprintf(f,"#ifdef HAVE_CHARSET_%s\n",cs->csname);
      |                                                ^~~~~~
      |                                                cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:521:48: error: ‘struct charset_info_st’ has no member named ‘csname’; did you mean ‘cs_name’?
  521 |       fprintf(f,"#ifdef HAVE_CHARSET_%s\n",cs->csname);
      |                                                ^~~~~~
      |                                                cs_name
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c: In function ‘simple_cs_is_full’:
/home/bar/maria-git/server.10.11.cs/strings/conf_to_src.c:204:1: error: control reaches end of non-void function [-Werror=return-type]
  204 | }
      | ^
cc1: all warnings being treated as errors
make[3]: *** [strings/CMakeFiles/conf_to_src.dir/build.make:83: strings/CMakeFiles/conf_to_src.dir/conf_to_src.c.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:10165: strings/CMakeFiles/conf_to_src.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:10172: strings/CMakeFiles/conf_to_src.dir/rule] Error 2
make: *** [Makefile:229: strings/CMakeFiles/conf_to_src.dir/rule] Error 2

The problem was introduced by the commit a206658b985fe5e18fb5692fdb3698dad5aca70a.


Generated at Thu Feb 08 10:18:11 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.