HomeFreeBSD

x11/xorgproto: ensure Xos.h does not define index() as a macro

Description

x11/xorgproto: ensure Xos.h does not define index() as a macro

During the exp-run for clang 16, it turned out that Xos.h defines
index() and rindex() as preprocessor macros, and this causes many
problems with libc++ headers [1]:

/usr/include/c++/v1/variant:532:39: error: too few arguments provided to function-like macro invocation
    return __at(__fmatrix, __vs.index()...)(
                                      ^
/usr/local/include/X11/Xos.h:67:12: note: macro 'index' defined here
#   define index(s,c) (strchr((s),(c)))
           ^
/usr/include/c++/v1/variant:813:18: error: too few arguments provided to function-like macro invocation
    return index() == variant_npos;
                 ^
/usr/local/include/X11/Xos.h:67:12: note: macro 'index' defined here
#   define index(s,c) (strchr((s),(c)))
           ^
/usr/include/c++/v1/variant:817:25: error: expected ';' at end of declaration list
  constexpr size_t index() const noexcept {
                        ^
/usr/include/c++/v1/variant:802:9: error: member initializer '__data' does not name a non-static data member or base class
      : __data(__tag), __index(__variant_npos<__index_t>) {}
        ^~~~~~~~~~~~~
/usr/include/c++/v1/variant:808:9: error: member initializer '__data' does not name a non-static data member or base class
        __data(in_place_index<_Ip>, _VSTD::forward<_Args>(__args)...),
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/variant:920:23: error: too few arguments provided to function-like macro invocation
          __rhs.index(),
                      ^
/usr/local/include/X11/Xos.h:67:12: note: macro 'index' defined here
#   define index(s,c) (strchr((s),(c)))
           ^

Add defined(FreeBSD) to Xos.h's #if block to include <strings.h>
instead, so it will get our regular index() and rindex() declarations
instead. This has also been sent upstream [2].

[1] https://pkg-status.freebsd.org/gohan05/data/mainamd64PR271047-default/2023-05-14_19h35m09s/logs/errors/scim-1.4.9_7.log
[2] https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/73

PR: 271533
Approved by: manu (maintainer)
MFH: 2023Q2

Details

Provenance
dimAuthored on May 20 2023, 3:15 PM
Parents
R11:8c83725ae0e6: x11-wm/gamescope: chase description summary
Branches
Unknown
Tags
Unknown