Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Dec 2022 20:07:53 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 268339] databases/mysql57-server: fix build with clang 15 on i386
Message-ID:  <bug-268339-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D268339

            Bug ID: 268339
           Summary: databases/mysql57-server: fix build with clang 15 on
                    i386
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: joneum@FreeBSD.org
          Reporter: dim@FreeBSD.org
             Flags: maintainer-feedback?(joneum@FreeBSD.org)
          Assignee: joneum@FreeBSD.org

During an exp-run for llvm 15 (see bug 265425), it turned out that
databases/mysql57-server failed to build with clang 15, on i386:

  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/src/xpl_plugin.cc:30:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/src/xpl_session.h:31:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/ngs/include/ngs/client_session.h:30:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/ngs/include/ngs/protocol_encoder.h:31:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/ngs/include/ngs/protocol/page_pool.h:34:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/ngs/include/ngs_common/atomic.h:29:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic.hpp:12:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/atomic.hpp:20:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/fences.hpp:21:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/detail/operations.hpp:17:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/detail/operations_lockfree.hpp:21:
  In file included from
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/detail/ops_gcc_atomic.hpp:23:
=20
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/detail/ops_gcc_x86_dcas.hpp:147:21:
error: address argument to atomic builtin cannot be const-qualified ('const
volatile boost::atomics::detail::gcc_dcas_x86<true>::storage_type *' (aka
'const volatile long long *') invalid)
              value =3D __sync_val_compare_and_swap(&storage, (storage_type=
)0,
(storage_type)0);
                      ^                           ~~~~~~~~
=20
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/boost/boost_1=
_59_0/boost/atomic/detail/atomic_template.hpp:110:54:
note: in instantiation of member function
'boost::atomics::detail::gcc_dcas_x86<true>::load' requested here
          return static_cast< value_type >(operations::load(m_storage, orde=
r));
                                                       ^
=20
/wrkdirs/usr/ports/databases/mysql57-server/work/mysql-5.7.40/rapid/plugin/=
x/src/xpl_common_status_variables.h:43:57:
note: in instantiation of member function
'boost::atomics::detail::base_atomic<long long, int>::load' requested here
      void operator=3D(const Variable& other) { store(other.load()); }
                                                          ^

This is because mysql has an old embedded copy of boost, which assumes clang
needs a workaround to allocate eax:edx register pairs in inline assembly. S=
ince
this is no longer true with recent versions of clang, patch out the clang
checks and use the generic inline assembly code.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-268339-7788>