OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-388-g0182fee

Gerrit Code Review gerrit@openafs.org
Wed, 19 Nov 2025 00:23:07 -0500


The following commit has been merged in the master branch:
commit 0182fee3dce6d609775ab1a6c12a6597e52c9d8f
Author: Ben Huntsman <ben@huntsmans.net>
Date:   Fri Dec 20 17:01:37 2024 -0800

    AIX: Redefine broken EYEC_MBUFA
    
    When building the kernel extension on AIX 7.2+ using the CLANG-based
    Open XL C 17.1+ compiler, during the build of src/rx/AIX/rx_knet.c, the
    following error is thrown:
    
        /home/build/openafs/src/rx/AIX/rx_knet.c:378:6: error: expected expression
                    MGETHDR(m, M_DONTWAIT, MT_DATA);
                    ^
        ../sys/mbuf_macro.h:389:25: note: expanded from macro 'MGETHDR'
                (m)->m_eyecat = EYEC_MBUFA;                                             \
                                ^
        ../sys/mbuf_base.h:79:61: note: expanded from macro 'EYEC_MBUFA'
                                                                    ^
    
    This happens because the system-provided header
    /usr/include/sys/mbuf_base.h (included indirectly via socketvar.h)
    provides an invalid definition for EYEC_MBUFA:
    
        #define EYEC_MBUFA      __EYEC8('m','b','u','f','A','L','L','')/* %mbufALL */
    
    The final byte is specified as '', which XL C 16.1 and earlier interpret
    as a NUL byte but which clang (correctly) treats as an error. This gets
    expanded whenever we call MGETHDR(), and so causes a build error
    whenever we call MGETHDR(), which we only do in rx_knet.c.
    
    To work around this, redefine EYEC_MBUFA when we're building with clang
    so the final byte is '\0'. Do this in rx_knet.c to try to reduce the
    scope of this workaround, and because we must do this after system
    headers have been included.
    
    Change-Id: Ifc6d06b097ccb2ae70f2e7021d12bc595f81249b
    Reviewed-on: https://gerrit.openafs.org/16574
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
    Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
    Reviewed-by: Ben Huntsman <ben@huntsmans.net>
    Tested-by: Ben Huntsman <ben@huntsmans.net>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>

 src/rx/AIX/rx_knet.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

-- 
OpenAFS Master Repository