Skip to content

Commit

Permalink
databases/mysql57-server: fix build with clang 15 on i386
Browse files Browse the repository at this point in the history
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:
  /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 = __sync_val_compare_and_swap(&storage, (storage_type)0, (storage_type)0);
                      ^                           ~~~~~~~~
  /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, order));
                                                       ^
  /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=(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. Since this is no longer true with recent versions of clang,
patch out the clang checks and use the generic inline assembly code.

PR:		268339
Approved by:	portmgr (tcberner)
MFH:		2022Q4
  • Loading branch information
DimitryAndric committed Dec 18, 2022
1 parent 2db1448 commit 6c83371
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions databases/mysql57-server/Makefile
Expand Up @@ -164,6 +164,8 @@ post-patch:
# issue 220865: MySQL developers forgot that FreeBSD != Linux
@${REINPLACE_CMD} -e 's|%%FREEBSD_LOCAL_LIB%%|${LOCALBASE}/lib|g' \
${WRKSRC}/configure.cmake
@${REINPLACE_CMD} -e 's|__clang__|__undefined__|g' \
${WRKSRC}/boost/boost_1_59_0/boost/atomic/detail/ops_gcc_x86_dcas.hpp

.if !defined(CLIENT_ONLY)
post-install:
Expand Down

0 comments on commit 6c83371

Please sign in to comment.