On 10 Jun 2014, at 20:26, Arran Cudbard-Bell <a.cudbardb@freeradius.org> wrote:
On 10 Jun 2014, at 20:00, Mathieu Simon (Lists) <matsimon.lists@simweb.ch> wrote:
Am 10.06.2014 14:05, schrieb Arran Cudbard-Bell:
On 10 Jun 2014, at 12:35, Rafael de Farias Meurer <rafael.meurer@gvt.com.br> wrote:
[...] there's some _X_OPEN_SOURCE macro we need to define to get Solaris to self un-labotomise it's socket API... so i'm researching what the value of that should be and where it should be defined.
[...] src/lib/udpfromto.c:251:6: error: 'struct msghdr' has no member named 'msg_control' msgh.msg_control = cbuf;
Ahem - re-reading Arran's message - that was just plain ./configure what I tried but not something like: CFLAGS="-D_XOPEN_SOURCE" ./configure
However then it fails accordingly:
If you read a bit more about _XOPEN_SOURCE it actually defines the version of the POSIX standard the System APIs should conform to.
By not specifying a value, or specifying value 1. It seems to assume you want POSIX-2001, and as we pass -std=c99 that causes a conflict.
From the feature test headers...
/* * It is invalid to compile an XPG3, XPG4, XPG4v2, or XPG5 application * using c99. The same is true for POSIX.1-1990, POSIX.2-1992, POSIX.1b, * and POSIX.1c applications. Likewise, it is invalid to compile an XPG6 * or a POSIX.1-2001 application with anything other than a c99 or later * compiler. Therefore, we force an error in both cases. */ #if defined(_STDC_C99) && (defined(__XOPEN_OR_POSIX) && !defined(_XPG6)) #error "Compiler or options invalid for pre-UNIX 03 X/Open applications \ and pre-2001 POSIX applications"
To define _XPG6 you set -D_XOPEN_SOURCE=600, except that causes the configure script to fail for some unknown reason.
Ahhh, because -std=c99 needs to be set earlier too :) Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2