benmills / robotskirt

A node wrapper for the awesome C markdown parser, sundown.
benmills.org/robotskirt
MIT License
165 stars 21 forks source link

Wrong architecture #20

Closed jonathanong closed 11 years ago

jonathanong commented 12 years ago

When installing through npm:

ld: warning: ignoring file Release/src/markdown_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/array_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/buffer_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/html_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/markdown_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/array_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/buffer_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file Release/src/html_1.o, file was built for unsupported file format which is not the architecture being linked (i386)

when requiring:

Error: dlopen(/Users/jong/Workspace/fme/node_modules/robotskirt/build/Release/robotskirt.node, 1): no suitable image found.  Did find:
/Users/jong/Workspace/fme/node_modules/robotskirt/build/Release/robotskirt.node: mach-o, but wrong architecture

I'm on Mac OS X 10.7.4

tbranyen commented 12 years ago

I'm on OS X 10.7.4 as well and got this output when installing:


'configure' finished successfully (0.257s)
Waf: Entering directory `/Users/timbranyen/tmp/robot/node_modules/robotskirt/build'
[1/7] cc: src/markdown.c -> build/Release/src/markdown_1.o
[2/7] cc: src/array.c -> build/Release/src/array_1.o
[3/7] cc: src/buffer.c -> build/Release/src/buffer_1.o
[4/7] cc: src/html.c -> build/Release/src/html_1.o
[5/7] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_2.o
[6/7] cxx_link: build/Release/src/robotskirt_2.o build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/robotskirt.node
[7/7] cc_link: build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/libsundown.dylib
Waf: Leaving directory `/Users/timbranyen/tmp/robot/node_modules/robotskirt/build'
'build' finished successfully (0.860s)
robotskirt@0.2.5 ./node_modules/robotskirt
timbranyen in ~/tmp/robot λ node
> require("robotskirt")
{ version: '0.2.2',
  toHtml: [Function],
  toHtmlSync: [Function] }
> 
jonathanong commented 12 years ago

know what could be causing this error? started happening after i updated to node v0.8

mildsunrise commented 12 years ago

Well, the versions published to NPM are pre-built. So, maybe node-waf steps directly to linking. But as the files are built in i386 it gives errors.

@jonathanong Please, can you try cloning robotskirt and building it manually (run node-waf configure, then node-waf build)?

jonathanong commented 12 years ago

Nope, same thing.

Jonathans-Mac-mini:robotskirt jong$ node-waf configure
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.149s)
Jonathans-Mac-mini:robotskirt jong$ node-waf build
Waf: Entering directory `/Users/jong/Workspace/robotskirt/build'
[1/7] cc: src/markdown.c -> build/Release/src/markdown_1.o
[2/7] cc: src/array.c -> build/Release/src/array_1.o
[3/7] cc: src/buffer.c -> build/Release/src/buffer_1.o
[4/7] cc: src/html.c -> build/Release/src/html_1.o
[5/7] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_2.o
[6/7] cxx_link: build/Release/src/robotskirt_2.o build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/robotskirt.node
[7/7] cc_link: build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/libsundown.dylib
ldld::  warningwarning: :ignoring  fileignoring  Release/filesrc /Releasemarkdown_1.o/,src /file markdown_1.owas,  builtfile  for wasunsupported  builtfile  forformat  whichunsupported  is filenot  the formatarchitecture  beingwhich  linked is( i386)not
 ld:the warning : architectureignoring  filebeing  Releaselinked/ src/(array_1.o,i386 )file
 wasld :built  forwarning :unsupported  fileignoring  format filewhich  Releaseis/ srcnot/ thearray_1.o ,architecture  beingfile  linkedwas  (i386built) 
forld : unsupportedwarning : fileignoring  fileformat  Release/whichsrc /isbuffer_1.o , notfile  thewas  builtarchitecture  for beingunsupported  linkedfile  format( i386which )is
 notld :the  architecturewarning :being  linkedignoring  (i386file)
 ld:Release /warning:src /ignoring buffer_1.ofile,  Release/filesrc/ html_1.o,was  file builtwas  builtfor  for unsupportedunsupported  filefile  format formatwhich  iswhich  not isthe  architecturenot  beingthe  linked architecture( i386)being
 linked (i386)
ld: warning: ignoring file Release/src/html_1.o, file was built for unsupported file format which is not the architecture being linked (i386)
Waf: Leaving directory `/Users/jong/Workspace/robotskirt/build'
'build' finished successfully (0.739s)
Jonathans-Mac-mini:robotskirt jong$ 
adamchester commented 12 years ago

