Hi Bruno,

Bruno Haible via Gnulib discussion list <bug-gnulib@gnu.org> writes:
> The CI, now with gcc 14, reports a compilation error on Solaris 11 OmniOS:

I saw this yesterday as well but didn't have the time to complete a fix.

If you look in <unistd.h> you will see something like the following:

    #if defined _XPG4_2
    extern extern int gethostname (char *name, size_t len);
    #else
    extern extern int gethostname (char *name, int len);
    #endif

Something similar happens for accept with socklen_t * as the third
argument instead of void * when _XPG4_2 is defined. And so on for the
other functions.

The _XPG4_2 macro is an internal macro that gets defined in
/usr/include/sys/feature_tests.h. There is more commentary in that file
but here should be the most important parts:


    * Feature Test Macro                                Specification
    * ------------------------------------------------  -------------
    * _XOPEN_SOURCE                                         XPG3
    * _XOPEN_SOURCE && _XOPEN_VERSION = 4                   XPG4
    * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1           XPG4v2
    * _XOPEN_SOURCE = 500                                   XPG5
    * _XOPEN_SOURCE = 600  (or POSIX_C_SOURCE=200112L)      XPG6
    * _XOPEN_SOURCE = 700  (or POSIX_C_SOURCE=200809L)      XPG7
    * _XOPEN_SOURCE = 800  (or POSIX_C_SOURCE=202405L)      XPG8

I was thinking maybe a check should be added to m4/extensions.m4 (or the
upstream version in Autoconf?). What do you think about this?

Collin

Reply via email to