Missing header files while trying to "cook" ssh
Created by: AgustinCB
I followed the steps in the README and the book.
Although I was able to compile most of the projects in the cookbook with little problem, ssh is failing with the following error:
make[1]: Entering directory '/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/openbsd-compat'
x86_64-unknown-redox-gcc -g -O2 -pipe -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -I. -I.. -I. -I./.. -I/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/../sysroot/include -DHAVE_CONFIG_H -c arc4random.c
In file included from ../openbsd-compat/getrrsetbyname.h:59:0,
from ../openbsd-compat/openbsd-compat.h:44,
from ../includes.h:174,
from arc4random.c:27:
/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/../sysroot/include/resolv.h:168:26: error: array type has incomplete element type 'struct sockaddr_storage'
struct sockaddr_storage nsaddr_list[MAXNS];
^~~~~~~~~~~
/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/../sysroot/include/resolv.h:173:20: error: field 'in6a' has incomplete type
struct in6_addr in6a;
^~~~
In file included from ../openbsd-compat/openbsd-compat.h:175:0,
from ../includes.h:174,
from arc4random.c:27:
/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/../sysroot/include/sys/uio.h:23:10: fatal error: bits/types/struct_iovec.h: No such file or directory
#include <bits/types/struct_iovec.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:26: arc4random.o] Error 1
make[1]: Leaving directory '/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/openbsd-compat'
make: *** [Makefile:156: openbsd-compat/libopenbsd-compat.a] Error 2
I tried to debug a little bit with no result. One of the things I noticed is that the ssh recipe builds its own newlib in a way to doesn't seem different from what the newlib recipe does (other than having a different repository). I tried commenting that step and putting newlib as a dependency instead and failed with a different error:
make[1]: Entering directory '/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/openbsd-compat'
x86_64-unknown-redox-gcc -g -O2 -pipe -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-result -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -I. -I.. -I. -I./.. -I/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/../sysroot/include -DHAVE_CONFIG_H -c arc4random.c
In file included from ../openbsd-compat/openbsd-compat.h:44:0,
from ../includes.h:174,
from arc4random.c:27:
../openbsd-compat/getrrsetbyname.h:59:10: fatal error: resolv.h: No such file or directory
#include <resolv.h>
^~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:26: arc4random.o] Error 1
make[1]: Leaving directory '/mnt/data/redox_playground/redox/cookbook/recipes/ssh/build/openbsd-compat'
make: *** [Makefile:156: openbsd-compat/libopenbsd-compat.a] Error 2