From bbdf4bbab3f0e11acee41c9875d9a857ce0beccc Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Wed, 9 Sep 2015 18:28:58 +0200 Subject: [PATCH] Fix compilation with solaris 11 Based on original patch from Nathan Tamblyn. Fix #831 --- core/hooks.c | 3 ++- uwsgiconfig.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/hooks.c b/core/hooks.c index 28daa9e7..63ae38d7 100644 --- a/core/hooks.c +++ b/core/hooks.c @@ -396,9 +396,10 @@ static int uwsgi_hook_chown2(char *arg) { } -#ifdef __sun__ +#if defined(UWSGI_SUNOS_EXTERN_SETHOSTNAME) extern int sethostname(char *, int); #endif + static int uwsgi_hook_hostname(char *arg) { #ifdef __CYGWIN__ return -1; diff --git a/uwsgiconfig.py b/uwsgiconfig.py index 7077b667..67ff35f3 100644 --- a/uwsgiconfig.py +++ b/uwsgiconfig.py @@ -810,7 +810,12 @@ class uConf(object): self.libs.append('-lsendfile') self.libs.append('-lrt') self.gcc_list.append('lib/sun_fixes') - self.ldflags.append('-L/lib') + sunos_major = int(uwsgi_os_k.split('.')[0]) + sunos_minor = int(uwsgi_os_k.split('.')[1]) + # solaris < 11 does not have sethostname declared in unistd + if not (sunos_major == 5 and sunos_minor > 10): + self.cflags.append('-DUWSGI_SUNOS_EXTERN_SETHOSTNAME') + self.ldflags.append('-L/lib') if not uwsgi_os_v.startswith('Nexenta'): self.libs.remove('-rdynamic')