diff options
| author | Maxim Dounin <mdounin@mdounin.ru> | 2015-05-25 17:58:13 +0300 |
|---|---|---|
| committer | Maxim Dounin <mdounin@mdounin.ru> | 2015-05-25 17:58:13 +0300 |
| commit | 226647e39742ab4e154c3e2546f7300952c3ee3f (patch) | |
| tree | b307c1718eeeb0a0d6548080141c859ef63e983c | |
| parent | b4619182bb53d0c65790ce9b0f67e744111f0831 (diff) | |
| download | nginx-226647e39742ab4e154c3e2546f7300952c3ee3f.tar.gz nginx-226647e39742ab4e154c3e2546f7300952c3ee3f.tar.bz2 | |
Configure: GNU Hurd properly recognized.
With this change it's no longer needed to pass -D_GNU_SOURCE manually,
and -D_FILE_OFFSET_BITS=64 is set to use 64-bit off_t.
Note that nginx currently fails to work properly with master process
enabled on GNU Hurd, as fcntl(F_SETOWN) returns EOPNOTSUPP for sockets
as of GNU Hurd 0.6. Additionally, our strerror() preloading doesn't
work well with GNU Hurd, as it uses large numbers for most errors.
| -rw-r--r-- | auto/os/conf | 9 | ||||
| -rw-r--r-- | src/os/unix/ngx_posix_config.h | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/auto/os/conf b/auto/os/conf index fe720160a..6ad0e74e0 100644 --- a/auto/os/conf +++ b/auto/os/conf @@ -60,6 +60,15 @@ case "$NGX_PLATFORM" in CORE_SRCS="$UNIX_SRCS" ;; + GNU:*) + # GNU Hurd + have=NGX_GNU_HURD . auto/have_headers + CORE_INCS="$UNIX_INCS" + CORE_DEPS="$UNIX_DEPS $POSIX_DEPS" + CORE_SRCS="$UNIX_SRCS" + CC_AUX_FLAGS="$CC_AUX_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" + ;; + *) CORE_INCS="$UNIX_INCS" CORE_DEPS="$UNIX_DEPS $POSIX_DEPS" diff --git a/src/os/unix/ngx_posix_config.h b/src/os/unix/ngx_posix_config.h index d725659df..443c4b001 100644 --- a/src/os/unix/ngx_posix_config.h +++ b/src/os/unix/ngx_posix_config.h @@ -21,6 +21,14 @@ #endif +#if (NGX_GNU_HURD) +#ifndef _GNU_SOURCE +#define _GNU_SOURCE /* accept4() */ +#endif +#define _FILE_OFFSET_BITS 64 +#endif + + #ifdef __CYGWIN__ #define timezonevar /* timezone is variable */ #define NGX_BROKEN_SCM_RIGHTS 1 |
