[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT NGINX 3/5] Add include directory



Hi Mihai,

We have more patches in one here:

1. One patch which should introduce the generated headers
(ngx_auto_headers.h and ngx_auto_config.h).

2. One patch which should change the generated headers.

3. One patch adding the missing headers and "stubs".

Introducing generated headers in one patch and changing them in another
is something we also did for Python3 port [1]. It helps keeping track.

For the other comments, please see inline.

[1] https://patchwork.unikraft.org/project/Minios/list/?series=943

On 10/9/19 1:42 AM, Mihai Pogonaru wrote:
> The directory contains:
> - missing headers from Unikraft
> - "stubs" for missing definitions
> - ngx_auto_headers.h which was auto-generated
> - ngx_auto_config.h which was auto-generated and modified to
>     not use functionality that is not yet provided in Unikraft
> 
> Signed-off-by: Mihai Pogonaru <pogonarumihai@xxxxxxxxx>
> ---
>  include/crypt.h            |   0
>  include/netinet/in.h       |   0
>  include/netinet/tcp.h      |   1 +
>  include/ngx_auto_config.h  | 458 
> +++++++++++++++++++++++++++++++++++++++++++++
>  include/ngx_auto_headers.h |  51 +++++
>  include/sys/eventfd.h      |   0
>  include/sys/prctl.h        |   1 +
>  include/sys/sendfile.h     |   0
>  include/sys/signal.h       |   3 +
>  include/sys/socket.h       |   4 +
>  include/sys/syscall.h      |   0
>  include/sys/time.h         |   6 +
>  include/sys/un.h           |   0
>  include/sys/vfs.h          |   1 +
>  14 files changed, 525 insertions(+)
>  create mode 100644 include/crypt.h
>  create mode 100644 include/netinet/in.h
>  create mode 100644 include/netinet/tcp.h

We already have netinet/{in,tcp}.h in lwip glue code.

>  create mode 100644 include/ngx_auto_config.h
>  create mode 100644 include/ngx_auto_headers.h
>  create mode 100644 include/sys/eventfd.h
>  create mode 100644 include/sys/prctl.h

We already have sys/prctl.h in newlib glue code, under musl-imported/.

>  create mode 100644 include/sys/sendfile.h
>  create mode 100644 include/sys/signal.h
>  create mode 100644 include/sys/socket.h
>  create mode 100644 include/sys/syscall.h

You need syscall_shim, where syscalls are defined. sys/syscall.h is
already provided by newlib glue code.

>  create mode 100644 include/sys/time.h

We should use the sys/time.h in the uktime internal lib.

>  create mode 100644 include/sys/un.h

We already have sys/un.h in newlib glue code, under musl-imported/.

>  create mode 100644 include/sys/vfs.h

I think we should add sys/vfs.h in vfscore internal lib.

