In file included from ./include/ruby/ruby.h:42,
                 from debug_counter.h:351,
                 from string.c:24:
string.c: In function ‘rb_str_crypt’:
string.c:10755:35: error: invalid application of ‘sizeof’ to incomplete type ‘struct crypt_data’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |                                   ^~~~~~
./include/ruby/internal/memory.h:305:7: note: in definition of macro ‘RB_ALLOCV’
  305 |     ((n) < RUBY_ALLOCV_LIMIT ? \
      |       ^
string.c:10755:12: note: in expansion of macro ‘ALLOCV’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |            ^~~~~~
In file included from /usr/include/stdlib.h:706,
                 from ./include/ruby/defines.h:27,
                 from ./include/ruby/ruby.h:25:
string.c:10755:35: error: invalid application of ‘sizeof’ to incomplete type ‘struct crypt_data’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |                                   ^~~~~~
./include/ruby/internal/memory.h:404:20: note: in expansion of macro ‘RB_ALLOCV’
  404 | #define ALLOCV     RB_ALLOCV     /**< @old{RB_ALLOCV} */
      |                    ^~~~~~~~~
string.c:10755:12: note: in expansion of macro ‘ALLOCV’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |            ^~~~~~
string.c:10755:35: error: invalid application of ‘sizeof’ to incomplete type ‘struct crypt_data’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |                                   ^~~~~~
./include/ruby/internal/memory.h:307:33: note: in definition of macro ‘RB_ALLOCV’
  307 |      rb_alloc_tmp_buffer(&(v), (n)))
      |                                 ^
string.c:10755:12: note: in expansion of macro ‘ALLOCV’
10755 |     data = ALLOCV(databuf, sizeof(struct crypt_data));
      |            ^~~~~~
string.c:10759:11: error: implicit declaration of function ‘crypt_r’; did you mean ‘crypt’? [-Wimplicit-function-declaration]
10759 |     res = crypt_r(s, saltp, data);
      |           ^~~~~~~
      |           crypt
string.c:10759:9: error: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
10759 |     res = crypt_r(s, saltp, data);
      |         ^
make: *** [Makefile:490: string.o] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
  File "/var/pisi/ruby/actions.py", line 22, in build
    autotools.make()
  File "/usr/lib/pisilinux/pisi/actionsapi/autotools.py", line 103, in make
    if system('make %s %s' % (get.makeJOBS(), parameters)):
  File "/usr/lib/pisilinux/pisi/actionsapi/shelltools.py", line 255, in system
    error(_("Command \"%s\" failed, return value was %d.") % (command, retValue))
  File "/usr/lib/pisilinux/pisi/actionsapi/__init__.py", line 27, in error
    raise Error(msg)
pisi.actionsapi.Error: Command "make -j5" failed, return value was 2.
Action script error caught.
*** 1 error(s), 0 warning(s)
Program terminated.