Skip to content
  • Levin Zimmermann's avatar
    component/texinfo/v4.13: Fix compilation with GCC>=14 · 0babd639
    Levin Zimmermann authored
    texinfo is a dependency of gdb, and gdb is a dependency
    for testing wendelin.core. If we use GCC 14 (py3 mode),
    texinfo compilation currently fails, resulting in broken
    wendelin.core ZODB6 tests [1]. The compilation failure
    occurs, because GCC 14 treats certain warnings now as
    errors [2]. Explicitly tell compiler to compile in C89
    standard to fix the errors.
    
    ---
    
    [1] window.c: In function ‘process_node_text’:
    window.c:1600:39: error: passing argument 2 of ‘ansi_escape’ from incompatible pointer type [-Wincompatible-pointer-types]
     1600 |           else if (ansi_escape (iter, &cur_len))
          |                                       ^~~~~~~~
          |                                       |
          |                                       int *
    window.c:1453:43: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
     1453 | ansi_escape (mbi_iterator_t iter, size_t *plen)
          |                                   ~~~~~~~~^~~~
    window.c:1605:45: error: passing argument 3 of ‘info_tag’ from incompatible pointer type [-Wincompatible-pointer-types]
     1605 |           else if (info_tag (iter, do_tags, &cur_len))
          |                                             ^~~~~~~~
          |                                             |
          |                                             int *
    window.c:1495:52: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
     1495 | info_tag (mbi_iterator_t iter, int handle, size_t *plen)
          |                                            ~~~~~~~~^~~~
    window.c:1615:49: error: passing argument 4 of ‘printed_representation’ from incompatible pointer type [-Wincompatible-pointer-types]
     1615 |                                                 &cur_len);
          |                                                 ^~~~~~~~
          |                                                 |
          |                                                 int *
    In file included from display.h:27,
                     from info.h:40,
                     from window.c:22:
    info-utils.h:102:59: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
      102 |                                      size_t hpos, size_t *plen);
          |                                                   ~~~~~~~~^~~~
    window.c:1624:45: error: passing argument 4 of ‘printed_representation’ from incompatible pointer type [-Wincompatible-pointer-types]
     1624 |                                             &cur_len);
          |                                             ^~~~~~~~
          |                                             |
          |                                             int *
    info-utils.h:102:59: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
      102 |                                      size_t hpos, size_t *plen);
          |                                                   ~~~~~~~~^~~~
    window.c: In function ‘clean_manpage’:
    window.c:1766:39: error: passing argument 2 of ‘ansi_escape’ from incompatible pointer type [-Wincompatible-pointer-types]
     1766 |           else if (ansi_escape (iter, &cur_len))
          |                                       ^~~~~~~~
          |                                       |
          |                                       int *
    window.c:1453:43: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
     1453 | ansi_escape (mbi_iterator_t iter, size_t *plen)
          |                                   ~~~~~~~~^~~~
    window.c: In function ‘window_scan_line’:
    window.c:1872:39: error: passing argument 2 of ‘ansi_escape’ from incompatible pointer type [-Wincompatible-pointer-types]
     1872 |           else if (ansi_escape (iter, &cur_len))
          |                                       ^~~~~~~~
          |                                       |
          |                                       int *
    window.c:1453:43: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
     1453 | ansi_escape (mbi_iterator_t iter, size_t *plen)
          |                                   ~~~~~~~~^~~~
    window.c:1877:39: error: passing argument 3 of ‘info_tag’ from incompatible pointer type [-Wincompatible-pointer-types]
     1877 |           else if (info_tag (iter, 0, &cur_len))
          |                                       ^~~~~~~~
          |                                       |
          |                                       int *
    window.c:1495:52: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
     1495 | info_tag (mbi_iterator_t iter, int handle, size_t *plen)
          |                                            ~~~~~~~~^~~~
    window.c:1887:39: error: passing argument 4 of ‘printed_representation’ from incompatible pointer type [-Wincompatible-pointer-types]
     1887 |                                       &replen);
          |                                       ^~~~~~~
          |                                       |
          |                                       int *
    info-utils.h:102:59: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
      102 |                                      size_t hpos, size_t *plen);
          |                                                   ~~~~~~~~^~~~
    window.c:1895:35: error: passing argument 4 of ‘printed_representation’ from incompatible pointer type [-Wincompatible-pointer-types]
     1895 |                                   &replen);
          |                                   ^~~~~~~
          |                                   |
          |                                   int *
    info-utils.h:102:59: note: expected ‘size_t *’ {aka ‘long unsigned int *’} but argument is of type ‘int *’
      102 |                                      size_t hpos, size_t *plen);
          |                                                   ~~~~~~~~^~~~
    make[3]: *** [Makefile:600: window.o] Error 1
    make[3]: Leaving directory '/srv/slapgrid/slappart6/srv/shared/texinfo/9512e71ebbbe8f4d13b761bee9a6da94/.build/texinfo-4.13/info'
    make[2]: *** [Makefile:496: all] Error 2
    make[2]: Leaving directory '/srv/slapgrid/slappart6/srv/shared/texinfo/9512e71ebbbe8f4d13b761bee9a6da94/.build/texinfo-4.13/info'
    make[1]: *** [Makefile:516: all-recursive] Error 1
    make[1]: Leaving directory '/srv/slapgrid/slappart6/srv/shared/texinfo/9512e71ebbbe8f4d13b761bee9a6da94/.build/texinfo-4.13'
    make: *** [Makefile:455: all] Error 2
    texinfo: Command 'set -e;make ' returned non-zero exit status 2.
    texinfo: Compilation error. The package is left as is at /srv/slapgrid/slappart6/srv/shared/texinfo/9512e71ebbbe8f4d13b761bee9a6da94/.build/texinfo-4.13 where you can inspect what went wrong.
    A shell script slapos.recipe.build.env.sh has been generated. You can source it in your shell to reproduce build environment.
    While:
      Installing texinfo.
    Error: System error
    
    [2] https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
    
    /reviewed-on !2241
    /reviewed-by @kirr @jerome
    0babd639