> 
> diff --git a/include/crypt.h b/include/crypt.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/netinet/in.h b/include/netinet/in.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h
> new file mode 100644
> index 0000000..0a488a8
> --- /dev/null
> +++ b/include/netinet/tcp.h
> @@ -0,0 +1 @@
> +#define TCP_CORK 0 // sockopt
> diff --git a/include/ngx_auto_config.h b/include/ngx_auto_config.h
> new file mode 100644
> index 0000000..d8bd33f
> --- /dev/null
> +++ b/include/ngx_auto_config.h
> @@ -0,0 +1,458 @@
> +#define NGX_CONFIGURE " 
> --prefix=/home/mihai/Unikraft/licenta/nginx_stuff/nginx_run 
> --with-http_sub_module --with-select_module --without-http_gzip_module 
> --without-pcre --without-http_rewrite_module --without-http_auth_basic_module 
> --without-http-cache"
> +
> +#ifndef NGX_COMPILER
> +#define NGX_COMPILER  "gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) "
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GCC_ATOMIC
> +#define NGX_HAVE_GCC_ATOMIC  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_C99_VARIADIC_MACROS
> +#define NGX_HAVE_C99_VARIADIC_MACROS  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GCC_VARIADIC_MACROS
> +#define NGX_HAVE_GCC_VARIADIC_MACROS  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GCC_BSWAP64
> +#define NGX_HAVE_GCC_BSWAP64  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_EPOLL
> +#define NGX_HAVE_EPOLL  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_CLEAR_EVENT
> +#define NGX_HAVE_CLEAR_EVENT  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_EPOLLRDHUP
> +#define NGX_HAVE_EPOLLRDHUP  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_EPOLLEXCLUSIVE
> +#define NGX_HAVE_EPOLLEXCLUSIVE  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_O_PATH
> +#define NGX_HAVE_O_PATH  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SENDFILE
> +#define NGX_HAVE_SENDFILE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SENDFILE64
> +#define NGX_HAVE_SENDFILE64  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_PR_SET_DUMPABLE
> +#define NGX_HAVE_PR_SET_DUMPABLE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_PR_SET_KEEPCAPS
> +#define NGX_HAVE_PR_SET_KEEPCAPS  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_CAPABILITIES
> +#define NGX_HAVE_CAPABILITIES  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GNU_CRYPT_R
> +#define NGX_HAVE_GNU_CRYPT_R  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_NONALIGNED
> +#define NGX_HAVE_NONALIGNED  1
> +#endif
> +
> +
> +#ifndef NGX_CPU_CACHE_LINE
> +#define NGX_CPU_CACHE_LINE  64
> +#endif
> +
> +
> +#define NGX_KQUEUE_UDATA_T  (void *)
> +
> +
> +#ifndef NGX_HAVE_POSIX_FADVISE
> +#define NGX_HAVE_POSIX_FADVISE  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_O_DIRECT
> +#define NGX_HAVE_O_DIRECT  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_ALIGNED_DIRECTIO
> +#define NGX_HAVE_ALIGNED_DIRECTIO  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_STATFS
> +#define NGX_HAVE_STATFS  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_STATVFS
> +#define NGX_HAVE_STATVFS  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_DLOPEN
> +#define NGX_HAVE_DLOPEN  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SCHED_YIELD
> +#define NGX_HAVE_SCHED_YIELD  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SCHED_SETAFFINITY
> +#define NGX_HAVE_SCHED_SETAFFINITY  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_REUSEPORT
> +#define NGX_HAVE_REUSEPORT  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_TRANSPARENT_PROXY
> +#define NGX_HAVE_TRANSPARENT_PROXY  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_IP_BIND_ADDRESS_NO_PORT
> +#define NGX_HAVE_IP_BIND_ADDRESS_NO_PORT  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_IP_PKTINFO
> +#define NGX_HAVE_IP_PKTINFO  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_IPV6_RECVPKTINFO
> +#define NGX_HAVE_IPV6_RECVPKTINFO  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_DEFERRED_ACCEPT
> +#define NGX_HAVE_DEFERRED_ACCEPT  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_KEEPALIVE_TUNABLE
> +#define NGX_HAVE_KEEPALIVE_TUNABLE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_TCP_FASTOPEN
> +#define NGX_HAVE_TCP_FASTOPEN  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_TCP_INFO
> +#define NGX_HAVE_TCP_INFO  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_ACCEPT4
> +#define NGX_HAVE_ACCEPT4  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_EVENTFD
> +#define NGX_HAVE_EVENTFD  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_EVENTFD_H
> +#define NGX_HAVE_SYS_EVENTFD_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_UNIX_DOMAIN
> +#define NGX_HAVE_UNIX_DOMAIN  0
> +#endif
> +
> +
> +#ifndef NGX_PTR_SIZE
> +#define NGX_PTR_SIZE  8
> +#endif
> +
> +
> +#ifndef NGX_SIG_ATOMIC_T_SIZE
> +#define NGX_SIG_ATOMIC_T_SIZE  4
> +#endif
> +
> +
> +#ifndef NGX_HAVE_LITTLE_ENDIAN
> +#define NGX_HAVE_LITTLE_ENDIAN  1
> +#endif
> +
> +
> +#ifndef NGX_MAX_SIZE_T_VALUE
> +#define NGX_MAX_SIZE_T_VALUE  9223372036854775807LL
> +#endif
> +
> +
> +#ifndef NGX_SIZE_T_LEN
> +#define NGX_SIZE_T_LEN  (sizeof("-9223372036854775808") - 1)
> +#endif
> +
> +
> +#ifndef NGX_MAX_OFF_T_VALUE
> +#define NGX_MAX_OFF_T_VALUE  9223372036854775807LL
> +#endif
> +
> +
> +#ifndef NGX_OFF_T_LEN
> +#define NGX_OFF_T_LEN  (sizeof("-9223372036854775808") - 1)
> +#endif
> +
> +
> +#ifndef NGX_TIME_T_SIZE
> +#define NGX_TIME_T_SIZE  8
> +#endif
> +
> +
> +#ifndef NGX_TIME_T_LEN
> +#define NGX_TIME_T_LEN  (sizeof("-9223372036854775808") - 1)
> +#endif
> +
> +
> +#ifndef NGX_MAX_TIME_T_VALUE
> +#define NGX_MAX_TIME_T_VALUE  9223372036854775807LL
> +#endif
> +
> +
> +#ifndef NGX_HAVE_INET6
> +#define NGX_HAVE_INET6  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_PREAD
> +#define NGX_HAVE_PREAD  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_PWRITE
> +#define NGX_HAVE_PWRITE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_PWRITEV
> +#define NGX_HAVE_PWRITEV  1
> +#endif
> +
> +
> +#ifndef NGX_SYS_NERR
> +#define NGX_SYS_NERR  12 // was 135, Unikraft does not have all the error 
> codes
> +#endif
> +
> +
> +#ifndef NGX_HAVE_LOCALTIME_R
> +#define NGX_HAVE_LOCALTIME_R  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_CLOCK_MONOTONIC
> +#define NGX_HAVE_CLOCK_MONOTONIC  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_POSIX_MEMALIGN
> +#define NGX_HAVE_POSIX_MEMALIGN  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_MEMALIGN
> +#define NGX_HAVE_MEMALIGN  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_MAP_ANON
> +#define NGX_HAVE_MAP_ANON  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_MAP_DEVZERO
> +#define NGX_HAVE_MAP_DEVZERO  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYSVSHM
> +#define NGX_HAVE_SYSVSHM  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_POSIX_SEM
> +#define NGX_HAVE_POSIX_SEM  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_MSGHDR_MSG_CONTROL
> +#define NGX_HAVE_MSGHDR_MSG_CONTROL  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_FIONBIO
> +#define NGX_HAVE_FIONBIO  1 // ioctl(FIONBIO)
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GMTOFF
> +#define NGX_HAVE_GMTOFF  0
> +#endif
> +
> +
> +#ifndef NGX_HAVE_D_TYPE
> +#define NGX_HAVE_D_TYPE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SC_NPROCESSORS_ONLN
> +#define NGX_HAVE_SC_NPROCESSORS_ONLN  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_LEVEL1_DCACHE_LINESIZE
> +#define NGX_HAVE_LEVEL1_DCACHE_LINESIZE  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_OPENAT
> +#define NGX_HAVE_OPENAT  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_GETADDRINFO
> +#define NGX_HAVE_GETADDRINFO  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SELECT
> +#define NGX_HAVE_SELECT  1
> +#endif
> +
> +
> +#ifndef NGX_HTTP_SSI
> +#define NGX_HTTP_SSI  1
> +#endif
> +
> +
> +#ifndef NGX_HTTP_X_FORWARDED_FOR
> +#define NGX_HTTP_X_FORWARDED_FOR  1
> +#endif
> +
> +
> +#ifndef NGX_HTTP_UPSTREAM_ZONE
> +#define NGX_HTTP_UPSTREAM_ZONE  1
> +#endif
> +
> +
> +#ifndef NGX_PREFIX
> +#define NGX_PREFIX  "/nginx/"
> +#endif
> +
> +
> +#ifndef NGX_CONF_PREFIX
> +#define NGX_CONF_PREFIX  "conf/"
> +#endif
> +
> +
> +#ifndef NGX_SBIN_PATH
> +#define NGX_SBIN_PATH  "sbin/nginx"
> +#endif
> +
> +
> +#ifndef NGX_CONF_PATH
> +#define NGX_CONF_PATH  "conf/nginx.conf"
> +#endif
> +
> +
> +#ifndef NGX_PID_PATH
> +#define NGX_PID_PATH  "logs/nginx.pid"
> +#endif
> +
> +
> +#ifndef NGX_LOCK_PATH
> +#define NGX_LOCK_PATH  "logs/nginx.lock"
> +#endif
> +
> +
> +#ifndef NGX_ERROR_LOG_PATH
> +#define NGX_ERROR_LOG_PATH  "logs/error.log"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_LOG_PATH
> +#define NGX_HTTP_LOG_PATH  "logs/access.log"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_CLIENT_TEMP_PATH
> +#define NGX_HTTP_CLIENT_TEMP_PATH  "client_body_temp"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_PROXY_TEMP_PATH
> +#define NGX_HTTP_PROXY_TEMP_PATH  "proxy_temp"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_FASTCGI_TEMP_PATH
> +#define NGX_HTTP_FASTCGI_TEMP_PATH  "fastcgi_temp"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_UWSGI_TEMP_PATH
> +#define NGX_HTTP_UWSGI_TEMP_PATH  "uwsgi_temp"
> +#endif
> +
> +
> +#ifndef NGX_HTTP_SCGI_TEMP_PATH
> +#define NGX_HTTP_SCGI_TEMP_PATH  "scgi_temp"
> +#endif
> +
> +
> +#ifndef NGX_SUPPRESS_WARN
> +#define NGX_SUPPRESS_WARN  1
> +#endif
> +
> +
> +#ifndef NGX_SMP
> +#define NGX_SMP  0
> +#endif
> +
> +
> +#ifndef NGX_USER
> +#define NGX_USER  "root"
> +#endif
> +
> +
> +#ifndef NGX_GROUP
> +#define NGX_GROUP  "root"
> +#endif
> diff --git a/include/ngx_auto_headers.h b/include/ngx_auto_headers.h
> new file mode 100644
> index 0000000..6710d90
> --- /dev/null
> +++ b/include/ngx_auto_headers.h
> @@ -0,0 +1,51 @@
> +
> +
> +#ifndef NGX_HAVE_UNISTD_H
> +#define NGX_HAVE_UNISTD_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_INTTYPES_H
> +#define NGX_HAVE_INTTYPES_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_LIMITS_H
> +#define NGX_HAVE_LIMITS_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_PARAM_H
> +#define NGX_HAVE_SYS_PARAM_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_MOUNT_H
> +#define NGX_HAVE_SYS_MOUNT_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_STATVFS_H
> +#define NGX_HAVE_SYS_STATVFS_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_CRYPT_H
> +#define NGX_HAVE_CRYPT_H  1
> +#endif
> +
> +
> +#ifndef NGX_LINUX
> +#define NGX_LINUX  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_PRCTL_H
> +#define NGX_HAVE_SYS_PRCTL_H  1
> +#endif
> +
> +
> +#ifndef NGX_HAVE_SYS_VFS_H
> +#define NGX_HAVE_SYS_VFS_H  1
> +#endif
> +
> diff --git a/include/sys/eventfd.h b/include/sys/eventfd.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/sys/prctl.h b/include/sys/prctl.h
> new file mode 100644
> index 0000000..73d728c
> --- /dev/null
> +++ b/include/sys/prctl.h
> @@ -0,0 +1 @@
> +#define PR_SET_DUMPABLE 2 //NGX_HAVE_PR_SET_DUMPABLE; prctl
> diff --git a/include/sys/sendfile.h b/include/sys/sendfile.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/sys/signal.h b/include/sys/signal.h
> new file mode 100644
> index 0000000..79e7bf0
> --- /dev/null
> +++ b/include/sys/signal.h
> @@ -0,0 +1,3 @@
> +#define si_pid si_code /* hack until we have signals in Unikraft */
> +
> +#include_next <sys/signal.h>
> diff --git a/include/sys/socket.h b/include/sys/socket.h
> new file mode 100644
> index 0000000..c2c3ab2
> --- /dev/null
> +++ b/include/sys/socket.h
> @@ -0,0 +1,4 @@
> +#define AF_UNIX 0 // NGX_HAVE_UNIX_DOMAIN
> +#define SCM_RIGHTS 0 // NGX_HAVE_MSGHDR_MSG_CONTROL, ngx_write_channel
> +
> +#include_next <sys/socket.h>
> diff --git a/include/sys/syscall.h b/include/sys/syscall.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/sys/time.h b/include/sys/time.h
> new file mode 100644
> index 0000000..dd2a1a3
> --- /dev/null
> +++ b/include/sys/time.h
> @@ -0,0 +1,6 @@
> +#ifndef _NGINX_TIMEZONE_DEFINED
> +#define _NGINX_TIMEZONE_DEFINED
> +extern long timezone;
> +#endif // _NGINX_TIMEZONE_DEFINED
> +
> +#include_next <sys/time.h>
> diff --git a/include/sys/un.h b/include/sys/un.h
> new file mode 100644
> index 0000000..e69de29
> diff --git a/include/sys/vfs.h b/include/sys/vfs.h
> new file mode 100644
> index 0000000..a899db2
> --- /dev/null
> +++ b/include/sys/vfs.h
> @@ -0,0 +1 @@
> +#include <sys/statfs.h>
> 

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.