I am having the same issue on 10.8

jonathanong commented 12 years ago

dump after i updated to 10.8:

Jonathans-MacBook-Air:fme jong$ npm install robotskirt
npm http GET https://registry.npmjs.org/robotskirt
npm http 304 https://registry.npmjs.org/robotskirt
npm WARN engine robotskirt@0.2.5: wanted: {"node":"~0.6"} (current: {"node":"0.8.4","npm":"1.1.45"})

> robotskirt@0.2.5 install /Users/jong/Workspace/fme/node_modules/robotskirt
> node-waf clean ; node-waf configure build

Nothing to clean (project not configured)
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for node path                   : ok /Users/jong/.node_libraries 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.163s)
Waf: Entering directory `/Users/jong/Workspace/fme/node_modules/robotskirt/build'
[1/7] cc: src/markdown.c -> build/Release/src/markdown_1.o
[2/7] cc: src/array.c -> build/Release/src/array_1.o
[3/7] cc: src/buffer.c -> build/Release/src/buffer_1.o
[4/7] cc: src/html.c -> build/Release/src/html_1.o
[5/7] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_2.o
[6/7] cxx_link: build/Release/src/robotskirt_2.o build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/robotskirt.node
[7/7] cc_link: build/Release/src/markdown_1.o build/Release/src/array_1.o build/Release/src/buffer_1.o build/Release/src/html_1.o -> build/Release/libsundown.dylib
ld: warning: ignoring file Release/src/markdown_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/markdown_1.o
ld: warning: ignoring file Release/src/array_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/array_1.o
ld: warning: ignoring file Release/src/buffer_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/buffer_1.o
ld: warning: ignoring file Release/src/html_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/html_1.o
ld: warning: ignoring file Release/src/markdown_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/markdown_1.o
ld: warning: ignoring file Release/src/array_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/array_1.o
ld: warning: ignoring file Release/src/buffer_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/buffer_1.o
ld: warning: ignoring file Release/src/html_1.o, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 1 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): Release/src/html_1.o
Waf: Leaving directory `/Users/jong/Workspace/fme/node_modules/robotskirt/build'
'build' finished successfully (1.279s)
robotskirt@0.2.5 node_modules/robotskirt
mildsunrise commented 12 years ago

Thanks for the info, it seems I figured out what's happening here.

I think this is an issue of node-waf. When it has to link a standard dynamic library (not a .node module) it fails.

To confirm, clone the source and replace the contents of wscript with:

srcdir = '.'
blddir = 'build'
VERSION = '1.0.0'

def set_options(opt):
  opt.tool_options('compiler_cxx')
  opt.tool_options("compiler_cc")

def configure(conf):
  conf.check_tool("compiler_cxx")
  conf.check_tool("compiler_cc")
  conf.check_tool("node_addon")

def build(bld):
  obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
  obj.cxxflags = ["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall"]
  obj.target = 'robotskirt'
  obj.source = '''
    src/robotskirt.cc
    src/markdown.c
    src/array.c
    src/buffer.c
    src/html.c
  '''

Does it build correctly now?

adamchester commented 12 years ago

I just cloned the source and attempted to build with

node-waf clean ; node-waf configure ; node-waf build

I recieved the following output:

'clean' finished successfully (0.016s)
Checking for program g++ or c++          : /usr/bin/g++ 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/bin/gcc 
Checking for gcc                         : ok  
Checking for node path                   : not found 
Checking for node prefix                 : ok /usr/local 
'configure' finished successfully (0.071s)
Waf: Entering directory `/Users/adamchester/gitrepos/robotskirt/build'
[1/6] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_1.o
[2/6] cxx: src/markdown.c -> build/Release/src/markdown_1.o
[3/6] cxx: src/array.c -> build/Release/src/array_1.o
[4/6] cxx: src/buffer.c -> build/Release/src/buffer_1.o
[5/6] cxx: src/html.c -> build/Release/src/html_1.o
../src/array.c: In function ‘int parr_realloc(parray*, int)’:
../src/array.c:46: error: invalid conversion from ‘void*’ to ‘void**’
../src/array.c: In function ‘int arr_insert(array*, int, int)’:
../src/array.c:96: error: invalid conversion from ‘void*’ to ‘char*’
../src/array.c: In function ‘void* arr_item(array*, int)’:
../src/array.c:110: error: invalid conversion from ‘void*’ to ‘char*’
../src/array.c: In function ‘void arr_remove(array*, int)’:
../src/array.c:129: error: invalid conversion from ‘void*’ to ‘char*’
../src/array.c: In function ‘void* arr_sorted_find(array*, void*, int (*)(void*, void*))’:
../src/array.c:140: error: invalid conversion from ‘void*’ to ‘char*’
../src/array.c: In function ‘int arr_sorted_find_i(array*, void*, int (*)(void*, void*))’:
../src/array.c:157: error: invalid conversion from ‘void*’ to ‘char*’
../src/array.c: In function ‘int parr_insert(parray*, int, int)’:
../src/array.c:218: error: invalid conversion from ‘void*’ to ‘char*’
../src/markdown.c: In function ‘buf* rndr_newbuf(render*, int)’:
../src/markdown.c:116: error: invalid conversion from ‘void*’ to ‘buf*’
../src/markdown.c: In function ‘int cmp_link_ref(void*, void*)’:
../src/markdown.c:214: error: invalid conversion from ‘void*’ to ‘link_ref*’
../src/markdown.c:215: error: invalid conversion from ‘void*’ to ‘const buf*’
../src/markdown.c:215: error:   initializing argument 1 of ‘int bufcasecmp(const buf*, const buf*)’
../src/markdown.c: In function ‘int cmp_link_ref_sort(const void*, const void*)’:
../src/markdown.c:222: error: invalid conversion from ‘const void*’ to ‘const link_ref*’
../src/markdown.c:223: error: invalid conversion from ‘const void*’ to ‘const link_ref*’
../src/markdown.c: In function ‘int cmp_html_tag(const void*, const void*)’:
../src/markdown.c:231: error: invalid conversion from ‘const void*’ to ‘const html_tag*’
../src/markdown.c:232: error: invalid conversion from ‘const void*’ to ‘const html_tag*’
../src/markdown.c: In function ‘html_tag* find_block_tag(char*, size_t)’:
../src/markdown.c:257: error: invalid conversion from ‘void*’ to ‘html_tag*’
../src/buffer.c: In function ‘buf* bufdup(const buf*, size_t)’:
../src/buffer.c:129: error: invalid conversion from ‘void*’ to ‘buf*’
../src/buffer.c:140: error: invalid conversion from ‘void*’ to ‘char*’
../src/html.c: In function ‘int rndr_autolink(buf*, buf*, mkd_autolink, void*)’:
../src/html.c:108: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/buffer.c: In function ‘int bufgrow(buf*, size_t)’:
../src/buffer.c:165: error: invalid conversion from ‘void*’ to ‘char*’
../src/buffer.c: In function ‘buf* bufnew(size_t)’:
../src/buffer.c:174: error: invalid conversion from ‘void*’ to ‘buf*’
../src/html.c: In function ‘void rndr_header(buf*, buf*, int, void*)’:
../src/html.c:276: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘int rndr_link(buf*, buf*, buf*, buf*, void*)’:
../src/html.c:293: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘void rndr_paragraph(buf*, buf*, void*)’:
../src/html.c:332: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘void rndr_hrule(buf*, void*)’:
../src/html.c:397: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘int rndr_image(buf*, buf*, buf*, buf*, void*)’:
../src/html.c:406: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘int rndr_linebreak(buf*, void*)’:
../src/html.c:425: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘int rndr_raw_html(buf*, buf*, void*)’:
../src/html.c:434: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘void toc_header(buf*, buf*, int, void*)’:
../src/html.c:512: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/html.c: In function ‘void toc_finalize(buf*, void*)’:
../src/html.c:537: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/markdown.c: In function ‘size_t char_link(buf*, render*, char*, size_t, size_t)’:
../src/markdown.c:1115: error: invalid conversion from ‘void*’ to ‘link_ref*’
../src/html.c: In function ‘void upshtml_toc_renderer(mkd_renderer*)’:
../src/html.c:585: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/markdown.c:1149: error: invalid conversion from ‘void*’ to ‘link_ref*’
../src/html.c: In function ‘void upshtml_renderer(mkd_renderer*, unsigned int)’:
../src/html.c:632: error: invalid conversion from ‘void*’ to ‘html_renderopt*’
../src/markdown.c: In function ‘size_t parse_table_header(buf*, render*, char*, size_t, size_t*, int**)’:
../src/markdown.c:1998: error: invalid conversion from ‘void*’ to ‘int*’
../src/markdown.c: In function ‘int is_ref(char*, size_t, size_t, size_t*, array*)’:
../src/markdown.c:2251: error: invalid conversion from ‘void*’ to ‘link_ref*’
../src/markdown.c: In function ‘void ups_markdown(buf*, buf*, const mkd_renderer*, unsigned int)’:
../src/markdown.c:2395: error: invalid conversion from ‘void*’ to ‘link_ref*’
../src/markdown.c:2408: error: invalid conversion from ‘void*’ to ‘buf*’
../src/markdown.c:2408: error:   initializing argument 1 of ‘void bufrelease(buf*)’
../src/markdown.c:2411: error: invalid conversion from ‘void*’ to ‘buf*’
../src/markdown.c:2411: error:   initializing argument 1 of ‘void bufrelease(buf*)’
Waf: Leaving directory `/Users/adamchester/gitrepos/robotskirt/build'
Build failed:
 -> task failed (err #1): 
    {task: cxx array.c -> array_1.o}
 -> task failed (err #1): 
    {task: cxx buffer.c -> buffer_1.o}
 -> task failed (err #1): 
    {task: cxx html.c -> html_1.o}
 -> task failed (err #1): 
    {task: cxx markdown.c -> markdown_1.o}
jonathanong commented 12 years ago

Nope, different error though.

Jonathans-MacBook-Air:robotskirt jong$ node-waf configure
    Checking for program g++ or c++          : /usr/bin/g++ 
    Checking for program cpp                 : /usr/bin/cpp 
    Checking for program ar                  : /usr/bin/ar 
    Checking for program ranlib              : /usr/bin/ranlib 
    Checking for g++                         : ok  
    Checking for program gcc or cc           : /usr/bin/gcc 
    Checking for gcc                         : ok  
    Checking for node path                   : ok /Users/jong/.node_libraries 
    Checking for node prefix                 : ok /usr/local 
    'configure' finished successfully (0.153s)
    Jonathans-MacBook-Air:robotskirt jong$ node-waf build
    Waf: Entering directory `/Users/jong/Workspace/robotskirt/build'
    [1/6] cxx: src/robotskirt.cc -> build/Release/src/robotskirt_1.o
    [2/6] cxx: src/markdown.c -> build/Release/src/markdown_1.o
    ../src/markdown.c: In function ‘buf* rndr_newbuf(render*, int)’:
    ../src/markdown.c:116: error: invalid conversion from ‘void*’ to ‘buf*’
    ../src/markdown.c: In function ‘int cmp_link_ref(void*, void*)’:
    ../src/markdown.c:214: error: invalid conversion from ‘void*’ to ‘link_ref*’
    ../src/markdown.c:215: error: invalid conversion from ‘void*’ to ‘const buf*’
    ../src/markdown.c:215: error:   initializing argument 1 of ‘int bufcasecmp(const buf*, const buf*)’
    ../src/markdown.c: In function ‘int cmp_link_ref_sort(const void*, const void*)’:
    ../src/markdown.c:222: error: invalid conversion from ‘const void*’ to ‘const link_ref*’
    ../src/markdown.c:223: error: invalid conversion from ‘const void*’ to ‘const link_ref*’
    ../src/markdown.c: In function ‘int cmp_html_tag(const void*, const void*)’:
    ../src/markdown.c:231: error: invalid conversion from ‘const void*’ to ‘const html_tag*’
    ../src/markdown.c:232: error: invalid conversion from ‘const void*’ to ‘const html_tag*’
    ../src/markdown.c: In function ‘html_tag* find_block_tag(char*, size_t)’:
    ../src/markdown.c:257: error: invalid conversion from ‘void*’ to ‘html_tag*’
    ../src/markdown.c: In function ‘size_t char_link(buf*, render*, char*, size_t, size_t)’:
    ../src/markdown.c:1115: error: invalid conversion from ‘void*’ to ‘link_ref*’
    ../src/markdown.c:1149: error: invalid conversion from ‘void*’ to ‘link_ref*’
    ../src/markdown.c: In function ‘size_t parse_table_header(buf*, render*, char*, size_t, size_t*, int**)’:
    ../src/markdown.c:1998: error: invalid conversion from ‘void*’ to ‘int*’
    ../src/markdown.c: In function ‘int is_ref(char*, size_t, size_t, size_t*, array*)’:
    ../src/markdown.c:2251: error: invalid conversion from ‘void*’ to ‘link_ref*’
    ../src/markdown.c: In function ‘void ups_markdown(buf*, buf*, const mkd_renderer*, unsigned int)’:
    ../src/markdown.c:2395: error: invalid conversion from ‘void*’ to ‘link_ref*’
    ../src/markdown.c:2408: error: invalid conversion from ‘void*’ to ‘buf*’
    ../src/markdown.c:2408: error:   initializing argument 1 of ‘void bufrelease(buf*)’
    ../src/markdown.c:2411: error: invalid conversion from ‘void*’ to ‘buf*’
    ../src/markdown.c:2411: error:   initializing argument 1 of ‘void bufrelease(buf*)’
    Waf: Leaving directory `/Users/jong/Workspace/robotskirt/build'
    Build failed:  -> task failed (err #1): 
      {task: cxx markdown.c -> markdown_1.o}
mildsunrise commented 12 years ago

Ah, it treats the sundown files as C++. This doesn't happen on linux.

As a last resort, build manually, i.e:

gcc -shared -I/usr/local/include/node -o robotskirt.node src/*.c src/robotskirt.cc

PD: Anyway, node-waf is no longer supported. node-gyp is used instead.

mildsunrise commented 11 years ago

Hey!

From v2.7, :sparkles: Node-GYP :sparkles: is being used instead. Can you try installing again?

npm install robotskirt

will do the job.

jonathanong commented 11 years ago

yo, it works now. just tested it because i ended up using marked. however, when installing, i now get the following warnings although it still works:

In file included from ../src/houdini_html_u.c:6:
html_unescape.gperf:122:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:122:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:122:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:122:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:123:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:123:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:123:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:123:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:124:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:124:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:133:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:133:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:133:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:227:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:231:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:111:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:126:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:126:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:16:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:80:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:80:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:62:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:62:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:13:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:84:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:52:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:244:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:244:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:244:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:230:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:160:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:125:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:125:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:125:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:55:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:55:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:17:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:58:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:58:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:201:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:226:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:61:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:61:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:199:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:82:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:10:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:37:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:37:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:251:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:114:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:182:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:171:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:49:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:180:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:180:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:18:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:18:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:18:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:220:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:220:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:209:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:118:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:245:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:89:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:56:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:100:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:100:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:100:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:40:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:204:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:207:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:206:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:29:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:29:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:29:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:186:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:102:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:134:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:175:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:208:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:115:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:45:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:174:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:34:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:34:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:34:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:132:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:132:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:167:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:68:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:68:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:68:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:68:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:69:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:221:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:221:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:221:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:221:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:222:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:222:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:222:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:63:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:63:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:63:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:63:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:121:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:121:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:121:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:53:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:53:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:53:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:53:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:54:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:54:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:54:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:54:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:55:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:55:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:55:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:55:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:56:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:56:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:56:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:57:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:57:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:57:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:57:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:58:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:58:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:58:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:176:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:176:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:176:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:176:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:177:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:177:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:177:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:177:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:178:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0},
               ^
html_unescape.gperf:233:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:233:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:233:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:233:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:210:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:210:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:210:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:210:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:211:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:211:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:211:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:211:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:212:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:212:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:212:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:212:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:213:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:213:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:213:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:213:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:214:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:214:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:214:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:214:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
html_unescape.gperf:172:16: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
               ^
html_unescape.gperf:172:28: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                           ^
html_unescape.gperf:172:40: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                       ^
html_unescape.gperf:172:52: warning: missing field 'utf8_len' initializer
      [-Wmissing-field-initializers]
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
                                                   ^
167 warnings generated.