Re: Clang (Open XL C 17.1+) on AIX

Ben Huntsman <[email protected]> Sun, 1 Dec 2024 03:32:32 +0000
Newsgroups gmane.comp.file-systems.openafs.devel
Message-ID <BN8PR07MB58759BFFAB722F9C31DA2652A7342@BN8PR07MB5875.namprd07.prod.outlook.com>
> Where is  struct free_sock_hash_bucket declared?

It's in /usr/include/sys/socketvar.h.  The problem is it also has that forward declaration.  So first up in that file we have:

extern struct free_sock_hash_bucket free_sock_hash_table[];

And then a bit later:

/*----------------------------------------------
//
// free_sock_hash_bucket
//
*/

#define FREE_SOCK_HASH_SZ   103

struct free_sock_hash_bucket
{
    int                 fsh_freecnt;
    simple_lock_data_t  fsh_lock;
    int                 fsh_intrlvl;
    struct socket       *fsh_freelist;
};

This is why I don't know that we can do anything about it other than work around it in our code.

Thanks!

-Ben



________________________________
From: Jeffrey Altman
Sent: Saturday, November 30, 2024 6:43 PM
To: Ben Huntsman
Cc: openafs-devel
Subject: Re: [OpenAFS-devel] Clang (Open XL C 17.1+) on AIX


On Nov 30, 2024, at 5:52 PM, Ben Huntsman <[email protected]> wrote:

In file included from /home/build/openafs/src/external/heimdal/hcrypto/sha256.c:34:
In file included from /home/build/openafs/src/crypto/hcrypto/kernel/config.h:30:
In file included from /home/build/openafs/src/afs/sysincludes.h:276:
../sys/socketvar.h:158:57: error: array has incomplete element type 'struct free_sock_hash_bucket'
extern struct free_sock_hash_bucket free_sock_hash_table[];
                                                        ^
../sys/socketvar.h:158:15: note: forward declaration of 'struct free_sock_hash_bucket'
extern struct free_sock_hash_bucket free_sock_hash_table[];
              ^

   Unfortunately sys/socketvar.h is an AIX-supplied header file, so we can't change it.  I could open a bug report with IBM but even if they fix it in the future we still need to deal with this situation for this version.


Where is  struct free_sock_hash_bucket declared?