Opened 9 years ago

Closed 9 years ago

Last modified 8 years ago

#49041 closed defect (wontfix)

mysql56 @ 5.6.27_0 build fails, PowerBook G4 OS X 10.5.8--#error "Unsupported platform"

Reported by: zzanderr Owned by: pixilla (Bradley Giesbrecht)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: leopard powerpc Cc:
Port: mysql56

Description

Installs and upgrades of earlier versions of mysql56 all built cleanly. However, upgrading to mysql56 @5.6.27_0 from @5.6.26 returns the following error:

:info:build [ 23%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/api/api0api.cc.o
:info:build cd /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/build/storage/innobase && /Developer/usr/bin/g++-4.2   -DHAVE_CONFIG_H -DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1 -DHAVE_IB_GCC_ATOMIC_BUILTINS=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DSIZEOF_PTHREAD_T=4 -pipe -Os -arch ppc  -Wall -Wextra -Wformat-security -Woverloaded-virtual -Wno-unused-parameter -DNDEBUG -DDBUG_OFF -arch ppc -mmacosx-version-min=10.5 -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/build/include -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/handler -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/include -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/sql -I/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/regex -I/mp2/local/include    -o CMakeFiles/innobase.dir/api/api0api.cc.o -c /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/api/api0api.cc
:info:build In file included from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/ut0ut.h:36,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/univ.i:602,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/api/api0api.cc:27:
:info:build /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/os0sync.h:504:4: error: #error "Unsupported platform"
:info:build In file included from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/sync0sync.h:833,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/mem0mem.h:34,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/data0data.h:33,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/que0que.h:30,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/api0misc.h:32,
:info:build                  from /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/api/api0api.cc:38:
:info:build /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/sync0sync.ic: In function ?~@~Xlock_word_t ib_mutex_test_and_set(ib_mutex_t*)?~@~Y:
:info:build /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/sync0sync.ic:83: error: ?~@~Xos_atomic_test_and_set?~@~Y was not declared in this scope
:info:build /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/sync0sync.ic: In function ?~@~Xvoid mutex_reset_lock_word(ib_mutex_t*)?~@~Y:
:info:build /mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/mysql-5.6.27/storage/innobase/include/sync0sync.ic:112: error: ?~@~Xos_atomic_clear?~@~Y was not declared in this scope
:info:build make[2]: *** [storage/innobase/CMakeFiles/innobase.dir/api/api0api.cc.o] Error 1
:info:build make[2]: Leaving directory `/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/build'
:info:build make[1]: *** [storage/innobase/CMakeFiles/innobase.dir/all] Error 2
:info:build make[1]: Leaving directory `/mp2/local/var/macports/build/_mp2_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mysql56/mysql56/work/build'
:info:build make: *** [all] Error 2

I find it unexpected for a port such as mysql56 to end support for a particular platform during a routine update. Do you have any ideas for potential solutions that I could test to get a working build?

I am attaching the full build log.

Attachments (2)

main.log (525.9 KB) - added by zzanderr 9 years ago.
mysql @5.6.27_0 upgrade log
mysql-56-powerpc-atomic-fix.diff (602 bytes) - added by ken-cunningham-webuse 8 years ago.

Download all attachments as: .zip

Change History (11)

Changed 9 years ago by zzanderr

Attachment: main.log added

mysql @5.6.27_0 upgrade log

comment:1 Changed 9 years ago by mf2k (Frank Schima)

Cc: pixilla@… removed
Keywords: powerpc added; PowerPC unsupported platform removed
Owner: changed from macports-tickets@… to pixilla@…
Port: @5.6.27_0 removed

comment:2 Changed 9 years ago by pixilla (Bradley Giesbrecht)

The only change to the mysql56 port was bumping the version from 5.6.26 to 5.6.27. Apparently upstream has broken mysql 5.6.27 for your platform. Please check with the upstream developers for a fix. I have no resources to develop and test a patch for your platform. Perhaps you or someone else can help.

comment:3 Changed 9 years ago by pixilla (Bradley Giesbrecht)

Resolution: wontfix
Status: newclosed

comment:4 Changed 9 years ago by zzanderr

Thanks for the prompt reply. I'll try the mysql developers. It looks like I may be in the market for a new computer soon, as the list of ports that won't build on ppc continues to grow...

comment:5 Changed 8 years ago by ken-cunningham-webuse

It appears that there was an upgrade to the atomic features on mysql56 that broke several non-intel processors, as I understand these reports.

See <https://bugs.mysql.com/bug.php?id=78687> and <https://github.com/mysql/mysql-server/commit/f59d68eeae37338d7b25f2571407e763fa897e15>.

based on these reports, I added

-DHAVE_IB_GCC_ATOMIC_BUILTINS=0 \
-DHAVE_IB_GCC_ATOMIC_TEST_AND_SET=0 \

to the Porfile configure args on Tiger PPC, and indeed the build proceeds through to completion without errors now. I suspect, but have not yet proven, that these two configure args will also work on 10.5 PPC.

So here's a diff that updates the Portfile to add these two args to the configure on powerpc machines.

Running the test suite proved to be rather difficult -- there are a number of malpositioned files. I tried setting up soft links here and there to satisfy the test script, but never did get to the point where that test script was happy. So I haven't completed those tests, therefore. If you have a fixed version of the test script with the proper paths on it, please upload it for me to try.

Also, you might wonder if the atomics being disabled affects the speed of mysql. I was likewise unable to benchmark it, so at the moment, I remain uncertain about that.

Changed 8 years ago by ken-cunningham-webuse

comment:6 Changed 8 years ago by ken-cunningham-webuse

tigerg5$ port -v installed | grep mysql
  mysql55 @5.5.49_0 (active) platform='darwin 8' archs='ppc'
  mysql55-server @5.5.49_0 (active) platform='darwin 8' archs='noarch'
  mysql56 @5.6.33_0 (active) platform='darwin 8' archs='ppc'
  mysql56-server @5.6.33_0 (active) platform='darwin 8' archs='noarch'
  mysql_select @0.1.2_3 (active) platform='darwin 8' archs='noarch'
Last edited 8 years ago by ken-cunningham-webuse (previous) (diff)

comment:7 Changed 8 years ago by ken-cunningham-webuse

I found out how to run the mysql test suite on macports - you

sudo port build

the port, but stop there and go into the build directory. Then all is in the right place to run the tests.

Unfortunately, mysql56 on PPC built with the parameters above does not fully pass the test suite -- it aborts at 10 failed tests, with this as the end of the output.

Too many failed: Failed 10/110 tests, 90.91% were successful.

Failing test(s): main.plugin_auth_qa_2 main.mysql_client_test main.plugin_auth_qa main.sp main.ipv4_as_ipv6 main.plugin_auth_sha256_server_default_tls main.events_bugs binlog.binlog_variables_log_bin_index binlog.binlog_variables_log_bin main.func_encrypt

The log files in var/log may give you some hint of what went wrong.

So, although 90% of the tests pass, it's not fully functional. Looks like many errors are in the encryption area -- don't have any idea why that would be...

So mysql56 might be OK for some purposes, but you'd have to check your specific uses.

Now I'm intrigued -- I'd like to see how mysql55 performs with the test suite on PPC (and for fun, how mysql56 performs on 10.6/Intel -- might be interesting).

comment:8 Changed 8 years ago by ken-cunningham-webuse

mysql55 built on PPC seems to be pretty solid

Report from unit tests in /Users/Shared/mysql55_tests/ctest.log
--------------------------------------------------------------------------
The servers were restarted 201 times
Spent 2744.956 of 4008 seconds executing testcases

Completed: Failed 6/1061 tests, 99.43% were successful.

Failing test(s): main.mysql_client_test main.skip_name_resolve sys_vars.skip_name_resolve_basic main.ssl_mode_no_ssl main.information_schema main.mysqld--help-notwin

Interestingly, I just built mysq56 on 10.6/Intel with the LibCxxOnOlderSystems upgrade installed (building with clang-3.7), and it failed fairly badly as well (not as badly as on PPC), aborting about 1/2 way through the test suite.

Too many failed: Failed 10/596 tests, 98.32% were successful.

Failing test(s): main.mysql_client_test perfschema.binlog_edge_mix perfschema.binlog_edge_stmt funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers main.ctype_uca main.information_schema main.myisam_explain_json_non_select_all main.myisam_explain_json_non_select_none

So - it looks like you have to be a little careful with mysql. Even if it builds, that doesn't mean it necessarily works as it should...

comment:9 Changed 8 years ago by ken-cunningham-webuse

Oo. mysql56 on 10.11 doesn't fare much better than mysql56 on 10.6...looks like the exact same errors until it aborts...

Too many failed: Failed 10/596 tests, 98.32% were successful.

Failing test(s): main.mysql_client_test perfschema.binlog_edge_mix perfschema.binlog_edge_stmt funcs_1.is_columns_mysql funcs_1.is_tables_mysql funcs_1.is_triggers main.ctype_uca main.information_schema main.myisam_explain_json_non_select_all main.myisam_explain_json_non_select_none

The log files in var/log may give you some hint of what went wrong.

but now I think I've taken this right off topic, so no more posts about this to this old dead ticket.

Note: See TracTickets for help on using tickets.