25372130 Upgrade the version of MySQL 5.5 to 5.5.54 on Solaris s11u3-sru
authorGipson Pulla <gipson.pulla@oracle.com>
Wed, 15 Mar 2017 23:29:04 -0700
branchs11u3-sru
changeset 7765 3495fc32877e
parent 7764 be0c0ee57436
child 7766 5a2704d7babd
25372130 Upgrade the version of MySQL 5.5 to 5.5.54 on Solaris 25364635 Upgrade the version of MySQL 5.6 to 5.6.35 on Solaris 25372106 Upgrade the version of MySQL 5.7 to 5.7.17 on Solaris 24835634 Upgrade MySQL server 5.7 to 5.7.15 on Solaris 24688109 Upgrade MySQL 5.5 to 5.5.52 on Solaris 23227671 Upgrade MySQL 5.5 to 5.5.49 on Solaris 15818149 mysql stop method unsafe 18605985 Need to resolve dependencies between MySQL 5.5 database and client pkgs 23227615 Port fix for Bug 23022999 from MySQL 5.6 to 5.5 23227642 Port fix for Bug 23053990 from MySQL 5.6 to 5.5 21150630 mysql SMF instances should check to see if it's really online before returning 22959660 mysql SMF service must not hardcode pid-file, socket and log-error 24708946 Upgrade the version of MySQL 5.6 to 5.6.33 on Solaris 25236651 COMPONENT_ARCHIVE_URL for MySQL-5.6 Makefile is not working 24924801 problem in DATABASE/MYSQL 25427164 problem in DATABASE/MYSQL 25215584 problem in DATABASE/MYSQL 25427149 problem in DATABASE/MYSQL 24923761 problem in DATABASE/MYSQL 25427194 problem in DATABASE/MYSQL
components/mysql-5-5/Makefile
components/mysql-5-5/Solaris/mysql_55
components/mysql-5-5/Solaris/mysql_55.xml
components/mysql-5-5/mysql-55.p5m
components/mysql-5-5/mysql-55client.p5m
components/mysql-5-5/mysql-55lib.p5m
components/mysql-5-5/mysql-55test.p5m
components/mysql-5-6/Makefile
components/mysql-5-6/Solaris/mysql_56
components/mysql-5-6/mysql-56.p5m
components/mysql-5-6/mysql-56test.p5m
components/mysql-5-6/patches/bug22552923.patch
components/mysql-5-6/patches/bug22932576.patch
components/mysql-5-7/Makefile
components/mysql-5-7/Solaris/mysql_57
components/mysql-5-7/mysql-57.p5m
components/mysql-5-7/mysql-57embedded.p5m
components/mysql-5-7/mysql-57lib.p5m
components/mysql-5-7/mysql-57test.p5m
components/mysql-5-7/patches/bug23022999.patch
components/mysql-5-7/patches/disable_static_opt.patch
components/mysql-5-7/patches/dont-bundle-cpp-runtime.patch
--- a/components/mysql-5-5/Makefile	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/Makefile	Wed Mar 15 23:29:04 2017 -0700
@@ -18,33 +18,29 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME        = mysql
-COMPONENT_VERSION     = 5.5.48
+COMPONENT_VERSION     = 5.5.54
 COMPONENT_SRC         = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE     = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
-    sha256:cc3f8745879eee0508de1a70fc2d267a2d06b7433faa8bb07a787768dcfed781
+    sha256:273bcbcf8cc84061eb07c359308563b2029eb3f70f78b558905bc1b5c5791ab8
 COMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.5/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL = http://dev.mysql.com/ 
 COMPONENT_BUGDB       = database/mysql
 
-# MySQL doesn't like cloning
+# We use cp(1) instead of cloney because we use TAR to copy files and the TAR 
+# used doesn't handle long links
 CLONEY = echo
-COMPONENT_PRE_BUILD_ACTION += \
-  $(CP) -rp $(SOURCE_DIR)/* $(@D);
+COMPONENT_PRE_BUILD_ACTION += $(CP) -rp $(SOURCE_DIR)/* $(@D);
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/justmake.mk
 include $(WS_MAKE_RULES)/ips.mk
 
-# Remove "-z ignore" to avoid link problem, missing C++ runtime
-# references in libmysqlclient.so
-LD_Z_IGNORE =
-
 # Enable ASLR for this component
 ASLR_MODE           = $(ASLR_ENABLE)
 
@@ -61,8 +57,10 @@
 CMAKE_LIBDIR.64     = lib/$(MACH64)
 CMAKE_PLUGINDIR.32  = lib/plugin
 CMAKE_PLUGINDIR.64  = lib/$(MACH64)/plugin
+CMAKE_CFLAGS.32     = -m32
 CMAKE_CFLAGS.64     = -m64
-CMAKE_CXXFLAGS.64   = -m64
+CMAKE_CXXFLAGS.32   = "-m32 -norunpath"
+CMAKE_CXXFLAGS.64   = "-m64 -norunpath"
 
 # Providing component specific build options to cmake
 CMAKE_OPTIONS += -DBUILD_CONFIG=mysql_release
@@ -89,6 +87,9 @@
 CMAKE_OPTIONS += -DCMAKE_CXX_FLAGS=$(CMAKE_CXXFLAGS.$(BITS))
 CMAKE_OPTIONS += '-DCOMPILATION_COMMENT=MySQL Community Server (GPL)'
 CMAKE_OPTIONS += -DFEATURE_SET=community
+CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX)
+CMAKE_OPTIONS += -DCMAKE_C_COMPILER=$(CC)
+CMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE
 
 COMPONENT_PRE_BUILD_ACTION += cd $(@D);
 COMPONENT_PRE_BUILD_ACTION += export LDFLAGS=$(CMAKE_CXXFLAGS.$(BITS));
--- a/components/mysql-5-5/Solaris/mysql_55	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/Solaris/mysql_55	Wed Mar 15 23:29:04 2017 -0700
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 . /lib/svc/share/smf_include.sh
@@ -40,7 +40,7 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
+STARTTIMEOUT=180
 
 if [ -z ${MYSQLCNF} ]; then
         echo "mysql/cnf property not set"
@@ -67,6 +67,53 @@
 	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA}
 fi
 
+
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
+# ping function which return success when mysqld starts accepting connections
+# or return failure in case of timeout after $STARTTIMEOUT seconds.
+# using this function in mysql_start(), method waits/blocks to mysqld is really ready,
+# which might take some time in case of recovery.
+
+mysql_pinger() {    
+    mysqld_safe_pid=$1
+    timer=$STARTTIMEOUT
+    ret=0
+    while [ $timer -gt 0 ]; do
+        sleep 1
+        ${MYSQLBIN}/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+	timer=$(expr $timer - 1)
+
+	# Check if mysqld_safe is still alive, if not there is no hope
+	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
+	    ret=1
+	    break
+	fi
+    done
+    
+    # Did we timeout?
+    if [ $timer = 0 ]; then
+	echo "MySQL Database start up timeout after ${STARTTIMEOUT}s"
+	ret=1
+    fi
+    return $ret
+}
+
 # refresh method for this service is not defined because mysqld by itself
 # cannot accept a HUP signal to reload the configuration file my.cnf
 
@@ -74,13 +121,12 @@
 	echo ${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE}
 	${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null &
 
-}
-
-	
-mysql_stop()	{
-	if [ -f ${PIDFILE} ]; then
-	smf_kill_contract $1 KILL 1 30
-	fi
+        if mysql_pinger $! ; then
+            echo "Starting service MySQL"
+        else
+            echo "Failed to start service MySQL"
+            exit $SMF_EXIT_ERR
+        fi
 }
 
 case "$1" in
@@ -88,13 +134,8 @@
 	mysql_start 
 	;;
 
-'stop')
-	mysql_stop $2
-	;;
-
-
 *)
-	echo "Usage: $0 {start|stop}"
+	echo "Usage: $0 start"
 	exit 1
 	;;
 
--- a/components/mysql-5-5/Solaris/mysql_55.xml	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/Solaris/mysql_55.xml	Wed Mar 15 23:29:04 2017 -0700
@@ -2,7 +2,7 @@
 <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
 <!--
 
- Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 
  CDDL HEADER START
 
@@ -71,7 +71,7 @@
                 <exec_method
                         type='method'
                         name='stop'
-                        exec='/lib/svc/method/mysql_55 stop %{restarter/contract}'
+                        exec=':kill'
                         timeout_seconds='60' />
 
                 <!--
--- a/components/mysql-5-5/mysql-55.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/mysql-55.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,10 +18,12 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+<transform file path=usr/mysql/5.5/bin/.+ -> set pkg.depend.bypass-generate .*>
+<transform file path=usr/mysql/5.5/lib/.+ -> set pkg.depend.bypass-generate .*>
 set name=pkg.fmri \
     value=pkg:/database/mysql-55@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="MySQL 5.5 Database Management System"
@@ -260,7 +262,7 @@
 dir  path=var/mysql/5.5 owner=mysql group=mysql mode=0700
 dir  path=var/mysql/5.5/data owner=mysql group=mysql mode=0700
 license mysql-55.license license=GPLv2
-depend type=optional fmri=database/[email protected],5.11-0.175.2.0.0.31.0
 
-# added dependency on mysql-common package
-depend type=require fmri=database/[email protected],5.11-0.175.2.0.0.31.0
+# added dependency on mysql-common and mysql-55/client package
+depend type=require fmri=database/mysql-55/client
+depend type=require fmri=database/mysql-common
--- a/components/mysql-5-5/mysql-55client.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/mysql-55client.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,10 +18,11 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+<transform file path=usr/mysql/5.5/bin/.+ -> set pkg.depend.bypass-generate .*>
 set name=pkg.fmri \
     value=pkg:/database/mysql-55/client@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="MySQL 5.5 Client Executables"
--- a/components/mysql-5-5/mysql-55lib.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/mysql-55lib.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -32,7 +32,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/333
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-link path=usr/mysql/5.5/lib/64 target=$(MACH64)
 link path=usr/mysql/5.5/lib/$(MACH64)/libmysqlclient.so \
     target=libmysqlclient.so.18
 link path=usr/mysql/5.5/lib/$(MACH64)/libmysqlclient.so.18 \
@@ -44,6 +43,7 @@
     target=libmysqlclient.so
 link path=usr/mysql/5.5/lib/$(MACH64)/libmysqlclient_r.so.18.0.0 \
     target=libmysqlclient.so
+link path=usr/mysql/5.5/lib/64 target=$(MACH64)
 link path=usr/mysql/5.5/lib/libmysqlclient.so target=libmysqlclient.so.18
 link path=usr/mysql/5.5/lib/libmysqlclient.so.18 target=libmysqlclient.so.18.0.0
 file path=usr/mysql/5.5/lib/libmysqlclient.so.18.0.0
@@ -51,7 +51,3 @@
 link path=usr/mysql/5.5/lib/libmysqlclient_r.so.18 target=libmysqlclient.so
 link path=usr/mysql/5.5/lib/libmysqlclient_r.so.18.0.0 target=libmysqlclient.so
 license mysql-55.license license=GPLv2
-
-# added dependency on mysql-51/library package
-depend type=optional fmri=pkg:/database/mysql-51/[email protected],5.11-0.175.2.0.0.31.0
-
--- a/components/mysql-5-5/mysql-55test.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-5/mysql-55test.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,9 +18,10 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
+<transform file path=usr/mysql/5.5/mysql-test/lib/My/SafeProcess/my_safe_process -> set pkg.depend.bypass-generate .*>
 set name=pkg.fmri \
     value=pkg:/database/mysql-55/tests@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="MySQL 5.5 testsuite"
@@ -1074,9 +1075,12 @@
 file path=usr/mysql/5.5/mysql-test/r/ssl.result
 file path=usr/mysql/5.5/mysql-test/r/ssl_8k_key.result
 file path=usr/mysql/5.5/mysql-test/r/ssl_and_innodb.result
+file path=usr/mysql/5.5/mysql-test/r/ssl_ca.result
 file path=usr/mysql/5.5/mysql-test/r/ssl_cipher.result
 file path=usr/mysql/5.5/mysql-test/r/ssl_compress.result
 file path=usr/mysql/5.5/mysql-test/r/ssl_connect.result
+file path=usr/mysql/5.5/mysql-test/r/ssl_mode.result
+file path=usr/mysql/5.5/mysql-test/r/ssl_mode_no_ssl.result
 file path=usr/mysql/5.5/mysql-test/r/status.result
 file path=usr/mysql/5.5/mysql-test/r/status2.result
 file path=usr/mysql/5.5/mysql-test/r/status_bug17954.result
@@ -1318,13 +1322,26 @@
 file path=usr/mysql/5.5/mysql-test/std_data/words.dat
 file path=usr/mysql/5.5/mysql-test/std_data/words2.dat
 file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/cert_verify.result
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/secure_file_priv_error.result
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/secure_file_priv_null.result
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result
 file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/cert_verify.test
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_error.test
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_null-master.opt
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_null.test
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_warnings-master.opt
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test
+file path=usr/mysql/5.5/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/combinations
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_base64_flag.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_bug23533.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_bug36391.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_database.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result
+file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_format_switch_in_tmp_table.result
 file path=usr/mysql/5.5/mysql-test/suite/binlog/r/binlog_grant.result
@@ -1403,6 +1420,7 @@
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_bug36391.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_database.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test
+file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_drop_if_exists.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_format_switch_in_tmp_table.test
 file path=usr/mysql/5.5/mysql-test/suite/binlog/t/binlog_grant.test
@@ -3522,7 +3540,6 @@
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/include/setup_helper.inc
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/include/start_server_common.inc
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/include/upgrade_check.inc
-file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/aggregate.result
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/bad_option_1.result
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/bad_option_2.result
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/bad_option_3.result
@@ -3603,7 +3620,6 @@
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/start_server_on.result
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/tampered_perfschema_table1.result
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/r/thread_cache.result
-file path=usr/mysql/5.5/mysql-test/suite/perfschema/t/aggregate.test
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/t/bad_option_1.test
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/t/bad_option_2.test
 file path=usr/mysql/5.5/mysql-test/suite/perfschema/t/bad_option_3.test
@@ -6090,10 +6106,14 @@
 file path=usr/mysql/5.5/mysql-test/t/ssl_8k_key-master.opt
 file path=usr/mysql/5.5/mysql-test/t/ssl_8k_key.test
 file path=usr/mysql/5.5/mysql-test/t/ssl_and_innodb.test
+file path=usr/mysql/5.5/mysql-test/t/ssl_ca.test
 file path=usr/mysql/5.5/mysql-test/t/ssl_cipher-master.opt
 file path=usr/mysql/5.5/mysql-test/t/ssl_cipher.test
 file path=usr/mysql/5.5/mysql-test/t/ssl_compress.test
 file path=usr/mysql/5.5/mysql-test/t/ssl_connect.test
+file path=usr/mysql/5.5/mysql-test/t/ssl_mode.test
+file path=usr/mysql/5.5/mysql-test/t/ssl_mode_no_ssl-master.opt
+file path=usr/mysql/5.5/mysql-test/t/ssl_mode_no_ssl.test
 file path=usr/mysql/5.5/mysql-test/t/status-master.opt
 file path=usr/mysql/5.5/mysql-test/t/status.test
 file path=usr/mysql/5.5/mysql-test/t/status2.test
--- a/components/mysql-5-6/Makefile	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-6/Makefile	Wed Mar 15 23:29:04 2017 -0700
@@ -18,18 +18,18 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 export PARFAIT_BUILD=no
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME        = mysql
-COMPONENT_VERSION     = 5.6.29
+COMPONENT_VERSION     = 5.6.35
 COMPONENT_SRC         = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE     = $(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH= \
-         sha256:6ac85b75b2dfa8c232725dda25469df37bf4e48b408cc0978d0dfc34c25a817f
+         sha256:dddcba169b98844d7c65346cbd791c853edf942d78440381685087b84aa35020
 COMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.6/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL = http://dev.mysql.com/ 
 COMPONENT_BUGDB       = database/mysql
--- a/components/mysql-5-6/Solaris/mysql_56	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-6/Solaris/mysql_56	Wed Mar 15 23:29:04 2017 -0700
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 . /lib/svc/share/smf_include.sh
@@ -40,8 +40,7 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
-LOG_ERROR=${MYSQLDATA}/`/usr/bin/uname -n`.err
+STARTTIMEOUT=180
 
 if [ -z ${MYSQLCNF} ]; then
         echo "mysql/cnf property not set"
@@ -64,19 +63,71 @@
 fi
 
 if [ ! -d ${MYSQLDATA}/mysql ]; then
-	echo ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} --log-error=${LOG_ERROR}
-	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} --log-error=${LOG_ERROR}
+	echo ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} --defaults-file=${MYSQLCNF} 
+	${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} --defaults-file=${MYSQLCNF} 
 fi
 
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
+# ping function which return success when mysqld starts accepting connections
+# or return failure in case of timeout after $STARTTIMEOUT seconds.
+# using this function in mysql_start(), method waits/blocks to mysqld is really ready,
+# which might take some time in case of recovery.
+
+mysql_pinger() {    
+    mysqld_safe_pid=$1
+    timer=$STARTTIMEOUT
+    ret=0
+    while [ $timer -gt 0 ]; do
+        sleep 1
+        ${MYSQLBIN}/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+	timer=$(expr $timer - 1)
+
+	# Check if mysqld_safe is still alive, if not there is no hope
+	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
+	    ret=1
+	    break
+	fi
+    done
+    
+    # Did we timeout?
+    if [ $timer = 0 ]; then
+	echo "MySQL Database start up timeout after ${STARTTIMEOUT}s"
+	ret=1
+    fi
+    return $ret
+}
+
+
 # refresh method for this service is not defined because mysqld by itself
 # cannot accept a HUP signal to reload the configuration file my.cnf
 
 mysql_start() 	{
 	echo ${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE}
 	${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null &
-
+	
+	if mysql_pinger $! ; then
+            echo "Starting service MySQL"
+        else
+            echo "Failed to start service MySQL"
+            exit $SMF_EXIT_ERR
+        fi
 }
-
 	
 case "$1" in
 'start')
--- a/components/mysql-5-6/mysql-56.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-6/mysql-56.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -76,7 +76,6 @@
 file path=usr/mysql/5.6/docs/ChangeLog
 file path=usr/mysql/5.6/docs/INFO_BIN
 file path=usr/mysql/5.6/docs/INFO_SRC
-file path=usr/mysql/5.6/docs/INSTALL-BINARY
 file path=usr/mysql/5.6/include/big_endian.h
 file path=usr/mysql/5.6/include/byte_order_generic.h
 file path=usr/mysql/5.6/include/byte_order_generic_x86.h
@@ -152,6 +151,7 @@
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/adt_null.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/auth.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/auth_test_plugin.so
+file path=usr/mysql/5.6/lib/$(MACH64)/plugin/connection_control.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/daemon_example.ini
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/ha_example.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/libdaemon_example.so
@@ -162,11 +162,13 @@
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/qa_auth_server.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/semisync_master.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/semisync_slave.so
+file path=usr/mysql/5.6/lib/$(MACH64)/plugin/test_udf_services.so
 file path=usr/mysql/5.6/lib/$(MACH64)/plugin/validate_password.so
 file path=usr/mysql/5.6/lib/plugin/adt_null.so
 file path=usr/mysql/5.6/lib/plugin/adt_null.so
 file path=usr/mysql/5.6/lib/plugin/auth.so
 file path=usr/mysql/5.6/lib/plugin/auth_test_plugin.so
+file path=usr/mysql/5.6/lib/plugin/connection_control.so
 file path=usr/mysql/5.6/lib/plugin/daemon_example.ini
 file path=usr/mysql/5.6/lib/plugin/ha_example.so
 file path=usr/mysql/5.6/lib/plugin/libdaemon_example.so
@@ -177,6 +179,7 @@
 file path=usr/mysql/5.6/lib/plugin/qa_auth_server.so
 file path=usr/mysql/5.6/lib/plugin/semisync_master.so
 file path=usr/mysql/5.6/lib/plugin/semisync_slave.so
+file path=usr/mysql/5.6/lib/plugin/test_udf_services.so
 file path=usr/mysql/5.6/lib/plugin/validate_password.so
 file path=usr/mysql/5.6/man/man1/comp_err.1
 file path=usr/mysql/5.6/man/man1/innochecksum.1
--- a/components/mysql-5-6/mysql-56test.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-6/mysql-56test.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 <transform file path=usr/mysql/5.6/bin/.+ -> set pkg.depend.bypass-generate .*>
 <transform file path=usr/mysql/5.6/mysql-test/lib/My/SafeProcess/my_safe_process -> set pkg.depend.bypass-generate .*>
@@ -121,6 +121,7 @@
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_filters.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_foreign_key.test
+file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_generate_mts_gap.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_gtid_drop_table.inc
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_gtid_mts_relay_log_recovery.test
@@ -148,6 +149,7 @@
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_mts_crash_safe.inc
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_mts_crash_safe.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_mts_execute_partial_trx_in_relay_log.inc
+file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_mts_relay_log_recovery.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_multi_query.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_multi_update.test
 file path=usr/mysql/5.6/mysql-test/extra/rpl_tests/rpl_multi_update2.test
@@ -504,7 +506,6 @@
 file path=usr/mysql/5.6/mysql-test/include/ps_query.inc
 file path=usr/mysql/5.6/mysql-test/include/ps_renew.inc
 file path=usr/mysql/5.6/mysql-test/include/purge_first_log.inc
-file path=usr/mysql/5.6/mysql-test/include/python_with_json.inc
 file path=usr/mysql/5.6/mysql-test/include/query_cache.inc
 file path=usr/mysql/5.6/mysql-test/include/query_cache_sql_prepare.inc
 file path=usr/mysql/5.6/mysql-test/include/rand.inc
@@ -1167,6 +1168,7 @@
 file path=usr/mysql/5.6/mysql-test/r/mysql_binary_mode.result
 file path=usr/mysql/5.6/mysql-test/r/mysql_client_test.result
 file path=usr/mysql/5.6/mysql-test/r/mysql_client_test_embedded.result
+file path=usr/mysql/5.6/mysql-test/r/mysql_client_test_qcache.result
 file path=usr/mysql/5.6/mysql-test/r/mysql_comments.result
 file path=usr/mysql/5.6/mysql-test/r/mysql_config_editor.result
 file path=usr/mysql/5.6/mysql-test/r/mysql_cp932.result
@@ -1415,6 +1417,7 @@
 file path=usr/mysql/5.6/mysql-test/r/ssl.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_8k_key.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_and_innodb.result
+file path=usr/mysql/5.6/mysql-test/r/ssl_ca.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_cipher.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_compress.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_connect.result
@@ -1423,6 +1426,8 @@
 file path=usr/mysql/5.6/mysql-test/r/ssl_crl_clients.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_crl_clients_valid.result
 file path=usr/mysql/5.6/mysql-test/r/ssl_crl_crlpath.result
+file path=usr/mysql/5.6/mysql-test/r/ssl_mode.result
+file path=usr/mysql/5.6/mysql-test/r/ssl_mode_no_ssl.result
 file path=usr/mysql/5.6/mysql-test/r/status.result
 file path=usr/mysql/5.6/mysql-test/r/status2.result
 file path=usr/mysql/5.6/mysql-test/r/status_bug17954.result
@@ -1533,6 +1538,7 @@
 file path=usr/mysql/5.6/mysql-test/r/type_varchar.result
 file path=usr/mysql/5.6/mysql-test/r/type_year.result
 file path=usr/mysql/5.6/mysql-test/r/udf.result
+file path=usr/mysql/5.6/mysql-test/r/udf_services.result
 file path=usr/mysql/5.6/mysql-test/r/udf_skip_grants.result
 file path=usr/mysql/5.6/mysql-test/r/union.result
 file path=usr/mysql/5.6/mysql-test/r/unsafe_binlog_innodb.result
@@ -1545,6 +1551,7 @@
 file path=usr/mysql/5.6/mysql-test/r/varbinary.result
 file path=usr/mysql/5.6/mysql-test/r/variables-big.result
 file path=usr/mysql/5.6/mysql-test/r/variables-notembedded.result
+file path=usr/mysql/5.6/mysql-test/r/variables-win.result
 file path=usr/mysql/5.6/mysql-test/r/variables.result
 file path=usr/mysql/5.6/mysql-test/r/variables_community.result
 file path=usr/mysql/5.6/mysql-test/r/variables_debug.result
@@ -1756,6 +1763,11 @@
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/not_ssl.require
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/openssl.require
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/password_expired.result
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/secure_file_priv_error.result
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/secure_file_priv_null.result
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/secure_file_priv_warnings.result
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_not_win.result
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/secure_file_priv_warnings_win.result
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withoutssl.result
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/server_withoutssl_client_withssl.result
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/r/server_withssl_client_withoutssl.result
@@ -1777,6 +1789,11 @@
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/mysql_sha256_plugin.test
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/password_expired-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/password_expired.test
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/secure_file_priv_error.test
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/secure_file_priv_null.test
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/secure_file_priv_warnings.test
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_not_win.test
+file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/secure_file_priv_warnings_win.test
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withoutssl.test
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/server_withoutssl_client_withssl.test
 file path=usr/mysql/5.6/mysql-test/suite/auth_sec/t/server_withssl_client_withoutssl-master.opt
@@ -1791,6 +1808,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_crash_safe_master_checksum.result
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_database.result
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result
+file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency.result
 file path=usr/mysql/5.6/mysql-test/suite/binlog/r/binlog_error_action.result
@@ -1904,6 +1922,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_crash_safe_master_checksum.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_database.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test
+file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_drop_if_exists.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_enforce_gtid_consistency.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_error_action-master.opt
@@ -2021,6 +2040,39 @@
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/binlog_xa_handling.test
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/disabled.def
 file path=usr/mysql/5.6/mysql-test/suite/binlog/t/show_binlog_events_no_lock.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/check_connection_delay.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/cleanup_proxy_accounts.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/have_connection_control_plugin.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/have_test_plugin.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/install_connection_control_plugin.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/set_after_marker.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/set_before_marker.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/setup_proxy_accounts.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/inc/uninstall_connection_control_plugin.inc
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_anonymous_user.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_info_schema_view.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_invalid_users.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_min_max.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_proxy_users.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/connection_delay_valid_users.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/status_variables.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/r/system_variables.result
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_anonymous_user-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_anonymous_user.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_info_schema_view-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_info_schema_view.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_invalid_users-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_invalid_users.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_min_max-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_min_max.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_proxy_users-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_proxy_users.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_valid_users-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/connection_delay_valid_users.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/status_variables-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/status_variables.test
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/system_variables-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/connection_control/t/system_variables.test
 file path=usr/mysql/5.6/mysql-test/suite/engines/README
 file path=usr/mysql/5.6/mysql-test/suite/engines/funcs/r/ai_init_alter_table.result
 file path=usr/mysql/5.6/mysql-test/suite/engines/funcs/r/ai_init_create_table.result
@@ -3320,13 +3372,17 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/add_foreign_key.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/alter_rename_existing.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/analyze_table.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/autoinc_debug.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/blob-update-debug.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/blob_redo.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/checksum.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/create-index.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/create_isl_with_direct.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/dropdb.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/flush-hang.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/foreign_key.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/import.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/import_update_stats.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/index_tree_operation.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-2byte-collation.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-ac-non-locking-select.result
@@ -3353,6 +3409,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-debug.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-online-delete.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-online-fk.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-online-norebuild.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-online-purge.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index-online.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb-index.result
@@ -3459,7 +3516,9 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_bug70867.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_corrupt_bit.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_ctype_ldml.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_deadlock_with_autoinc.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_file_format.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_file_limit_check.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_force_recovery.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_gis.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_i_s_innodb_locks.result
@@ -3481,6 +3540,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_auto_recalc_on_nonexistent.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_create_on_corrupted.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_create_table.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_del_mark.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_drop_locked.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_external_pages.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb/r/innodb_stats_fetch.result
@@ -3508,15 +3568,20 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/add_foreign_key.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/alter_rename_existing.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/analyze_table.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/autoinc_debug.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/blob-update-debug.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/blob_redo-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/blob_redo.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/checksum.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/create-index.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/create_isl_with_direct-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/create_isl_with_direct.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/disabled.def
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/dropdb.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/flush-hang.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/foreign_key.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/import.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/import_update_stats.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/index_tree_operation.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-2byte-collation-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-2byte-collation.test
@@ -3551,6 +3616,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online-delete.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online-fk.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online-norebuild.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online-purge.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index-online.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb-index.test
@@ -3675,8 +3741,12 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_corrupt_bit.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_ctype_ldml-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_ctype_ldml.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_deadlock_with_autoinc-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_deadlock_with_autoinc.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_file_format-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_file_format.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_file_limit_check-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_file_limit_check.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_force_recovery.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_gis.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_i_s_innodb_locks.test
@@ -3702,6 +3772,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_auto_recalc_on_nonexistent.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_create_on_corrupted.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_create_table.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_del_mark-master.opt
+file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_del_mark.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_drop_locked.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_external_pages.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb/t/innodb_stats_fetch.test
@@ -3764,6 +3836,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/r/innodb_fts_transaction.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/r/phrase.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/r/subexpr.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/r/sync.result
+file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/r/sync_block.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/disabled.def
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/fts_compatibility.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/fts_compatibility_win.test
@@ -3799,6 +3873,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/innodb_fts_transaction.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/phrase.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/subexpr.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/sync.test
+file path=usr/mysql/5.6/mysql-test/suite/innodb_fts/t/sync_block.test
 file path=usr/mysql/5.6/mysql-test/suite/innodb_stress/include/innodb_stress.inc
 file path=usr/mysql/5.6/mysql-test/suite/innodb_stress/r/innodb_bigstress.result
 file path=usr/mysql/5.6/mysql-test/suite/innodb_stress/r/innodb_bigstress_blob.result
@@ -4851,7 +4927,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/opt_trace/t/subquery_no_prot.test
 file path=usr/mysql/5.6/mysql-test/suite/opt_trace/t/subquery_ps_prot.test
 file path=usr/mysql/5.6/mysql-test/suite/opt_trace/t/temp_table.test
-file path=usr/mysql/5.6/mysql-test/suite/opt_trace/validate_json.py
+file path=usr/mysql/5.6/mysql-test/suite/opt_trace/validate_json.pl
 file path=usr/mysql/5.6/mysql-test/suite/parts/inc/methods1.inc
 file path=usr/mysql/5.6/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc
 file path=usr/mysql/5.6/mysql-test/suite/parts/inc/part_exch_drop_tabs.inc
@@ -5321,7 +5397,6 @@
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/include/upgrade_check.inc
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/include/wait_for_pfs_thread_count.inc
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/include/wait_till_sleep.inc
-file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/aggregate.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/all_tests.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/bad_option_1.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/bad_option_2.result
@@ -5444,7 +5519,6 @@
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_setup_timers.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_socket_instances.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_socket_summary_by_event_name.result
-#file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_socket_summary_by_name.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_socket_summary_by_instance.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_threads.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/dml_tiws_by_index_usage.result
@@ -5629,6 +5703,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_2u_3t.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_2t.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_3t.result
+file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/table_name.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/table_schema.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/tampered_perfschema_table1.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/temp_table_io.result
@@ -5639,7 +5714,6 @@
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/trigger_table_io.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/unary_digest.result
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/r/view_table_io.result
-file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/aggregate.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/all_tests.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/bad_option_1.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/bad_option_2.test
@@ -6047,6 +6121,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_2u_3t.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_4u_2t.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_4u_3t.test
+file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/table_name.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/table_schema.test
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/tampered_perfschema_table1-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/perfschema/t/tampered_perfschema_table1.test
@@ -6119,10 +6194,12 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_autogen_query_multi_byte_char.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_autoinc_lock_style.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_avoid_temporal_upgrade.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_corruption.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_errors.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_failed_drop_table.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_gcommit_options.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_grant.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_binlog_index.result
@@ -6230,7 +6307,6 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_sql_until_before_after.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_stm_insert_delayed.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_stm_mix_show_relaylog_events.result
-file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_stress_failover.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_temp_table.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_transaction_split_across_relay_logs.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_gtid_validate_slave_gtids.result
@@ -6302,6 +6378,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_execute_partial_trx_with_auto_pos_off.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_execute_partial_trx_with_auto_pos_on.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_gtids_restart_slave_io_lost_trx.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_relay_log_post_crash_recovery.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_relay_log_recovery_on_error.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_slave_hang_with_partial_trx.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_mts_stop_slave.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_multi_delete.result
@@ -6430,6 +6508,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_slave_skip_error_all.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_sp001.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_row_sp003.result
@@ -6499,6 +6578,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_spec_variables.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_special_charset.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_sporadic_master.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_sql_thread_error.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_sql_thread_killed_waiting_commit_lock.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_ssl.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_ssl1.result
@@ -6539,6 +6619,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_stm_until_pos_middle_gtid.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_stm_user_variables.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_stop_slave.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_stop_slave_threads_error.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_sync.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_temp_table.result
@@ -6566,6 +6647,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_variables_stm.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_view.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_view_multi.result
+file path=usr/mysql/5.6/mysql-test/suite/rpl/r/rpl_zombie_dump_threads.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl/rpl_1slave_base.cnf
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/disabled.def
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_000010-slave.opt
@@ -6590,6 +6672,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_autogen_query_multi_byte_char.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_autoinc_lock_style.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_avoid_temporal_upgrade.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_begin_commit_rollback-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_begin_commit_rollback-slave.opt
@@ -6597,6 +6680,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_corruption.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_errors-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_errors.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_failed_drop_table-slave.opt
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_failed_drop_table.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_gcommit_options-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_gcommit_options.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_binlog_grant.test
@@ -6761,8 +6846,6 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_sql_until_before_after.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_stm_insert_delayed.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_stm_mix_show_relaylog_events.test
-file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_stress_failover.cnf
-file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_stress_failover.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_temp_table.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_transaction_split_across_relay_logs.cnf
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_gtid_transaction_split_across_relay_logs.test
@@ -6885,6 +6968,10 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_execute_partial_trx_with_auto_pos_on.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_gtids_restart_slave_io_lost_trx-slave.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_gtids_restart_slave_io_lost_trx.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_relay_log_post_crash_recovery-slave.opt
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_relay_log_post_crash_recovery.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_relay_log_recovery_on_error-slave.opt
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_relay_log_recovery_on_error.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_slave_hang_with_partial_trx-slave.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_slave_hang_with_partial_trx.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_mts_stop_slave-slave.opt
@@ -6941,6 +7028,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_parallel_temp_query-slave.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_parallel_temp_query.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_parallel_worker_error-slave.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_parallel_worker_error.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_partition_archive.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_partition_innodb-master.opt
@@ -7077,6 +7165,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_reset_slave.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_rollback_to_savepoint.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_show_relaylog_events.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_slave_skip_error_all-slave.opt
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_slave_skip_error_all.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_sp001.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_row_sp003.test
@@ -7189,6 +7279,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_special_charset.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sporadic_master-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sporadic_master.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sql_thread_error.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sql_thread_killed_waiting_commit_lock-slave.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sql_thread_killed_waiting_commit_lock.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_ssl.test
@@ -7243,6 +7334,8 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_stm_until_pos_middle_gtid.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_stm_user_variables.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_stop_slave.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_stop_slave_threads_error-slave.opt
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_stop_slave_threads_error.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed-master.opt
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_sync-master.opt
@@ -7281,6 +7374,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_variables_stm.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_view.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_view_multi.test
+file path=usr/mysql/5.6/mysql-test/suite/rpl/t/rpl_zombie_dump_threads.test
 file path=usr/mysql/5.6/mysql-test/suite/rpl_ndb/my.cnf
 file path=usr/mysql/5.6/mysql-test/suite/rpl_ndb/r/rpl_ndb_UUID.result
 file path=usr/mysql/5.6/mysql-test/suite/rpl_ndb/r/rpl_ndb_blob2.result
@@ -7627,6 +7721,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_sort_buffer_size_basic.result
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_spin_wait_delay_basic.result
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_stats_auto_recalc_basic.result
+file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_stats_include_delete_marked_basic.result
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_stats_method_basic.result
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_stats_on_metadata_basic.result
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/r/innodb_stats_persistent_basic.result
@@ -8242,6 +8337,7 @@
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_sort_buffer_size_basic.test
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_spin_wait_delay_basic.test
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_stats_auto_recalc_basic.test
+file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_stats_include_delete_marked_basic.test
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_stats_method_basic.test
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_stats_on_metadata_basic.test
 file path=usr/mysql/5.6/mysql-test/suite/sys_vars/t/innodb_stats_persistent_basic.test
@@ -9153,6 +9249,8 @@
 file path=usr/mysql/5.6/mysql-test/t/mysql_client_test.test
 file path=usr/mysql/5.6/mysql-test/t/mysql_client_test_embedded.cnf
 file path=usr/mysql/5.6/mysql-test/t/mysql_client_test_embedded.test
+file path=usr/mysql/5.6/mysql-test/t/mysql_client_test_qcache-master.opt
+file path=usr/mysql/5.6/mysql-test/t/mysql_client_test_qcache.test
 file path=usr/mysql/5.6/mysql-test/t/mysql_comments.sql
 file path=usr/mysql/5.6/mysql-test/t/mysql_comments.test
 file path=usr/mysql/5.6/mysql-test/t/mysql_config_editor.test
@@ -9440,6 +9538,8 @@
 file path=usr/mysql/5.6/mysql-test/t/ssl_8k_key-master.opt
 file path=usr/mysql/5.6/mysql-test/t/ssl_8k_key.test
 file path=usr/mysql/5.6/mysql-test/t/ssl_and_innodb.test
+file path=usr/mysql/5.6/mysql-test/t/ssl_ca-master.opt
+file path=usr/mysql/5.6/mysql-test/t/ssl_ca.test
 file path=usr/mysql/5.6/mysql-test/t/ssl_cipher-master.opt
 file path=usr/mysql/5.6/mysql-test/t/ssl_cipher.test
 file path=usr/mysql/5.6/mysql-test/t/ssl_compress.test
@@ -9452,6 +9552,9 @@
 file path=usr/mysql/5.6/mysql-test/t/ssl_crl_clients_valid.test
 file path=usr/mysql/5.6/mysql-test/t/ssl_crl_crlpath-master.opt
 file path=usr/mysql/5.6/mysql-test/t/ssl_crl_crlpath.test
+file path=usr/mysql/5.6/mysql-test/t/ssl_mode.test
+file path=usr/mysql/5.6/mysql-test/t/ssl_mode_no_ssl-master.opt
+file path=usr/mysql/5.6/mysql-test/t/ssl_mode_no_ssl.test
 file path=usr/mysql/5.6/mysql-test/t/status-master.opt
 file path=usr/mysql/5.6/mysql-test/t/status.test
 file path=usr/mysql/5.6/mysql-test/t/status2.test
@@ -9589,6 +9692,8 @@
 file path=usr/mysql/5.6/mysql-test/t/type_year.test
 file path=usr/mysql/5.6/mysql-test/t/udf-master.opt
 file path=usr/mysql/5.6/mysql-test/t/udf.test
+file path=usr/mysql/5.6/mysql-test/t/udf_services-master.opt
+file path=usr/mysql/5.6/mysql-test/t/udf_services.test
 file path=usr/mysql/5.6/mysql-test/t/udf_skip_grants-master.opt
 file path=usr/mysql/5.6/mysql-test/t/udf_skip_grants.test
 file path=usr/mysql/5.6/mysql-test/t/union-master.opt
@@ -9607,6 +9712,7 @@
 file path=usr/mysql/5.6/mysql-test/t/variables-master.opt
 file path=usr/mysql/5.6/mysql-test/t/variables-notembedded-master.opt
 file path=usr/mysql/5.6/mysql-test/t/variables-notembedded.test
+file path=usr/mysql/5.6/mysql-test/t/variables-win.test
 file path=usr/mysql/5.6/mysql-test/t/variables.test
 file path=usr/mysql/5.6/mysql-test/t/variables_community.test
 file path=usr/mysql/5.6/mysql-test/t/variables_debug.test
--- a/components/mysql-5-6/patches/bug22552923.patch	Thu Mar 09 10:47:46 2017 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-Developed in-house, not fed back.
-Solaris-specific
-This patch is added so that libmysqlclient.so.18 doesn't contain undefined references 
-
---- a/configure.cmake
-+++ b/configure.cmake
-@@ -67,17 +67,27 @@
- # The default C++ library for SunPro is really old, and not standards compliant.
- # http://www.oracle.com/technetwork/server-storage/solaris10/cmp-stlport-libcstd-142559.html
--# Use stlport rather than Rogue Wave.
-+# Use stlport rather than Rogue Wave,
-+#   unless otherwise specified on command line.
- IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
-   IF(CMAKE_CXX_COMPILER_ID MATCHES "SunPro")
--    IF(SUNPRO_CXX_LIBRARY)
--      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -library=${SUNPRO_CXX_LIBRARY}")
--      IF(SUNPRO_CXX_LIBRARY STREQUAL "stdcxx4")
--        ADD_DEFINITIONS(-D__MATHERR_RENAME_EXCEPTION)
--        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -template=extdef")
--      ENDIF()
-+    IF(CMAKE_CXX_FLAGS MATCHES "-std=")
-+      ADD_DEFINITIONS(-D__MATHERR_RENAME_EXCEPTION)
-+      SET(CMAKE_SHARED_LIBRARY_C_FLAGS
-+        "${CMAKE_SHARED_LIBRARY_C_FLAGS} -lc")
-+      SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS
-+        "${CMAKE_SHARED_LIBRARY_CXX_FLAGS} -lstdc++ -lgcc_s -lCrunG3 -lc")
-+      SET(QUOTED_CMAKE_CXX_LINK_FLAGS "-lstdc++ -lgcc_s -lCrunG3 -lc")
-     ELSE()
--      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -library=stlport4")
-+      IF(SUNPRO_CXX_LIBRARY)
-+        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -library=${SUNPRO_CXX_LIBRARY}")
-+        IF(SUNPRO_CXX_LIBRARY STREQUAL "stdcxx4")
-+          ADD_DEFINITIONS(-D__MATHERR_RENAME_EXCEPTION)
-+          SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -template=extdef")
-+        ENDIF()
-+      ELSE()
-+        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -library=stlport4")
-+      ENDIF()
-     ENDIF()
-   ENDIF()
- ENDIF()
-
--- a/components/mysql-5-6/patches/bug22932576.patch	Thu Mar 09 10:47:46 2017 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19424 +0,0 @@
-Developed in-house, not fed back.
-Solaris-specific
-stlport is no longer supported/maintained, so we had to switch to std=c++03
-For Sun Studio we must build with -std=c++03 flag
-Since Sun Studio depends on seeing __attribute__ ((__weakref__)) in order to generate correct code.
-Introduced MY_ATTRIBUTE:  sed -i -e 's/__attribute__/MY_ATTRIBUTE/g' `cat <all srouce files>`
-
---- a/client/mysql.cc
-+++ b/client/mysql.cc
-@@ -1819,7 +1819,7 @@ static void usage(int version)
- 
- 
- my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch(optid) {
-@@ -2755,8 +2755,8 @@ static void initialize_readline (char *name)
- */
- 
- static char **new_mysql_completion(const char *text,
--                                   int start __attribute__((unused)),
--                                   int end __attribute__((unused)))
-+                                   int start MY_ATTRIBUTE((unused)),
-+                                   int end MY_ATTRIBUTE((unused)))
- {
-   if (!status.batch && !quick)
- #if defined(USE_NEW_READLINE_INTERFACE)
-@@ -3166,8 +3166,8 @@ static void print_help_item(MYSQL_ROW *cur, int num_name, int num_cat, char *las
- }
- 
- 
--static int com_server_help(String *buffer __attribute__((unused)),
--			   char *line __attribute__((unused)), char *help_arg)
-+static int com_server_help(String *buffer MY_ATTRIBUTE((unused)),
-+			   char *line MY_ATTRIBUTE((unused)), char *help_arg)
- {
-   MYSQL_ROW cur;
-   const char *server_cmd;
-@@ -3273,8 +3273,8 @@ err:
- }
- 
- static int
--com_help(String *buffer __attribute__((unused)),
--	 char *line __attribute__((unused)))
-+com_help(String *buffer MY_ATTRIBUTE((unused)),
-+	 char *line MY_ATTRIBUTE((unused)))
- {
-   reg1 int i, j;
-   char * help_arg= strchr(line,' '), buff[32], *end;
-@@ -3313,7 +3313,7 @@ com_help(String *buffer __attribute__((unused)),
- 
- 	/* ARGSUSED */
- static int
--com_clear(String *buffer,char *line __attribute__((unused)))
-+com_clear(String *buffer,char *line MY_ATTRIBUTE((unused)))
- {
- #ifdef HAVE_READLINE
-   if (status.add_to_history)
-@@ -3325,7 +3325,7 @@ com_clear(String *buffer,char *line __attribute__((unused)))
- 
- 	/* ARGSUSED */
- static int
--com_charset(String *buffer __attribute__((unused)), char *line)
-+com_charset(String *buffer MY_ATTRIBUTE((unused)), char *line)
- {
-   char buff[256], *param;
-   const CHARSET_INFO *new_cs;
-@@ -3357,7 +3357,7 @@ com_charset(String *buffer __attribute__((unused)), char *line)
- 
- 
- static int
--com_go(String *buffer,char *line __attribute__((unused)))
-+com_go(String *buffer,char *line MY_ATTRIBUTE((unused)))
- {
-   char		buff[200]; /* about 110 chars used so far */
-   char		time_buff[52+3+1]; /* time max + space&parens + NUL */
-@@ -4118,8 +4118,8 @@ print_tab_data(MYSQL_RES *result)
- }
- 
- static int
--com_tee(String *buffer __attribute__((unused)),
--        char *line __attribute__((unused)))
-+com_tee(String *buffer MY_ATTRIBUTE((unused)),
-+        char *line MY_ATTRIBUTE((unused)))
- {
-   char file_name[FN_REFLEN], *end, *param;
- 
-@@ -4161,8 +4161,8 @@ com_tee(String *buffer __attribute__((unused)),
- 
- 
- static int
--com_notee(String *buffer __attribute__((unused)),
--	  char *line __attribute__((unused)))
-+com_notee(String *buffer MY_ATTRIBUTE((unused)),
-+	  char *line MY_ATTRIBUTE((unused)))
- {
-   if (opt_outfile)
-     end_tee();
-@@ -4176,8 +4176,8 @@ com_notee(String *buffer __attribute__((unused)),
- 
- #ifdef USE_POPEN
- static int
--com_pager(String *buffer __attribute__((unused)),
--          char *line __attribute__((unused)))
-+com_pager(String *buffer MY_ATTRIBUTE((unused)),
-+          char *line MY_ATTRIBUTE((unused)))
- {
-   char pager_name[FN_REFLEN], *end, *param;
- 
-@@ -4220,8 +4220,8 @@ com_pager(String *buffer __attribute__((unused)),
- 
- 
- static int
--com_nopager(String *buffer __attribute__((unused)),
--	    char *line __attribute__((unused)))
-+com_nopager(String *buffer MY_ATTRIBUTE((unused)),
-+	    char *line MY_ATTRIBUTE((unused)))
- {
-   strmov(pager, "stdout");
-   opt_nopager=1;
-@@ -4238,7 +4238,7 @@ com_nopager(String *buffer __attribute__((unused)),
- 
- #ifdef USE_POPEN
- static int
--com_edit(String *buffer,char *line __attribute__((unused)))
-+com_edit(String *buffer,char *line MY_ATTRIBUTE((unused)))
- {
-   char	filename[FN_REFLEN],buff[160];
-   int	fd,tmp;
-@@ -4282,16 +4282,16 @@ err:
- /* If arg is given, exit without errors. This happens on command 'quit' */
- 
- static int
--com_quit(String *buffer __attribute__((unused)),
--	 char *line __attribute__((unused)))
-+com_quit(String *buffer MY_ATTRIBUTE((unused)),
-+	 char *line MY_ATTRIBUTE((unused)))
- {
-   status.exit_status=0;
-   return 1;
- }
- 
- static int
--com_rehash(String *buffer __attribute__((unused)),
--	 char *line __attribute__((unused)))
-+com_rehash(String *buffer MY_ATTRIBUTE((unused)),
-+	 char *line MY_ATTRIBUTE((unused)))
- {
- #ifdef HAVE_READLINE
-   build_completion_hash(1, 0);
-@@ -4302,8 +4302,8 @@ com_rehash(String *buffer __attribute__((unused)),
- 
- #ifdef USE_POPEN
- static int
--com_shell(String *buffer __attribute__((unused)),
--          char *line __attribute__((unused)))
-+com_shell(String *buffer MY_ATTRIBUTE((unused)),
-+          char *line MY_ATTRIBUTE((unused)))
- {
-   char *shell_cmd;
- 
-@@ -4330,7 +4330,7 @@ com_shell(String *buffer __attribute__((unused)),
- 
- 
- static int
--com_print(String *buffer,char *line __attribute__((unused)))
-+com_print(String *buffer,char *line MY_ATTRIBUTE((unused)))
- {
-   tee_puts("--------------", stdout);
-   (void) tee_fputs(buffer->c_ptr(), stdout);
-@@ -4395,7 +4395,7 @@ com_connect(String *buffer, char *line)
- }
- 
- 
--static int com_source(String *buffer __attribute__((unused)),
-+static int com_source(String *buffer MY_ATTRIBUTE((unused)),
-                       char *line)
- {
-   char source_name[FN_REFLEN], *end, *param;
-@@ -4450,7 +4450,7 @@ static int com_source(String *buffer __attribute__((unused)),
- 
- 	/* ARGSUSED */
- static int
--com_delimiter(String *buffer __attribute__((unused)), char *line)
-+com_delimiter(String *buffer MY_ATTRIBUTE((unused)), char *line)
- {
-   char buff[256], *tmp;
- 
-@@ -4479,7 +4479,7 @@ com_delimiter(String *buffer __attribute__((unused)), char *line)
- 
- 	/* ARGSUSED */
- static int
--com_use(String *buffer __attribute__((unused)), char *line)
-+com_use(String *buffer MY_ATTRIBUTE((unused)), char *line)
- {
-   char *tmp, buff[FN_REFLEN + 1];
-   int select_db;
-@@ -4624,8 +4624,8 @@ normalize_dbname(const char *line, char *buff, uint buff_size)
- }
- 
- static int
--com_warnings(String *buffer __attribute__((unused)),
--   char *line __attribute__((unused)))
-+com_warnings(String *buffer MY_ATTRIBUTE((unused)),
-+   char *line MY_ATTRIBUTE((unused)))
- {
-   show_warnings = 1;
-   put_info("Show warnings enabled.",INFO_INFO);
-@@ -4633,8 +4633,8 @@ com_warnings(String *buffer __attribute__((unused)),
- }
- 
- static int
--com_nowarnings(String *buffer __attribute__((unused)),
--   char *line __attribute__((unused)))
-+com_nowarnings(String *buffer MY_ATTRIBUTE((unused)),
-+   char *line MY_ATTRIBUTE((unused)))
- {
-   show_warnings = 0;
-   put_info("Show warnings disabled.",INFO_INFO);
-@@ -4914,8 +4914,8 @@ sql_connect(char *host,char *database,char *user,char *password,uint silent)
- 
- 
- static int
--com_status(String *buffer __attribute__((unused)),
--	   char *line __attribute__((unused)))
-+com_status(String *buffer MY_ATTRIBUTE((unused)),
-+	   char *line MY_ATTRIBUTE((unused)))
- {
-   const char *status_str;
-   char buff[40];
-@@ -5555,7 +5555,7 @@ static void init_username()
-   }
- }
- 
--static int com_prompt(String *buffer __attribute__((unused)),
-+static int com_prompt(String *buffer MY_ATTRIBUTE((unused)),
-                       char *line)
- {
-   char *ptr=strchr(line, ' ');
---- a/client/mysql_config_editor.cc
-+++ b/client/mysql_config_editor.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -209,7 +209,7 @@ static struct my_option my_help_command_options[]=
- 
- my_bool
- my_program_get_one_option(int optid,
--                          const struct my_option *opt __attribute__((unused)),
-+                          const struct my_option *opt MY_ATTRIBUTE((unused)),
-                           char *argument)
- {
-   switch(optid) {
-@@ -230,7 +230,7 @@ my_program_get_one_option(int optid,
- 
- my_bool
- my_set_command_get_one_option(int optid,
--                              const struct my_option *opt __attribute__((unused)),
-+                              const struct my_option *opt MY_ATTRIBUTE((unused)),
-                               char *argument)
- {
-   switch(optid) {
-@@ -257,7 +257,7 @@ my_set_command_get_one_option(int optid,
- 
- my_bool
- my_remove_command_get_one_option(int optid,
--                                 const struct my_option *opt __attribute__((unused)),
-+                                 const struct my_option *opt MY_ATTRIBUTE((unused)),
-                                  char *argument)
- {
-   switch(optid) {
-@@ -281,7 +281,7 @@ my_remove_command_get_one_option(int optid,
- 
- my_bool
- my_print_command_get_one_option(int optid,
--                                const struct my_option *opt __attribute__((unused)),
-+                                const struct my_option *opt MY_ATTRIBUTE((unused)),
-                                 char *argument)
- {
-   switch(optid) {
-@@ -305,7 +305,7 @@ my_print_command_get_one_option(int optid,
- 
- my_bool
- my_reset_command_get_one_option(int optid,
--                                const struct my_option *opt __attribute__((unused)),
-+                                const struct my_option *opt MY_ATTRIBUTE((unused)),
-                                 char *argument)
- {
-   switch(optid) {
---- a/client/mysql_plugin.c
-+++ b/client/mysql_plugin.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -406,7 +406,7 @@ exit:
- static void usage(void)
- {
-   PRINT_VERSION;
--  puts("Copyright (c) 2011, 2015, Oracle and/or its affiliates. "
-+  puts("Copyright (c) 2011, 2016, Oracle and/or its affiliates. "
-        "All rights reserved.\n");
-   puts("Enable or disable plugins.");
-   printf("\nUsage: %s [options] <plugin> ENABLE|DISABLE\n\nOptions:\n",
-@@ -471,7 +471,7 @@ static void print_default_values(void)
- 
- static my_bool
- get_one_option(int optid,
--               const struct my_option *opt __attribute__((unused)),
-+               const struct my_option *opt MY_ATTRIBUTE((unused)),
-                char *argument)
- {
-   switch(optid) {
---- a/client/mysqladmin.cc
-+++ b/client/mysqladmin.cc
-@@ -237,7 +237,7 @@ static struct my_option my_long_options[] =
- static const char *load_default_groups[]= { "mysqladmin","client",0 };
- 
- my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   int error = 0;
-@@ -528,7 +528,7 @@ int main(int argc,char *argv[])
- }
- 
- 
--sig_handler endprog(int signal_number __attribute__((unused)))
-+sig_handler endprog(int signal_number MY_ATTRIBUTE((unused)))
- {
-   interrupted=1;
- }
-@@ -1416,7 +1416,7 @@ static void print_top(MYSQL_RES *result)
- 
- /* 3.rd argument, uint row, is not in use. Don't remove! */
- static void print_row(MYSQL_RES *result, MYSQL_ROW cur,
--		      uint row __attribute__((unused)))
-+		      uint row MY_ATTRIBUTE((unused)))
- {
-   uint i,length;
-   MYSQL_FIELD *field;
-@@ -1451,9 +1451,9 @@ static void print_relative_row(MYSQL_RES *result, MYSQL_ROW cur, uint row)
- }
- 
- 
--static void print_relative_row_vert(MYSQL_RES *result __attribute__((unused)),
-+static void print_relative_row_vert(MYSQL_RES *result MY_ATTRIBUTE((unused)),
- 				    MYSQL_ROW cur,
--				    uint row __attribute__((unused)))
-+				    uint row MY_ATTRIBUTE((unused)))
- {
-   uint length;
-   ulonglong tmp;
---- a/client/mysqlbinlog.cc
-+++ b/client/mysqlbinlog.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1819,7 +1819,7 @@ static my_time_t convert_str_to_timestamp(const char* str)
- 
- 
- extern "C" my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   bool tty_password=0;
---- a/client/mysqlcheck.c
-+++ b/client/mysqlcheck.c
-@@ -270,7 +270,7 @@ static void usage(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   int orig_what_to_do= what_to_do;
---- a/client/mysqldump.c
-+++ b/client/mysqldump.c
-@@ -762,7 +762,7 @@ static void write_footer(FILE *sql_file)
- 
- 
- uchar* get_table_key(const char *entry, size_t *length,
--                     my_bool not_used __attribute__((unused)))
-+                     my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= strlen(entry);
-   return (uchar*) entry;
-@@ -770,7 +770,7 @@ uchar* get_table_key(const char *entry, size_t *length,
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-                char *argument)
- {
-   switch (optid) {
-@@ -1921,7 +1921,7 @@ static void print_xml_row(FILE *xml_file, const char *row_name,
-                           const char *str_create)
- {
-   uint i;
--  my_bool body_found __attribute__((unused)) = 0;
-+  my_bool body_found MY_ATTRIBUTE((unused)) = 0;
-   char *create_stmt_ptr= NULL;
-   ulong create_stmt_len= 0;
-   MYSQL_FIELD *field;
-@@ -4281,7 +4281,7 @@ RETURN VALUES
-   0        Success.
-   1        Failure.
- */
--int init_dumping_views(char *qdatabase __attribute__((unused)))
-+int init_dumping_views(char *qdatabase MY_ATTRIBUTE((unused)))
- {
-     return 0;
- } /* init_dumping_views */
---- a/client/mysqlimport.c
-+++ b/client/mysqlimport.c
-@@ -222,7 +222,7 @@ file. The SQL command 'LOAD DATA INFILE' is used to import the rows.\n");
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch(optid) {
---- a/client/mysqlshow.c
-+++ b/client/mysqlshow.c
-@@ -314,7 +314,7 @@ are shown.");
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch(optid) {
---- a/client/mysqlslap.c
-+++ b/client/mysqlslap.c
-@@ -736,7 +736,7 @@ static void usage(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-                char *argument)
- {
-   DBUG_ENTER("get_one_option");
---- a/client/mysqltest.cc
-+++ b/client/mysqltest.cc
-@@ -547,12 +547,12 @@ struct st_replace *glob_replace= 0;
- void replace_strings_append(struct st_replace *rep, DYNAMIC_STRING* ds,
- const char *from, int len);
- 
--static void cleanup_and_exit(int exit_code) __attribute__((noreturn));
-+static void cleanup_and_exit(int exit_code) MY_ATTRIBUTE((noreturn));
- 
- void die(const char *fmt, ...)
--  ATTRIBUTE_FORMAT(printf, 1, 2) __attribute__((noreturn));
-+  ATTRIBUTE_FORMAT(printf, 1, 2) MY_ATTRIBUTE((noreturn));
- void abort_not_supported_test(const char *fmt, ...)
--  ATTRIBUTE_FORMAT(printf, 1, 2) __attribute__((noreturn));
-+  ATTRIBUTE_FORMAT(printf, 1, 2) MY_ATTRIBUTE((noreturn));
- void verbose_msg(const char *fmt, ...)
-   ATTRIBUTE_FORMAT(printf, 1, 2);
- void log_msg(const char *fmt, ...)
-@@ -2121,7 +2121,7 @@ static void strip_parentheses(struct st_command *command)
- C_MODE_START
- 
- static uchar *get_var_key(const uchar* var, size_t *len,
--                          my_bool __attribute__((unused)) t)
-+                          my_bool MY_ATTRIBUTE((unused)) t)
- {
-   register char* key;
-   key = ((VAR*)var)->name;
-@@ -4320,7 +4320,7 @@ int do_echo(struct st_command *command)
- }
- 
- 
--void do_wait_for_slave_to_stop(struct st_command *c __attribute__((unused)))
-+void do_wait_for_slave_to_stop(struct st_command *c MY_ATTRIBUTE((unused)))
- {
-   static int SLAVE_POLL_INTERVAL= 300000;
-   MYSQL* mysql = &cur_con->mysql;
-@@ -8418,7 +8418,7 @@ void update_expected_errors(struct st_command* command)
- 
- */
- 
--void mark_progress(struct st_command* command __attribute__((unused)),
-+void mark_progress(struct st_command* command MY_ATTRIBUTE((unused)),
-                    int line)
- {
-   static ulonglong progress_start= 0; // < Beware
-@@ -9465,7 +9465,7 @@ typedef struct st_replace_found {
- 
- void replace_strings_append(REPLACE *rep, DYNAMIC_STRING* ds,
-                             const char *str,
--                            int len __attribute__((unused)))
-+                            int len MY_ATTRIBUTE((unused)))
- {
-   reg1 REPLACE *rep_pos;
-   reg2 REPLACE_STRING *rep_str;
---- a/cmake/build_configurations/compiler_options.cmake
-+++ b/cmake/build_configurations/compiler_options.cmake
-@@ -1,4 +1,4 @@
--# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
- # 
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
-@@ -66,11 +66,9 @@ IF(UNIX)
-       SET(SUNPRO_CXX_LIBRARY "stlport4" CACHE STRING
-         "What C++ library to use. The server needs stlport4. It is possible to build the client libraries with -DWITHOUT_SERVER=1 -DSUNPRO_CXX_LIBRARY=Cstd")
- 
--      MESSAGE(STATUS "SUNPRO_CXX_LIBRARY ${SUNPRO_CXX_LIBRARY}")
--
-       IF(CMAKE_SYSTEM_PROCESSOR MATCHES "i386")
-         SET(COMMON_C_FLAGS                   "-g -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic")
--        SET(COMMON_CXX_FLAGS                 "-g0 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic -library=${SUNPRO_CXX_LIBRARY}")
-+        SET(COMMON_CXX_FLAGS                 "-g0 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic")
-         # We have to specify "-xO1" for DEBUG flags here,
-         # see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6879978
-         SET(CMAKE_C_FLAGS_DEBUG              "-xO1 ${COMMON_C_FLAGS}")
-@@ -85,7 +83,7 @@ IF(UNIX)
-       ELSE() 
-         # Assume !x86 is SPARC
-         SET(COMMON_C_FLAGS                 "-g -Xa -xstrconst -mt")
--        SET(COMMON_CXX_FLAGS               "-g0 -mt -library=${SUNPRO_CXX_LIBRARY}")
-+        SET(COMMON_CXX_FLAGS               "-g0 -mt")
-         IF(32BIT)
-           SET(COMMON_C_FLAGS               "${COMMON_C_FLAGS} -xarch=sparc")
-           SET(COMMON_CXX_FLAGS             "${COMMON_CXX_FLAGS} -xarch=sparc")
-
---- a/dbug/tests.c
-+++ b/dbug/tests.c
-@@ -73,7 +73,7 @@ int main (int argc, char *argv[])
-             DBUG_EVALUATE_IF("evaluate_if", "ON", "OFF"));
-     DBUG_EXECUTE_IF("pop",  DBUG_POP(); );
-     {
--      char s[1000] __attribute__((unused));
-+      char s[1000] MY_ATTRIBUTE((unused));
-       DBUG_EXPLAIN(s, sizeof(s)-1);
-       DBUG_PRINT("explain", ("dbug explained: %s", s));
-     }
---- a/extra/comp_err.c
-+++ b/extra/comp_err.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1023,8 +1023,8 @@ static void print_version(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__ ((unused)),
--	       char *argument __attribute__ ((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE ((unused)),
-+	       char *argument MY_ATTRIBUTE ((unused)))
- {
-   DBUG_ENTER("get_one_option");
-   switch (optid) {
---- a/extra/innochecksum.cc
-+++ b/extra/innochecksum.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -235,8 +235,8 @@ extern "C" my_bool
- innochecksum_get_one_option(
- /*========================*/
-   int optid,
--  const struct my_option *opt __attribute__((unused)),
--  char *argument __attribute__((unused)))
-+  const struct my_option *opt MY_ATTRIBUTE((unused)),
-+  char *argument MY_ATTRIBUTE((unused)))
- {
-   switch (optid) {
-   case 'd':
---- a/extra/my_print_defaults.c
-+++ b/extra/my_print_defaults.c
-@@ -1,6 +1,6 @@
- 
- /*
--   Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -118,8 +118,8 @@ static void usage(my_bool version)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch (optid) {
-     case 'c':
---- a/extra/mysql_waitpid.c
-+++ b/extra/mysql_waitpid.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -43,8 +43,8 @@ static struct my_option my_long_options[] =
- };
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch(optid) {
-   case 'V':
---- a/extra/perror.c
-+++ b/extra/perror.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -94,8 +94,8 @@ static void usage(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch (optid) {
-   case 's':
---- a/extra/resolve_stack_dump.cc
-+++ b/extra/resolve_stack_dump.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -51,7 +51,7 @@ static char* dump_fname = 0, *sym_fname = 0;
- static std::vector<sym_entry> sym_table;
- static FILE* fp_dump, *fp_sym = 0, *fp_out; 
- static void die(const char* fmt, ...)
--  __attribute__((noreturn)) __attribute__((format(printf, 1, 2)));
-+  MY_ATTRIBUTE((noreturn)) MY_ATTRIBUTE((format(printf, 1, 2)));
- 
- static struct my_option my_long_options[] =
- {
-@@ -107,8 +107,8 @@ static void die(const char* fmt, ...)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch(optid) {
-   case 'V':
---- a/extra/resolveip.c
-+++ b/extra/resolveip.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -72,8 +72,8 @@ static void usage(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch (optid) {
-   case 'V': print_version(); exit(0);
---- a/extra/yassl/taocrypt/CMakeLists.txt
-+++ b/extra/yassl/taocrypt/CMakeLists.txt
-@@ -1,4 +1,4 @@
--# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- # 
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
-@@ -13,6 +13,8 @@
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
- 
-+INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
-+
- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL
-                     ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/include)
- 
-@@ -29,6 +31,14 @@ SET(TAOCRYPT_SOURCES		src/aes.cpp src/aestables.cpp src/algebra.cpp src/arc4.cpp
- 				include/random.hpp include/ripemd.hpp include/rsa.hpp include/sha.hpp
- 				include/rabbit.hpp include/hc128.hpp)
- 
-+# Segfaults with SIGILL at high optimization levels in:
-+# ModularArithmetic::SimultaneousExponentiate
-+IF(CMAKE_CXX_COMPILER_ID MATCHES "SunPro")
-+  IF(CMAKE_CXX_FLAGS MATCHES "-std=")
-+    ADD_COMPILE_FLAGS(src/integer.cpp COMPILE_FLAGS "-xO1")
-+  ENDIF()
-+ENDIF()
-+
- IF(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION)
-   SET(TAOCRYPT_SOURCES ${TAOCRYPT_SOURCES} src/template_instnt.cpp)
- ENDIF()
---- a/include/atomic/nolock.h
-+++ b/include/atomic/nolock.h
-@@ -1,7 +1,7 @@
- #ifndef ATOMIC_NOLOCK_INCLUDED
- #define ATOMIC_NOLOCK_INCLUDED
- 
--/* Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. reserved.
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -44,7 +44,7 @@
-   Type not used so minimal size (emptry struct has different size between C
-   and C++, zero-length array is gcc-specific).
- */
--typedef char my_atomic_rwlock_t __attribute__ ((unused));
-+typedef char my_atomic_rwlock_t MY_ATTRIBUTE ((unused));
- #define my_atomic_rwlock_destroy(name)
- #define my_atomic_rwlock_init(name)
- #define my_atomic_rwlock_rdlock(name)
---- a/include/lf.h
-+++ b/include/lf.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -138,7 +138,7 @@ typedef struct {
- #if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG)
- #define LF_REQUIRE_PINS(N)                                      \
-   static const char require_pins[LF_PINBOX_PINS-N]              \
--                             __attribute__ ((unused));          \
-+                             MY_ATTRIBUTE ((unused));          \
-   static const int LF_NUM_PINS_IN_THIS_FILE= N;
- #define _lf_pin(PINS, PIN, ADDR)                                \
-   (                                                             \
---- a/include/m_ctype.h
-+++ b/include/m_ctype.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -658,10 +658,10 @@ int my_wildcmp_mb_bin(const CHARSET_INFO *cs,
-                       const char *wildstr,const char *wildend,
-                       int escape, int w_one, int w_many);
- 
--int my_strcasecmp_mb_bin(const CHARSET_INFO * cs __attribute__((unused)),
-+int my_strcasecmp_mb_bin(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)),
-                          const char *s, const char *t);
- 
--void my_hash_sort_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_hash_sort_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                          const uchar *key, size_t len,ulong *nr1, ulong *nr2);
- 
- size_t my_strnxfrm_mb(const CHARSET_INFO *,
---- a/include/my_atomic.h
-+++ b/include/my_atomic.h
-@@ -1,7 +1,7 @@
- #ifndef MY_ATOMIC_INCLUDED
- #define MY_ATOMIC_INCLUDED
- 
--/* Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -121,11 +121,11 @@
-         typedef union {                                         \
-           int  ## S  i;                                         \
-           uint ## S  u;                                         \
--        } U_ ## S   __attribute__ ((transparent_union));        \
-+        } U_ ## S   MY_ATTRIBUTE ((transparent_union));        \
-         typedef union {                                         \
-           int  ## S volatile *i;                                \
-           uint ## S volatile *u;                                \
--        } Uv_ ## S   __attribute__ ((transparent_union));
-+        } Uv_ ## S   MY_ATTRIBUTE ((transparent_union));
- #define uintptr intptr
- make_transparent_unions(8)
- make_transparent_unions(16)
---- a/include/my_attribute.h
-+++ b/include/my_attribute.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -28,41 +28,30 @@
- #endif
- 
- /*
--  Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers.
-+  Disable MY_ATTRIBUTE() on g++ < 3.4, and non-gcc compilers.
-   Some forms of __attribute__ are actually supported in earlier versions of
-   g++, but we just disable them all because we only use them to generate
-   compilation warnings.
- */
--#ifndef __attribute__
--# if !defined(__GNUC__)
--#  define __attribute__(A)
--# elif GCC_VERSION < 2008
--#  define __attribute__(A)
--# elif defined(__cplusplus) && GCC_VERSION < 3004
--#  define __attribute__(A)
--# endif
-+#ifndef MY_ATTRIBUTE
-+#if defined(__GNUC__) && GCC_VERSION > 3003
-+#  define MY_ATTRIBUTE(A) __attribute__(A)
-+#else
-+#  define MY_ATTRIBUTE(A)
-+#endif
- #endif
- 
- /*
--  __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4
--  But that's already covered by the __attribute__ tests above, so this is
-+  __attribute__((format(...))) is only supported in g++ >= 3.4
-+  But that's already covered by the MY_ATTRIBUTE tests above, so this is
-   just a convenience macro.
- */
- #ifndef ATTRIBUTE_FORMAT
--# define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n)))
-+#  define ATTRIBUTE_FORMAT(style, m, n) MY_ATTRIBUTE((format(style, m, n)))
- #endif
- 
--/*
--
--   __attribute__((format(...))) on a function pointer is not supported
--   until  gcc 3.1
--*/
- #ifndef ATTRIBUTE_FORMAT_FPTR
--# if (GCC_VERSION >= 3001)
- #  define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n)
--# else
--#  define ATTRIBUTE_FORMAT_FPTR(style, m, n)
--# endif /* GNUC >= 3.1 */
- #endif
- 
- 
---- a/include/my_global.h
-+++ b/include/my_global.h
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -184,7 +184,7 @@
-   other reason to use them is for documentation
- */
- 
--#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
-+#if !defined(__builtin_expect)
- #define __builtin_expect(x, expected_value) (x)
- #endif
- 
-@@ -374,7 +374,7 @@ C_MODE_END
- #define compile_time_assert(X)                                  \
-   do                                                            \
-   {                                                             \
--    typedef char compile_time_assert[(X) ? 1 : -1] __attribute__((unused)); \
-+    typedef char compile_time_assert[(X) ? 1 : -1] MY_ATTRIBUTE((unused)); \
-   } while(0)
- #endif
- 
---- a/include/my_pthread.h
-+++ b/include/my_pthread.h
-@@ -860,7 +860,7 @@ struct st_my_thread_var
- #endif
- };
- 
--extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const));
-+extern struct st_my_thread_var *_my_thread_var(void) MY_ATTRIBUTE ((const));
- extern int set_mysys_var(struct st_my_thread_var *mysys_var);
- extern void **my_thread_var_dbug();
- extern uint my_thread_end_wait_time;
---- a/include/mysql/psi/mysql_file.h
-+++ b/include/mysql/psi/mysql_file.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -511,9 +511,9 @@ static inline void inline_mysql_file_register(
-   PSI_file_info *info,
-   int count
- #else
--  const char *category __attribute__ ((unused)),
--  void *info __attribute__ ((unused)),
--  int count __attribute__ ((unused))
-+  const char *category MY_ATTRIBUTE ((unused)),
-+  void *info MY_ATTRIBUTE ((unused)),
-+  int count MY_ATTRIBUTE ((unused))
- #endif
- )
- {
---- a/include/mysql/psi/mysql_socket.h
-+++ b/include/mysql/psi/mysql_socket.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
-@@ -114,9 +114,9 @@ mysql_socket_set_address(
-   const struct sockaddr *addr,
-   socklen_t addr_len
- #else
--  MYSQL_SOCKET socket __attribute__ ((unused)),
--  const struct sockaddr *addr __attribute__ ((unused)),
--  socklen_t addr_len __attribute__ ((unused))
-+  MYSQL_SOCKET socket MY_ATTRIBUTE ((unused)),
-+  const struct sockaddr *addr MY_ATTRIBUTE ((unused)),
-+  socklen_t addr_len MY_ATTRIBUTE ((unused))
- #endif
- )
- {
-@@ -136,7 +136,7 @@ mysql_socket_set_thread_owner(
- #ifdef HAVE_PSI_SOCKET_INTERFACE
- MYSQL_SOCKET socket
- #else
--MYSQL_SOCKET socket __attribute__ ((unused))
-+MYSQL_SOCKET socket MY_ATTRIBUTE ((unused))
- #endif
- )
- {
---- a/include/mysql/psi/mysql_thread.h
-+++ b/include/mysql/psi/mysql_thread.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -587,9 +587,9 @@ static inline void inline_mysql_mutex_register(
-   PSI_mutex_info *info,
-   int count
- #else
--  const char *category __attribute__ ((unused)),
--  void *info __attribute__ ((unused)),
--  int count __attribute__ ((unused))
-+  const char *category MY_ATTRIBUTE ((unused)),
-+  void *info MY_ATTRIBUTE ((unused)),
-+  int count MY_ATTRIBUTE ((unused))
- #endif
- )
- {
-@@ -771,9 +771,9 @@ static inline void inline_mysql_rwlock_register(
-   PSI_rwlock_info *info,
-   int count
- #else
--  const char *category __attribute__ ((unused)),
--  void *info __attribute__ ((unused)),
--  int count __attribute__ ((unused))
-+  const char *category MY_ATTRIBUTE ((unused)),
-+  void *info MY_ATTRIBUTE ((unused)),
-+  int count MY_ATTRIBUTE ((unused))
- #endif
- )
- {
-@@ -1089,9 +1089,9 @@ static inline void inline_mysql_cond_register(
-   PSI_cond_info *info,
-   int count
- #else
--  const char *category __attribute__ ((unused)),
--  void *info __attribute__ ((unused)),
--  int count __attribute__ ((unused))
-+  const char *category MY_ATTRIBUTE ((unused)),
-+  void *info MY_ATTRIBUTE ((unused)),
-+  int count MY_ATTRIBUTE ((unused))
- #endif
- )
- {
-@@ -1231,9 +1231,9 @@ static inline void inline_mysql_thread_register(
-   PSI_thread_info *info,
-   int count
- #else
--  const char *category __attribute__ ((unused)),
--  void *info __attribute__ ((unused)),
--  int count __attribute__ ((unused))
-+  const char *category MY_ATTRIBUTE ((unused)),
-+  void *info MY_ATTRIBUTE ((unused)),
-+  int count MY_ATTRIBUTE ((unused))
- #endif
- )
- {
---- a/libmysql/libmysql.c
-+++ b/libmysql/libmysql.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -111,9 +111,9 @@ typedef struct st_mysql_stmt_extension
-     1  could not initialize environment (out of memory or thread keys)
- */
- 
--int STDCALL mysql_server_init(int argc __attribute__((unused)),
--			      char **argv __attribute__((unused)),
--			      char **groups __attribute__((unused)))
-+int STDCALL mysql_server_init(int argc MY_ATTRIBUTE((unused)),
-+			      char **argv MY_ATTRIBUTE((unused)),
-+			      char **groups MY_ATTRIBUTE((unused)))
- {
-   int result= 0;
-   if (!mysql_client_init)
-@@ -128,7 +128,7 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
-     if (!mysql_port)
-     {
-       char *env;
--      struct servent *serv_ptr __attribute__((unused));
-+      struct servent *serv_ptr MY_ATTRIBUTE((unused));
- 
-       mysql_port = MYSQL_PORT;
- 
-@@ -264,7 +264,7 @@ append_wild(char *to, char *end, const char *wild)
- **************************************************************************/
- 
- void STDCALL
--mysql_debug(const char *debug __attribute__((unused)))
-+mysql_debug(const char *debug MY_ATTRIBUTE((unused)))
- {
- #ifndef DBUG_OFF
-   char	*env;
-@@ -299,7 +299,7 @@ mysql_debug(const char *debug __attribute__((unused)))
- **************************************************************************/
- 
- sig_handler
--my_pipe_sig_handler(int sig __attribute__((unused)))
-+my_pipe_sig_handler(int sig MY_ATTRIBUTE((unused)))
- {
-   DBUG_PRINT("info",("Hit by signal %d",sig));
- #ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
-@@ -559,7 +559,7 @@ typedef struct st_default_local_infile
- */
- 
- static int default_local_infile_init(void **ptr, const char *filename,
--             void *userdata __attribute__ ((unused)))
-+             void *userdata MY_ATTRIBUTE ((unused)))
- {
-   default_local_infile_data *data;
-   char tmp_name[FN_REFLEN];
-@@ -2341,15 +2341,15 @@ stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row)
- */
- 
- static int
--stmt_read_row_no_data(MYSQL_STMT *stmt  __attribute__((unused)),
--                      unsigned char **row  __attribute__((unused)))
-+stmt_read_row_no_data(MYSQL_STMT *stmt  MY_ATTRIBUTE((unused)),
-+                      unsigned char **row  MY_ATTRIBUTE((unused)))
- {
-   return MYSQL_NO_DATA;
- }
- 
- static int
--stmt_read_row_no_result_set(MYSQL_STMT *stmt  __attribute__((unused)),
--                      unsigned char **row  __attribute__((unused)))
-+stmt_read_row_no_result_set(MYSQL_STMT *stmt  MY_ATTRIBUTE((unused)),
-+                      unsigned char **row  MY_ATTRIBUTE((unused)))
- {
-   set_stmt_error(stmt, CR_NO_RESULT_SET, unknown_sqlstate, NULL);
-   return 1;
-@@ -3708,7 +3708,7 @@ static void fetch_result_short(MYSQL_BIND *param, MYSQL_FIELD *field,
- }
- 
- static void fetch_result_int32(MYSQL_BIND *param,
--                               MYSQL_FIELD *field __attribute__((unused)),
-+                               MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                                uchar **row)
- {
-   my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG);
-@@ -3719,7 +3719,7 @@ static void fetch_result_int32(MYSQL_BIND *param,
- }
- 
- static void fetch_result_int64(MYSQL_BIND *param,
--                               MYSQL_FIELD *field __attribute__((unused)),
-+                               MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                                uchar **row)
- {
-   my_bool field_is_unsigned= MY_TEST(field->flags & UNSIGNED_FLAG);
-@@ -3730,7 +3730,7 @@ static void fetch_result_int64(MYSQL_BIND *param,
- }
- 
- static void fetch_result_float(MYSQL_BIND *param,
--                               MYSQL_FIELD *field __attribute__((unused)),
-+                               MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                                uchar **row)
- {
-   float value;
-@@ -3740,7 +3740,7 @@ static void fetch_result_float(MYSQL_BIND *param,
- }
- 
- static void fetch_result_double(MYSQL_BIND *param,
--                                MYSQL_FIELD *field __attribute__((unused)),
-+                                MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                                 uchar **row)
- {
-   double value;
-@@ -3750,7 +3750,7 @@ static void fetch_result_double(MYSQL_BIND *param,
- }
- 
- static void fetch_result_time(MYSQL_BIND *param,
--                              MYSQL_FIELD *field __attribute__((unused)),
-+                              MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                               uchar **row)
- {
-   MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
-@@ -3758,7 +3758,7 @@ static void fetch_result_time(MYSQL_BIND *param,
- }
- 
- static void fetch_result_date(MYSQL_BIND *param,
--                              MYSQL_FIELD *field __attribute__((unused)),
-+                              MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                               uchar **row)
- {
-   MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
-@@ -3766,7 +3766,7 @@ static void fetch_result_date(MYSQL_BIND *param,
- }
- 
- static void fetch_result_datetime(MYSQL_BIND *param,
--                                  MYSQL_FIELD *field __attribute__((unused)),
-+                                  MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                                   uchar **row)
- {
-   MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
-@@ -3774,7 +3774,7 @@ static void fetch_result_datetime(MYSQL_BIND *param,
- }
- 
- static void fetch_result_bin(MYSQL_BIND *param,
--                             MYSQL_FIELD *field __attribute__((unused)),
-+                             MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                              uchar **row)
- {
-   ulong length= net_field_length(row);
-@@ -3786,7 +3786,7 @@ static void fetch_result_bin(MYSQL_BIND *param,
- }
- 
- static void fetch_result_str(MYSQL_BIND *param,
--                             MYSQL_FIELD *field __attribute__((unused)),
-+                             MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
-                              uchar **row)
- {
-   ulong length= net_field_length(row);
-@@ -3807,7 +3807,7 @@ static void fetch_result_str(MYSQL_BIND *param,
- */
- 
- static void skip_result_fixed(MYSQL_BIND *param,
--			      MYSQL_FIELD *field __attribute__((unused)),
-+			      MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
- 			      uchar **row)
- 
- {
-@@ -3815,8 +3815,8 @@ static void skip_result_fixed(MYSQL_BIND *param,
- }
- 
- 
--static void skip_result_with_length(MYSQL_BIND *param __attribute__((unused)),
--				    MYSQL_FIELD *field __attribute__((unused)),
-+static void skip_result_with_length(MYSQL_BIND *param MY_ATTRIBUTE((unused)),
-+				    MYSQL_FIELD *field MY_ATTRIBUTE((unused)),
- 				    uchar **row)
- 
- {
-@@ -3825,7 +3825,7 @@ static void skip_result_with_length(MYSQL_BIND *param __attribute__((unused)),
- }
- 
- 
--static void skip_result_string(MYSQL_BIND *param __attribute__((unused)),
-+static void skip_result_string(MYSQL_BIND *param MY_ATTRIBUTE((unused)),
- 			       MYSQL_FIELD *field,
- 			       uchar **row)
- 
---- a/libmysqld/lib_sql.cc
-+++ b/libmysqld/lib_sql.cc
-@@ -2,7 +2,7 @@
-  * Copyright (c)  2000
-  * SWsoft  company
-  *
-- * Modifications copyright (c) 2001, 2015. Oracle and/or its affiliates.
-+ * Modifications copyright (c) 2001, 2016. Oracle and/or its affiliates.
-  * All rights reserved.
-  *
-  * This material is provided "as is", with absolutely no warranty expressed
-@@ -213,8 +213,8 @@ static void emb_flush_use_result(MYSQL *mysql, my_bool)
- */
- 
- static MYSQL_DATA *
--emb_read_rows(MYSQL *mysql, MYSQL_FIELD *mysql_fields __attribute__((unused)),
--	      unsigned int fields __attribute__((unused)))
-+emb_read_rows(MYSQL *mysql, MYSQL_FIELD *mysql_fields MY_ATTRIBUTE((unused)),
-+	      unsigned int fields MY_ATTRIBUTE((unused)))
- {
-   MYSQL_DATA *result= ((THD*)mysql->thd)->cur_data;
-   ((THD*)mysql->thd)->cur_data= 0;
-@@ -1426,7 +1426,7 @@ bool Protocol::net_store_data(const uchar *from, size_t length)
- #define vsnprintf _vsnprintf
- #endif
- 
--int vprint_msg_to_log(enum loglevel level __attribute__((unused)),
-+int vprint_msg_to_log(enum loglevel level MY_ATTRIBUTE((unused)),
-                        const char *format, va_list argsi)
- {
-   my_vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error),
---- a/mysql-test/r/mysql_plugin.result
-+++ b/mysql-test/r/mysql_plugin.result
-@@ -105,7 +105,7 @@ ERROR: Missing --plugin_dir option.
- # Show the help.
- #
- mysql_plugin  Ver V.V.VV Distrib XX.XX.XX
--Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
- Enable or disable plugins.
- 
---- a/mysys/charset-def.c
-+++ b/mysys/charset-def.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -161,7 +161,7 @@ extern CHARSET_INFO my_charset_utf8mb4_vietnamese_ci;
- 
- #endif /* HAVE_UCA_COLLATIONS */
- 
--my_bool init_compiled_charsets(myf flags __attribute__((unused)))
-+my_bool init_compiled_charsets(myf flags MY_ATTRIBUTE((unused)))
- {
-   CHARSET_INFO *cs;
- 
---- a/mysys/charset.c
-+++ b/mysys/charset.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -357,8 +357,8 @@ static int add_collation(CHARSET_INFO *cs)
-   Be silent by default: no warnings on the client side.
- */
- static void
--default_reporter(enum loglevel level  __attribute__ ((unused)),
--                 const char *format  __attribute__ ((unused)),
-+default_reporter(enum loglevel level  MY_ATTRIBUTE ((unused)),
-+                 const char *format  MY_ATTRIBUTE ((unused)),
-                  ...)
- {
- }
---- a/mysys/mf_cache.c
-+++ b/mysys/mf_cache.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -26,7 +26,7 @@
- 	  this, just remember the file name for later removal
- 	*/
- 
--static my_bool cache_remove_open_tmp(IO_CACHE *cache __attribute__((unused)),
-+static my_bool cache_remove_open_tmp(IO_CACHE *cache MY_ATTRIBUTE((unused)),
- 				     const char *name)
- {
- #if O_TEMPORARY == 0
---- a/mysys/mf_iocache.c
-+++ b/mysys/mf_iocache.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -323,7 +323,7 @@ static void my_aiowait(my_aio_result *result)
- 
- my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
- 			my_off_t seek_offset,
--			pbool use_async_io __attribute__((unused)),
-+			pbool use_async_io MY_ATTRIBUTE((unused)),
- 			pbool clear_cache)
- {
-   DBUG_ENTER("reinit_io_cache");
-@@ -1129,7 +1129,7 @@ static void copy_to_read_buffer(IO_CACHE *write_cache,
-   while (write_length)
-   {
-     size_t copy_length= MY_MIN(write_length, write_cache->buffer_length);
--    int  __attribute__((unused)) rc;
-+    int  MY_ATTRIBUTE((unused)) rc;
- 
-     rc= lock_io_cache(write_cache, write_cache->pos_in_file);
-     /* The writing thread does always have the lock when it awakes. */
-@@ -1732,7 +1732,7 @@ int my_block_write(register IO_CACHE *info, const uchar *Buffer, size_t Count,
-   unlock_append_buffer(info);
- 
- int my_b_flush_io_cache(IO_CACHE *info,
--                        int need_append_buffer_lock __attribute__((unused)))
-+                        int need_append_buffer_lock MY_ATTRIBUTE((unused)))
- {
-   size_t length;
-   my_off_t pos_in_file;
---- a/mysys/mf_keycache.c
-+++ b/mysys/mf_keycache.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -2498,8 +2498,8 @@ static void read_block(KEY_CACHE *keycache,
- uchar *key_cache_read(KEY_CACHE *keycache,
-                       File file, my_off_t filepos, int level,
-                       uchar *buff, uint length,
--                      uint block_length __attribute__((unused)),
--                      int return_buffer __attribute__((unused)))
-+                      uint block_length MY_ATTRIBUTE((unused)),
-+                      int return_buffer MY_ATTRIBUTE((unused)))
- {
-   my_bool locked_and_incremented= FALSE;
-   int error=0;
-@@ -2979,7 +2979,7 @@ int key_cache_insert(KEY_CACHE *keycache,
- int key_cache_write(KEY_CACHE *keycache,
-                     File file, my_off_t filepos, int level,
-                     uchar *buff, uint length,
--                    uint block_length  __attribute__((unused)),
-+                    uint block_length  MY_ATTRIBUTE((unused)),
-                     int dont_write)
- {
-   my_bool locked_and_incremented= FALSE;
-@@ -4206,7 +4206,7 @@ static int flush_all_key_blocks(KEY_CACHE *keycache)
-     0 on success (always because it can't fail)
- */
- 
--int reset_key_cache_counters(const char *name __attribute__((unused)),
-+int reset_key_cache_counters(const char *name MY_ATTRIBUTE((unused)),
-                              KEY_CACHE *key_cache)
- {
-   DBUG_ENTER("reset_key_cache_counters");
-@@ -4230,9 +4230,9 @@ int reset_key_cache_counters(const char *name __attribute__((unused)),
- /*
-   Test if disk-cache is ok
- */
--static void test_key_cache(KEY_CACHE *keycache __attribute__((unused)),
--                           const char *where __attribute__((unused)),
--                           my_bool lock __attribute__((unused)))
-+static void test_key_cache(KEY_CACHE *keycache MY_ATTRIBUTE((unused)),
-+                           const char *where MY_ATTRIBUTE((unused)),
-+                           my_bool lock MY_ATTRIBUTE((unused)))
- {
-   /* TODO */
- }
---- a/mysys/mf_keycaches.c
-+++ b/mysys/mf_keycaches.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -77,7 +77,7 @@ static void safe_hash_entry_free(SAFE_HASH_ENTRY *entry)
- /* Get key and length for a SAFE_HASH_ENTRY */
- 
- static uchar *safe_hash_entry_get(SAFE_HASH_ENTRY *entry, size_t *length,
--                                  my_bool not_used __attribute__((unused)))
-+                                  my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=entry->length;
-   return (uchar*) entry->key;
---- a/mysys/mf_tempfile.c
-+++ b/mysys/mf_tempfile.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -55,8 +55,8 @@
- */
- 
- File create_temp_file(char *to, const char *dir, const char *prefix,
--		      int mode __attribute__((unused)),
--		      myf MyFlags __attribute__((unused)))
-+		      int mode MY_ATTRIBUTE((unused)),
-+		      myf MyFlags MY_ATTRIBUTE((unused)))
- {
-   File file= -1;
- #ifdef __WIN__
---- a/mysys/mf_unixpath.c
-+++ b/mysys/mf_unixpath.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -24,7 +24,7 @@
-   @param to   A pathname.
- */
- 
--void to_unix_path(char *to __attribute__((unused)))
-+void to_unix_path(char *to MY_ATTRIBUTE((unused)))
- {
- #if FN_LIBCHAR != '/'
-   {
---- a/mysys/my_access.c
-+++ b/mysys/my_access.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -187,9 +187,9 @@ static my_bool does_drive_exists(char drive_letter)
-  
-   @return TRUE if the file name is allowed, FALSE otherwise.
- */
--my_bool is_filename_allowed(const char *name __attribute__((unused)),
--                            size_t length __attribute__((unused)),
--                            my_bool allow_current_dir __attribute__((unused)))
-+my_bool is_filename_allowed(const char *name MY_ATTRIBUTE((unused)),
-+                            size_t length MY_ATTRIBUTE((unused)),
-+                            my_bool allow_current_dir MY_ATTRIBUTE((unused)))
- {
-   /* 
-     For Windows, check if the file name contains : character.
---- a/mysys/my_alarm.c
-+++ b/mysys/my_alarm.c
-@@ -1,5 +1,4 @@
--/* Copyright (C) 2000 MySQL AB
--   Use is subject to license terms
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -12,7 +11,7 @@
- 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
--   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
-+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
- 
- /* Function to set a varible when we got a alarm */
- /* Used by my_lock samt functions in m_alarm.h */
-@@ -24,7 +23,7 @@
- #ifdef HAVE_ALARM
- 
- 	/* ARGSUSED */
--sig_handler my_set_alarm_variable(int signo __attribute__((unused)))
-+sig_handler my_set_alarm_variable(int signo MY_ATTRIBUTE((unused)))
- {
-   my_have_got_alarm=1;			/* Tell program that time expired */
-   return;
---- a/mysys/my_alloc.c
-+++ b/mysys/my_alloc.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -44,7 +44,7 @@
- */
- 
- void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
--		     size_t pre_alloc_size __attribute__((unused)))
-+		     size_t pre_alloc_size MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("init_alloc_root");
-   DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
-@@ -94,7 +94,7 @@ void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
- */
- 
- void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
--                         size_t pre_alloc_size __attribute__((unused)))
-+                         size_t pre_alloc_size MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(alloc_root_inited(mem_root));
- 
---- a/mysys/my_bitmap.c
-+++ b/mysys/my_bitmap.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -81,14 +81,14 @@ void create_last_word_mask(MY_BITMAP *map)
- }
- 
- 
--static inline void bitmap_lock(MY_BITMAP *map __attribute__((unused)))
-+static inline void bitmap_lock(MY_BITMAP *map MY_ATTRIBUTE((unused)))
- {
-   if (map->mutex)
-     mysql_mutex_lock(map->mutex);
- }
- 
- 
--static inline void bitmap_unlock(MY_BITMAP *map __attribute__((unused)))
-+static inline void bitmap_unlock(MY_BITMAP *map MY_ATTRIBUTE((unused)))
- {
-   if (map->mutex)
-     mysql_mutex_unlock(map->mutex);
-@@ -136,7 +136,7 @@ static inline uint get_first_not_set(uint32 value, uint word_pos)
- 
- 
- my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits,
--		    my_bool thread_safe __attribute__((unused)))
-+		    my_bool thread_safe MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("bitmap_init");
-   if (!buf)
---- a/mysys/my_fopen.c
-+++ b/mysys/my_fopen.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -147,7 +147,7 @@ static FILE *my_win_freopen(const char *path, const char *mode, FILE *stream)
- 
- /* No close operation hook. */
- 
--static int no_close(void *cookie __attribute__((unused)))
-+static int no_close(void *cookie MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
---- a/mysys/my_fstream.c
-+++ b/mysys/my_fstream.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -171,7 +171,7 @@ size_t my_fwrite(FILE *stream, const uchar *Buffer, size_t Count, myf MyFlags)
- /* Seek to position in file */
- 
- my_off_t my_fseek(FILE *stream, my_off_t pos, int whence,
--		  myf MyFlags __attribute__((unused)))
-+		  myf MyFlags MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("my_fseek");
-   DBUG_PRINT("my",("stream: 0x%lx  pos: %lu  whence: %d  MyFlags: %d",
-@@ -183,7 +183,7 @@ my_off_t my_fseek(FILE *stream, my_off_t pos, int whence,
- 
- /* Tell current position of file */
- 
--my_off_t my_ftell(FILE *stream, myf MyFlags __attribute__((unused)))
-+my_off_t my_ftell(FILE *stream, myf MyFlags MY_ATTRIBUTE((unused)))
- {
-   off_t pos;
-   DBUG_ENTER("my_ftell");
---- a/mysys/my_gethwaddr.c
-+++ b/mysys/my_gethwaddr.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -228,14 +228,14 @@ my_bool my_gethwaddr(uchar *to)
- 
- #else /* __FreeBSD__ || __linux__ || __WIN__ */
- /* just fail */
--my_bool my_gethwaddr(uchar *to __attribute__((unused)))
-+my_bool my_gethwaddr(uchar *to MY_ATTRIBUTE((unused)))
- {
-   return 1;
- }
- #endif
- 
- #else /* MAIN */
--int main(int argc __attribute__((unused)),char **argv)
-+int main(int argc MY_ATTRIBUTE((unused)),char **argv)
- {
-   uchar mac[6];
-   uint i;
---- a/mysys/my_getsystime.c
-+++ b/mysys/my_getsystime.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -170,7 +170,7 @@ ulonglong my_micro_time_and_time(time_t *time_arg)
-   @retval current time.
- */
- 
--time_t my_time_possible_from_micro(ulonglong microtime __attribute__((unused)))
-+time_t my_time_possible_from_micro(ulonglong microtime MY_ATTRIBUTE((unused)))
- {
- #ifdef _WIN32
-   time_t t;
---- a/mysys/my_lib.c
-+++ b/mysys/my_lib.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -390,7 +390,7 @@ error:
- 
- 
- int my_fstat(File Filedes, MY_STAT *stat_area,
--             myf MyFlags __attribute__((unused)))
-+             myf MyFlags MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("my_fstat");
-   DBUG_PRINT("my",("fd: %d  MyFlags: %d", Filedes, MyFlags));
---- a/mysys/my_mess.c
-+++ b/mysys/my_mess.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -15,7 +15,7 @@
- 
- #include "mysys_priv.h"
- 
--void my_message_stderr(uint error __attribute__((unused)),
-+void my_message_stderr(uint error MY_ATTRIBUTE((unused)),
-                        const char *str, myf MyFlags)
- {
-   DBUG_ENTER("my_message_stderr");
---- a/mysys/my_static.c
-+++ b/mysys/my_static.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -74,12 +74,12 @@ void (*error_handler_hook)(uint error, const char *str, myf MyFlags)=
- void (*fatal_error_handler_hook)(uint error, const char *str, myf MyFlags)=
-   my_message_stderr;
- 
--static void proc_info_dummy(void *a __attribute__((unused)),
--                            const PSI_stage_info *b __attribute__((unused)),
--                            PSI_stage_info *c __attribute__((unused)),
--                            const char *d __attribute__((unused)),
--                            const char *e __attribute__((unused)),
--                            const unsigned int f __attribute__((unused)))
-+static void proc_info_dummy(void *a MY_ATTRIBUTE((unused)),
-+                            const PSI_stage_info *b MY_ATTRIBUTE((unused)),
-+                            PSI_stage_info *c MY_ATTRIBUTE((unused)),
-+                            const char *d MY_ATTRIBUTE((unused)),
-+                            const char *e MY_ATTRIBUTE((unused)),
-+                            const unsigned int f MY_ATTRIBUTE((unused)))
- {
-   return;
- }
---- a/mysys/my_symlink.c
-+++ b/mysys/my_symlink.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -107,7 +107,7 @@ int my_symlink(const char *content, const char *linkname, myf MyFlags)
- #endif
- 
- 
--int my_is_symlink(const char *filename __attribute__((unused)))
-+int my_is_symlink(const char *filename MY_ATTRIBUTE((unused)))
- {
- #if defined (HAVE_LSTAT) && defined (S_ISLNK)
-   struct stat stat_buff;
---- a/mysys/my_sync.c
-+++ b/mysys/my_sync.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -159,8 +159,8 @@ int my_sync_dir(const char *dir_name, myf my_flags)
- 
- #else /* NEED_EXPLICIT_SYNC_DIR */
- 
--int my_sync_dir(const char *dir_name __attribute__((unused)),
--                myf my_flags __attribute__((unused)))
-+int my_sync_dir(const char *dir_name MY_ATTRIBUTE((unused)),
-+                myf my_flags MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
-@@ -192,8 +192,8 @@ int my_sync_dir_by_file(const char *file_name, myf my_flags)
- 
- #else /* NEED_EXPLICIT_SYNC_DIR */
- 
--int my_sync_dir_by_file(const char *file_name __attribute__((unused)),
--                        myf my_flags __attribute__((unused)))
-+int my_sync_dir_by_file(const char *file_name MY_ATTRIBUTE((unused)),
-+                        myf my_flags MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
---- a/mysys/psi_noop.c
-+++ b/mysys/psi_noop.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -27,7 +27,7 @@
- 
- C_MODE_START
- 
--#define NNN __attribute__((unused))
-+#define NNN MY_ATTRIBUTE((unused))
- 
- static void register_mutex_noop(const char *category NNN,
-                                 PSI_mutex_info *info NNN,
-@@ -637,9 +637,9 @@ digest_end_noop(PSI_digest_locker *locker NNN,
- }
- 
- static int
--set_thread_connect_attrs_noop(const char *buffer __attribute__((unused)),
--                             uint length  __attribute__((unused)),
--                             const void *from_cs __attribute__((unused)))
-+set_thread_connect_attrs_noop(const char *buffer MY_ATTRIBUTE((unused)),
-+                             uint length  MY_ATTRIBUTE((unused)),
-+                             const void *from_cs MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
---- a/mysys/ptr_cmp.c
-+++ b/mysys/ptr_cmp.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -45,9 +45,9 @@ static int native_compare(size_t *length, unsigned char **a, unsigned char **b)
-   Special case for ORDER BY / GROUP BY CHAR(0) NOT NULL
-  */
- static
--int ptr_compare_zero_length(size_t *compare_length __attribute__((unused)),
--                            uchar **a __attribute__((unused)),
--                            uchar **b __attribute__((unused)))
-+int ptr_compare_zero_length(size_t *compare_length MY_ATTRIBUTE((unused)),
-+                            uchar **a MY_ATTRIBUTE((unused)),
-+                            uchar **b MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
-@@ -61,7 +61,7 @@ static int ptr_compare_3(size_t *compare_length, uchar **a, uchar **b);
- 	/* Get a pointer to a optimal byte-compare function for a given size */
- 
- #ifdef __sun
--qsort2_cmp get_ptr_compare (size_t size __attribute__((unused)))
-+qsort2_cmp get_ptr_compare (size_t size MY_ATTRIBUTE((unused)))
- {
-   return (qsort2_cmp) native_compare;
- }
---- a/mysys/stacktrace.c
-+++ b/mysys/stacktrace.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -159,8 +159,8 @@ void my_safe_print_str(const char* val, int max_len)
- /* Use Solaris' symbolic stack trace routine. */
- #include <ucontext.h>
- 
--void my_print_stacktrace(uchar* stack_bottom __attribute__((unused)), 
--                         ulong thread_stack __attribute__((unused)))
-+void my_print_stacktrace(uchar* stack_bottom MY_ATTRIBUTE((unused)), 
-+                         ulong thread_stack MY_ATTRIBUTE((unused)))
- {
-   if (printstack(fileno(stderr)) == -1)
-     my_safe_printf_stderr("%s",
-@@ -178,9 +178,9 @@ void my_print_stacktrace(uchar* stack_bottom __attribute__((unused)),
- 
- #if BACKTRACE_DEMANGLE
- 
--char __attribute__ ((weak)) *
--my_demangle(const char *mangled_name __attribute__((unused)),
--            int *status __attribute__((unused)))
-+char MY_ATTRIBUTE ((weak)) *
-+my_demangle(const char *mangled_name MY_ATTRIBUTE((unused)),
-+            int *status MY_ATTRIBUTE((unused)))
- {
-   return NULL;
- }
---- a/mysys/testhash.c
-+++ b/mysys/testhash.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -39,7 +39,7 @@ my_bool hash_check(HASH *hash);
- void free_record(void *record);
- 
- static uchar *hash2_key(const uchar *rec,uint *length,
--		       my_bool not_used __attribute__((unused)))
-+		       my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=(uint) (uchar) rec[reclength-1];
-   return (uchar*) rec;
---- a/mysys/thr_alarm.c
-+++ b/mysys/thr_alarm.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -60,9 +60,9 @@ static void *alarm_handler(void *arg);
- #define reschedule_alarms() pthread_kill(alarm_thread,THR_SERVER_ALARM)
- #endif
- 
--static sig_handler thread_alarm(int sig __attribute__((unused)));
-+static sig_handler thread_alarm(int sig MY_ATTRIBUTE((unused)));
- 
--static int compare_ulong(void *not_used __attribute__((unused)),
-+static int compare_ulong(void *not_used MY_ATTRIBUTE((unused)),
- 			 uchar *a_ptr,uchar* b_ptr)
- {
-   ulong a=*((ulong*) a_ptr),b= *((ulong*) b_ptr);
-@@ -274,7 +274,7 @@ void thr_end_alarm(thr_alarm_t *alarmed)
-   every second.
- */
- 
--sig_handler process_alarm(int sig __attribute__((unused)))
-+sig_handler process_alarm(int sig MY_ATTRIBUTE((unused)))
- {
-   sigset_t old_mask;
- /*
-@@ -304,7 +304,7 @@ sig_handler process_alarm(int sig __attribute__((unused)))
- }
- 
- 
--static sig_handler process_alarm_part2(int sig __attribute__((unused)))
-+static sig_handler process_alarm_part2(int sig MY_ATTRIBUTE((unused)))
- {
-   ALARM *alarm_data;
-   DBUG_ENTER("process_alarm");
-@@ -492,7 +492,7 @@ void thr_alarm_info(ALARM_INFO *info)
- */
- 
- 
--static sig_handler thread_alarm(int sig __attribute__((unused)))
-+static sig_handler thread_alarm(int sig MY_ATTRIBUTE((unused)))
- {
- #ifdef MAIN
-   printf("thread_alarm\n"); fflush(stdout);
-@@ -511,7 +511,7 @@ static sig_handler thread_alarm(int sig __attribute__((unused)))
- /* set up a alarm thread with uses 'sleep' to sleep between alarms */
- 
- #ifdef USE_ALARM_THREAD
--static void *alarm_handler(void *arg __attribute__((unused)))
-+static void *alarm_handler(void *arg MY_ATTRIBUTE((unused)))
- {
-   int error;
-   struct timespec abstime;
-@@ -580,7 +580,7 @@ void thr_alarm_kill(my_thread_id thread_id)
-   /* Can't do this yet */
- }
- 
--sig_handler process_alarm(int sig __attribute__((unused)))
-+sig_handler process_alarm(int sig MY_ATTRIBUTE((unused)))
- {
-   /* Can't do this yet */
- }
-@@ -774,7 +774,7 @@ static sig_handler print_signal_warning(int sig)
- #endif /* USE_ONE_SIGNAL_HAND */
- 
- 
--static void *signal_hand(void *arg __attribute__((unused)))
-+static void *signal_hand(void *arg MY_ATTRIBUTE((unused)))
- {
-   sigset_t set;
-   int sig,error,err_count=0;;
-@@ -842,7 +842,7 @@ static void *signal_hand(void *arg __attribute__((unused)))
- }
- 
- 
--int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char **argv MY_ATTRIBUTE((unused)))
- {
-   pthread_t tid;
-   pthread_attr_t thr_attr;
-@@ -931,7 +931,7 @@ int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
- 
- #else /* !defined(DONT_USE_ALARM_THREAD) */
- 
--int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char **argv MY_ATTRIBUTE((unused)))
- {
-   printf("thr_alarm disabled with DONT_USE_THR_ALARM\n");
-   exit(1);
---- a/mysys/thr_lock.c
-+++ b/mysys/thr_lock.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1512,21 +1512,21 @@ static ulong sum=0;
- 
- /* The following functions is for WRITE_CONCURRENT_INSERT */
- 
--static void test_get_status(void* param __attribute__((unused)),
--                            int concurrent_insert __attribute__((unused)))
-+static void test_get_status(void* param MY_ATTRIBUTE((unused)),
-+                            int concurrent_insert MY_ATTRIBUTE((unused)))
- {
- }
- 
--static void test_update_status(void* param __attribute__((unused)))
-+static void test_update_status(void* param MY_ATTRIBUTE((unused)))
- {
- }
- 
--static void test_copy_status(void* to __attribute__((unused)) ,
--			     void *from __attribute__((unused)))
-+static void test_copy_status(void* to MY_ATTRIBUTE((unused)) ,
-+			     void *from MY_ATTRIBUTE((unused)))
- {
- }
- 
--static my_bool test_check_status(void* param __attribute__((unused)))
-+static my_bool test_check_status(void* param MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
-@@ -1583,7 +1583,7 @@ static void *test_thread(void *arg)
- }
- 
- 
--int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char **argv MY_ATTRIBUTE((unused)))
- {
-   pthread_t tid;
-   pthread_attr_t thr_attr;
---- a/mysys/thr_mutex.c
-+++ b/mysys/thr_mutex.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -53,7 +53,7 @@ void safe_mutex_global_init(void)
- 
- 
- int safe_mutex_init(safe_mutex_t *mp,
--		    const pthread_mutexattr_t *attr __attribute__((unused)),
-+		    const pthread_mutexattr_t *attr MY_ATTRIBUTE((unused)),
- 		    const char *file,
- 		    uint line)
- {
-@@ -370,7 +370,7 @@ int safe_mutex_destroy(safe_mutex_t *mp, const char *file, uint line)
-    This is ok, as this thread may not yet have been exited.
- */
- 
--void safe_mutex_end(FILE *file __attribute__((unused)))
-+void safe_mutex_end(FILE *file MY_ATTRIBUTE((unused)))
- {
-   if (!safe_mutex_count)			/* safetly */
-     pthread_mutex_destroy(&THR_LOCK_mutex);
---- a/mysys/waiting_threads.c
-+++ b/mysys/waiting_threads.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -295,9 +295,9 @@ uint32 wt_cycle_stats[2][WT_CYCLE_STATS+1];
- uint32 wt_success_stats;
- 
- static my_atomic_rwlock_t
--  cycle_stats_lock __attribute__((unused)),
--  wait_stats_lock __attribute__((unused)),
--  success_stats_lock __attribute__((unused));
-+  cycle_stats_lock MY_ATTRIBUTE((unused)),
-+  wait_stats_lock MY_ATTRIBUTE((unused)),
-+  success_stats_lock MY_ATTRIBUTE((unused));
- 
- #ifdef SAFE_STATISTICS
- #define incr(VAR, LOCK)                           \
---- a/mysys_ssl/my_default.cc
-+++ b/mysys_ssl/my_default.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1279,7 +1279,7 @@ static int add_directory(MEM_ROOT *alloc, const char *dir, const char **dirs)
-   char buf[FN_REFLEN];
-   size_t len;
-   char *p;
--  my_bool err __attribute__((unused));
-+  my_bool err MY_ATTRIBUTE((unused));
- 
-   len= normalize_dirname(buf, dir);
-   if (!(p= strmake_root(alloc, buf, len)))
---- a/mysys_ssl/my_getopt.cc
-+++ b/mysys_ssl/my_getopt.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1370,7 +1370,7 @@ static void init_one_value(const struct my_option *option, void *variable,
- */
- 
- static void fini_one_value(const struct my_option *option, void *variable,
--			   longlong value __attribute__ ((unused)))
-+			   longlong value MY_ATTRIBUTE ((unused)))
- {
-   DBUG_ENTER("fini_one_value");
-   switch ((option->var_type & GET_TYPE_MASK)) {
---- a/plugin/audit_null/audit_null.c
-+++ b/plugin/audit_null/audit_null.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-@@ -18,9 +18,7 @@
- #include <mysql/plugin.h>
- #include <mysql/plugin_audit.h>
- 
--#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__)  || __GNUC__ == 2 && __GNUC_MINOR__ < 8)
--#define __attribute__(A)
--#endif
-+#include "my_attribute.h"
- 
- static volatile int number_of_calls; /* for SHOW STATUS, see below */
- /* Count MYSQL_AUDIT_GENERAL_CLASS event instances */
-@@ -48,7 +46,7 @@ static volatile int number_of_calls_connection_change_user;
-     1                    failure (cannot happen)
- */
- 
--static int audit_null_plugin_init(void *arg __attribute__((unused)))
-+static int audit_null_plugin_init(void *arg MY_ATTRIBUTE((unused)))
- {
-   number_of_calls= 0;
-   number_of_calls_general_log= 0;
-@@ -75,7 +73,7 @@ static int audit_null_plugin_init(void *arg __attribute__((unused)))
- 
- */
- 
--static int audit_null_plugin_deinit(void *arg __attribute__((unused)))
-+static int audit_null_plugin_deinit(void *arg MY_ATTRIBUTE((unused)))
- {
-   return(0);
- }
-@@ -91,7 +89,7 @@ static int audit_null_plugin_deinit(void *arg __attribute__((unused)))
-   DESCRIPTION
- */
- 
--static void audit_null_notify(MYSQL_THD thd __attribute__((unused)),
-+static void audit_null_notify(MYSQL_THD thd MY_ATTRIBUTE((unused)),
-                               unsigned int event_class,
-                               const void *event)
- {
---- a/plugin/auth/dialog.c
-+++ b/plugin/auth/dialog.c
-@@ -1,4 +1,4 @@
--/*  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-+/*  Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-     This program is free software; you can redistribute it and/or
-     modify it under the terms of the GNU General Public License as
-@@ -207,8 +207,8 @@ typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql,
- 
- static mysql_authentication_dialog_ask_t ask;
- 
--static char *builtin_ask(MYSQL *mysql __attribute__((unused)),
--                         int type __attribute__((unused)),
-+static char *builtin_ask(MYSQL *mysql MY_ATTRIBUTE((unused)),
-+                         int type MY_ATTRIBUTE((unused)),
-                          const char *prompt,
-                          char *buf, int buf_len)
- {
-@@ -309,10 +309,10 @@ static int perform_dialog(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
-   or fall back to the default implementation.
- */
- 
--static int init_dialog(char *unused1   __attribute__((unused)), 
--                       size_t unused2  __attribute__((unused)), 
--                       int unused3     __attribute__((unused)), 
--                       va_list unused4 __attribute__((unused)))
-+static int init_dialog(char *unused1   MY_ATTRIBUTE((unused)), 
-+                       size_t unused2  MY_ATTRIBUTE((unused)), 
-+                       int unused3     MY_ATTRIBUTE((unused)), 
-+                       va_list unused4 MY_ATTRIBUTE((unused)))
- {
-   void *sym= dlsym(RTLD_DEFAULT, "mysql_authentication_dialog_ask");
-   ask= sym ? (mysql_authentication_dialog_ask_t) sym : builtin_ask;
---- a/plugin/auth/mysql_no_login.c
-+++ b/plugin/auth/mysql_no_login.c
-@@ -1,4 +1,4 @@
--/*  Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved.
-+/*  Copyright (c) 2014, 2016 Oracle and/or its affiliates. All rights reserved.
- 
-     This program is free software; you can redistribute it and/or
-     modify it under the terms of the GNU General Public License as
-@@ -32,8 +32,8 @@
- #include <stdlib.h>
- 
- static int mysql_no_login(
--    MYSQL_PLUGIN_VIO *vio __attribute__((unused)),
--    MYSQL_SERVER_AUTH_INFO *info __attribute__((unused)))
-+    MYSQL_PLUGIN_VIO *vio MY_ATTRIBUTE((unused)),
-+    MYSQL_SERVER_AUTH_INFO *info MY_ATTRIBUTE((unused)))
- {
-   return CR_ERROR;
- }
---- a/plugin/daemon_example/daemon_example.cc
-+++ b/plugin/daemon_example/daemon_example.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -26,10 +26,10 @@
- #include "sql_plugin.h"                         // st_plugin_int
- 
- /*
--  Disable __attribute__() on non-gcc compilers.
-+  Disable MY_ATTRIBUTE() on non-gcc compilers.
- */
--#if !defined(__attribute__) && !defined(__GNUC__)
--#define __attribute__(A)
-+#if !defined(MY_ATTRIBUTE) && !defined(__GNUC__)
-+#define MY_ATTRIBUTE(A)
- #endif
- 
- 
---- a/plugin/fulltext/plugin_example.c
-+++ b/plugin/fulltext/plugin_example.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -17,9 +17,7 @@
- #include <ctype.h>
- #include <mysql/plugin.h>
- 
--#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__)  || __GNUC__ == 2 && __GNUC_MINOR__ < 8)
--#define __attribute__(A)
--#endif
-+#include "my_attribute.h"
- 
- static long number_of_calls= 0; /* for SHOW STATUS, see below */
- 
-@@ -62,7 +60,7 @@ static long number_of_calls= 0; /* for SHOW STATUS, see below */
-     1                    failure (cannot happen)
- */
- 
--static int simple_parser_plugin_init(void *arg __attribute__((unused)))
-+static int simple_parser_plugin_init(void *arg MY_ATTRIBUTE((unused)))
- {
-   return(0);
- }
-@@ -81,7 +79,7 @@ static int simple_parser_plugin_init(void *arg __attribute__((unused)))
- 
- */
- 
--static int simple_parser_plugin_deinit(void *arg __attribute__((unused)))
-+static int simple_parser_plugin_deinit(void *arg MY_ATTRIBUTE((unused)))
- {
-   return(0);
- }
-@@ -102,7 +100,7 @@ static int simple_parser_plugin_deinit(void *arg __attribute__((unused)))
- */
- 
- static int simple_parser_init(MYSQL_FTPARSER_PARAM *param
--                              __attribute__((unused)))
-+                              MY_ATTRIBUTE((unused)))
- {
-   return(0);
- }
-@@ -123,7 +121,7 @@ static int simple_parser_init(MYSQL_FTPARSER_PARAM *param
- */
- 
- static int simple_parser_deinit(MYSQL_FTPARSER_PARAM *param
--                                __attribute__((unused)))
-+                                MY_ATTRIBUTE((unused)))
- {
-   return(0);
- }
---- a/plugin/password_validation/validate_password.cc
-+++ b/plugin/password_validation/validate_password.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -24,12 +24,12 @@
- 
- 
- /*  
--  __attribute__(A) needs to be defined for Windows else complier
-+  MY_ATTRIBUTE(A) needs to be defined for Windows else complier
-   do not recognise it. Argument in plugin_init and plugin_deinit
-   Used in other plugins as well.
- */
--#if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__)  || __GNUC__ == 2 && __GNUC_MINOR__ < 8)
--#define __attribute__(A)
-+#if !defined(MY_ATTRIBUTE) && (defined(__cplusplus) || !defined(__GNUC__)  || __GNUC__ == 2 && __GNUC_MINOR__ < 8)
-+#define MY_ATTRIBUTE(A)
- #endif
- 
- #define MAX_DICTIONARY_FILE_LENGTH    1024 * 1024
-@@ -367,7 +367,7 @@ static int validate_password_init(MYSQL_PLUGIN plugin_info)
-   It empty the std::set and returns 0
- */
- 
--static int validate_password_deinit(void *arg __attribute__((unused)))
-+static int validate_password_deinit(void *arg MY_ATTRIBUTE((unused)))
- {
-   free_dictionary_file();
-   mysql_rwlock_destroy(&LOCK_dict_file);
-@@ -380,8 +380,8 @@ static int validate_password_deinit(void *arg __attribute__((unused)))
-   the cache and re-load the new dictionary file.
- */
- static void
--dictionary_update(MYSQL_THD thd __attribute__((unused)),
--                  struct st_mysql_sys_var *var __attribute__((unused)),
-+dictionary_update(MYSQL_THD thd MY_ATTRIBUTE((unused)),
-+                  struct st_mysql_sys_var *var MY_ATTRIBUTE((unused)),
-                   void *var_ptr, const void *save)
- {
-   *(const char**)var_ptr= *(const char**)save;
-@@ -396,8 +396,8 @@ dictionary_update(MYSQL_THD thd __attribute__((unused)),
-   4. validate_password_special_char_count
- */
- static void
--length_update(MYSQL_THD thd __attribute__((unused)),
--              struct st_mysql_sys_var *var __attribute__((unused)),
-+length_update(MYSQL_THD thd MY_ATTRIBUTE((unused)),
-+              struct st_mysql_sys_var *var MY_ATTRIBUTE((unused)),
-               void *var_ptr, const void *save)
- {
-   int new_validate_password_length;
---- a/regex/regcomp.c
-+++ b/regex/regcomp.c
-@@ -3,7 +3,7 @@
- 
-    This file was modified by Oracle on 2015-05-18 for 32-bit compatibility.
- 
--   Modifications copyright (c) 2015, Oracle and/or its affiliates. All rights
-+   Modifications copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights
-    reserved. */
- 
- #include <my_global.h>
-@@ -1258,8 +1258,8 @@ register char *cp;
-  */
- static void
- mcinvert(p, cs)
--  register struct parse *p __attribute__((unused));
--  register cset *cs __attribute__((unused));
-+  register struct parse *p MY_ATTRIBUTE((unused));
-+  register cset *cs MY_ATTRIBUTE((unused));
- {
- 	assert(cs->multis == NULL);	/* xxx */
- }
-@@ -1273,8 +1273,8 @@ mcinvert(p, cs)
-  */
- static void
- mccase(p, cs)
--register struct parse *p __attribute__((unused));
--register cset *cs __attribute__((unused));
-+register struct parse *p MY_ATTRIBUTE((unused));
-+register cset *cs MY_ATTRIBUTE((unused));
- {
- 	assert(cs->multis == NULL);	/* xxx */
- }
---- a/sql-common/client.c
-+++ b/sql-common/client.c
-@@ -1741,12 +1741,12 @@ mysql_init(MYSQL *mysql)
- #define strdup_if_not_null(A) (A) == 0 ? 0 : my_strdup((A),MYF(MY_WME))
- 
- my_bool STDCALL
--mysql_ssl_set(MYSQL *mysql __attribute__((unused)) ,
--	      const char *key __attribute__((unused)),
--	      const char *cert __attribute__((unused)),
--	      const char *ca __attribute__((unused)),
--	      const char *capath __attribute__((unused)),
--	      const char *cipher __attribute__((unused)))
-+mysql_ssl_set(MYSQL *mysql MY_ATTRIBUTE((unused)) ,
-+	      const char *key MY_ATTRIBUTE((unused)),
-+	      const char *cert MY_ATTRIBUTE((unused)),
-+	      const char *ca MY_ATTRIBUTE((unused)),
-+	      const char *capath MY_ATTRIBUTE((unused)),
-+	      const char *cipher MY_ATTRIBUTE((unused)))
- {
-   my_bool result= 0;
-   DBUG_ENTER("mysql_ssl_set");
-@@ -1771,7 +1771,7 @@ mysql_ssl_set(MYSQL *mysql __attribute__((unused)) ,
- #if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- 
- static void
--mysql_ssl_free(MYSQL *mysql __attribute__((unused)))
-+mysql_ssl_free(MYSQL *mysql MY_ATTRIBUTE((unused)))
- {
-   struct st_VioSSLFd *ssl_fd= (struct st_VioSSLFd*) mysql->connector_fd;
-   DBUG_ENTER("mysql_ssl_free");
-@@ -1817,7 +1817,7 @@ mysql_ssl_free(MYSQL *mysql __attribute__((unused)))
- */
- 
- const char * STDCALL
--mysql_get_ssl_cipher(MYSQL *mysql __attribute__((unused)))
-+mysql_get_ssl_cipher(MYSQL *mysql MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("mysql_get_ssl_cipher");
- #if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
-@@ -4085,8 +4085,8 @@ static void mysql_prune_stmt_list(MYSQL *mysql)
-     should also be reflected there.
- */
- 
--void mysql_detach_stmt_list(LIST **stmt_list __attribute__((unused)),
--                            const char *func_name __attribute__((unused)))
-+void mysql_detach_stmt_list(LIST **stmt_list MY_ATTRIBUTE((unused)),
-+                            const char *func_name MY_ATTRIBUTE((unused)))
- {
- #ifdef MYSQL_CLIENT
-   /* Reset connection handle in all prepared statements. */
-@@ -4598,7 +4598,7 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg)
- */
- uchar *
- get_attr_key(LEX_STRING *part, size_t *length,
--             my_bool not_used __attribute__((unused)))
-+             my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= part[0].length;
-   return (uchar *) part[0].str;
---- a/sql/binlog.cc
-+++ b/sql/binlog.cc
-@@ -8613,7 +8613,7 @@ template <class RowsEventT> Rows_log_event*
- THD::binlog_prepare_pending_rows_event(TABLE* table, uint32 serv_id,
-                                        size_t needed,
-                                        bool is_transactional,
--				       RowsEventT *hint __attribute__((unused)),
-+				       RowsEventT *hint MY_ATTRIBUTE((unused)),
-                                        const uchar* extra_row_info)
- {
-   DBUG_ENTER("binlog_prepare_pending_rows_event");
---- a/sql/binlog.h
-+++ b/sql/binlog.h
-@@ -1,5 +1,5 @@
- #ifndef BINLOG_H_INCLUDED
--/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -86,7 +86,7 @@ public:
- 
-     /** Lock for protecting the queue. */
-     mysql_mutex_t m_lock;
--  } __attribute__((aligned(CPU_LEVEL1_DCACHE_LINESIZE)));
-+  } MY_ATTRIBUTE((aligned(CPU_LEVEL1_DCACHE_LINESIZE)));
- 
- public:
-   Stage_manager()
---- a/sql/field.cc
-+++ b/sql/field.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1290,7 +1290,7 @@ out_of_range:
- */
- type_conversion_status
- Field_num::store_time(MYSQL_TIME *ltime,
--                      uint8 dec_arg __attribute__((unused)))
-+                      uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   longlong nr= TIME_to_ulonglong_round(ltime);
-   return store(ltime->neg ? -nr : nr, 0);
-@@ -1444,8 +1444,8 @@ bool Field::send_binary(Protocol *protocol)
-    master's field size, @c false otherwise.
- */
- bool Field::compatible_field_size(uint field_metadata,
--                                  Relay_log_info *rli_arg __attribute__((unused)),
--                                  uint16 mflags __attribute__((unused)),
-+                                  Relay_log_info *rli_arg MY_ATTRIBUTE((unused)),
-+                                  uint16 mflags MY_ATTRIBUTE((unused)),
-                                   int *order_var)
- {
-   uint const source_size= pack_length_from_metadata(field_metadata);
-@@ -1508,7 +1508,7 @@ Field::store(const char *to, uint length, const CHARSET_INFO *cs,
- */
- uchar *
- Field::pack(uchar *to, const uchar *from, uint max_length,
--            bool low_byte_first __attribute__((unused)))
-+            bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint32 length= pack_length();
-   set_if_smaller(length, max_length);
-@@ -1548,7 +1548,7 @@ Field::pack(uchar *to, const uchar *from, uint max_length,
- */
- const uchar *
- Field::unpack(uchar* to, const uchar *from, uint param_data,
--              bool low_byte_first __attribute__((unused)))
-+              bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint length=pack_length();
-   int from_type= 0;
-@@ -1860,7 +1860,7 @@ bool Field::optimize_range(uint idx, uint part)
- 
- 
- Field *Field::new_field(MEM_ROOT *root, TABLE *new_table,
--                        bool keep_type __attribute__((unused)))
-+                        bool keep_type MY_ATTRIBUTE((unused)))
- {
-   Field *tmp= clone(root);
-   if (tmp == NULL)
-@@ -2435,7 +2435,7 @@ longlong Field_decimal::val_int(void)
- }
- 
- 
--String *Field_decimal::val_str(String *val_buffer __attribute__((unused)),
-+String *Field_decimal::val_str(String *val_buffer MY_ATTRIBUTE((unused)),
- 			       String *val_ptr)
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-@@ -2806,7 +2806,7 @@ Field_new_decimal::store_decimal(const my_decimal *decimal_value)
- 
- type_conversion_status
- Field_new_decimal::store_time(MYSQL_TIME *ltime,
--                                  uint8 dec_arg __attribute__((unused)))
-+                                  uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   my_decimal decimal_value;
-   return store_value(date2my_decimal(ltime, &decimal_value));
-@@ -2847,7 +2847,7 @@ my_decimal* Field_new_decimal::val_decimal(my_decimal *decimal_value)
- 
- 
- String *Field_new_decimal::val_str(String *val_buffer,
--                                   String *val_ptr __attribute__((unused)))
-+                                   String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   my_decimal decimal_value;
-@@ -2960,8 +2960,8 @@ uint Field_new_decimal::pack_length_from_metadata(uint field_metadata)
-    @return @c true
- */
- bool Field_new_decimal::compatible_field_size(uint field_metadata,
--                                              Relay_log_info * __attribute__((unused)),
--                                              uint16 mflags __attribute__((unused)),
-+                                              Relay_log_info * MY_ATTRIBUTE((unused)),
-+                                              uint16 mflags MY_ATTRIBUTE((unused)),
-                                               int *order_var)
- {
-   uint const source_precision= (field_metadata >> 8U) & 0x00ff;
-@@ -3161,7 +3161,7 @@ longlong Field_tiny::val_int(void)
- 
- 
- String *Field_tiny::val_str(String *val_buffer,
--			    String *val_ptr __attribute__((unused)))
-+			    String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   const CHARSET_INFO *cs= &my_charset_numeric;
-@@ -3376,7 +3376,7 @@ longlong Field_short::val_int(void)
- 
- 
- String *Field_short::val_str(String *val_buffer,
--			     String *val_ptr __attribute__((unused)))
-+			     String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   const CHARSET_INFO *cs= &my_charset_numeric;
-@@ -3596,7 +3596,7 @@ longlong Field_medium::val_int(void)
- 
- 
- String *Field_medium::val_str(String *val_buffer,
--			      String *val_ptr __attribute__((unused)))
-+			      String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   const CHARSET_INFO *cs= &my_charset_numeric;
-@@ -3830,7 +3830,7 @@ longlong Field_long::val_int(void)
- }
- 
- String *Field_long::val_str(String *val_buffer,
--			    String *val_ptr __attribute__((unused)))
-+			    String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   const CHARSET_INFO *cs= &my_charset_numeric;
-@@ -4079,7 +4079,7 @@ longlong Field_longlong::val_int(void)
- 
- 
- String *Field_longlong::val_str(String *val_buffer,
--				String *val_ptr __attribute__((unused)))
-+				String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   const CHARSET_INFO *cs= &my_charset_numeric;
-   uint length;
-@@ -4199,7 +4199,7 @@ Field_real::unpack(uchar *to, const uchar *from,
- 
- type_conversion_status
- Field_real::store_time(MYSQL_TIME *ltime,
--                       uint8 dec_arg __attribute__((unused)))
-+                       uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   double nr= TIME_to_double(ltime);
-   return store(ltime->neg ? -nr : nr);
-@@ -4289,7 +4289,7 @@ longlong Field_float::val_int(void)
- 
- 
- String *Field_float::val_str(String *val_buffer,
--			     String *val_ptr __attribute__((unused)))
-+			     String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   DBUG_ASSERT(!zerofill || field_length <= MAX_FIELD_CHARLENGTH);
-@@ -4625,7 +4625,7 @@ bool Field_real::get_time(MYSQL_TIME *ltime)
- 
- 
- String *Field_double::val_str(String *val_buffer,
--			      String *val_ptr __attribute__((unused)))
-+			      String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   DBUG_ASSERT(!zerofill || field_length <= MAX_FIELD_CHARLENGTH);
-@@ -5089,7 +5089,7 @@ Field_temporal_with_date::convert_number_to_TIME(longlong nr,
- 
- type_conversion_status
- Field_temporal_with_date::store_time(MYSQL_TIME *ltime,
--                                     uint8 dec_arg __attribute__((unused)))
-+                                     uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_WRITE;
-   type_conversion_status error;
-@@ -5480,7 +5480,7 @@ int Field_timestamp::cmp(const uchar *a_ptr, const uchar *b_ptr)
- }
- 
- 
--void Field_timestamp::make_sort_key(uchar *to,uint length __attribute__((unused)))
-+void Field_timestamp::make_sort_key(uchar *to,uint length MY_ATTRIBUTE((unused)))
- {
- #ifdef WORDS_BIGENDIAN
-   if (!table || !table->s->db_low_byte_first)
-@@ -5699,7 +5699,7 @@ Field_time_common::convert_number_to_TIME(longlong nr, bool unsigned_val,
- 
- type_conversion_status
- Field_time_common::store_time(MYSQL_TIME *ltime,
--                              uint8 dec_arg __attribute__((unused)))
-+                              uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   /* Check if seconds or minutes are out of range */
-   if (ltime->second >= 60 || ltime->minute >= 60)
-@@ -5725,7 +5725,7 @@ Field_time_common::store_internal_with_round(MYSQL_TIME *ltime, int *warnings)
- 
- 
- String *Field_time_common::val_str(String *val_buffer,
--                                   String *val_ptr __attribute__((unused)))
-+                                   String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   MYSQL_TIME ltime;
-@@ -6039,7 +6039,7 @@ type_conversion_status Field_year::store(double nr)
- 
- type_conversion_status
- Field_year::store_time(MYSQL_TIME *ltime,
--                       uint8 dec_arg __attribute__((unused)))
-+                       uint8 dec_arg MY_ATTRIBUTE((unused)))
- {
-   if (ltime->time_type != MYSQL_TIMESTAMP_DATETIME &&
-       ltime->time_type != MYSQL_TIMESTAMP_DATE)
-@@ -6103,7 +6103,7 @@ longlong Field_year::val_int(void)
- 
- 
- String *Field_year::val_str(String *val_buffer,
--			    String *val_ptr __attribute__((unused)))
-+			    String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(field_length < 5);
-   val_buffer->alloc(5);
-@@ -6203,7 +6203,7 @@ longlong Field_newdate::val_time_temporal()
- 
- 
- String *Field_newdate::val_str(String *val_buffer,
--			       String *val_ptr __attribute__((unused)))
-+			       String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   val_buffer->alloc(field_length);
-@@ -6393,7 +6393,7 @@ longlong Field_datetime::val_int()
-   Using my_datetime_number_to_str() instead of my_datetime_to_str().
- */
- String *Field_datetime::val_str(String *val_buffer,
--				String *val_ptr __attribute__((unused)))
-+				String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   val_buffer->alloc(field_length + 1);
-@@ -6787,7 +6787,7 @@ longlong Field_string::val_int(void)
- }
- 
- 
--String *Field_string::val_str(String *val_buffer __attribute__((unused)),
-+String *Field_string::val_str(String *val_buffer MY_ATTRIBUTE((unused)),
- 			      String *val_ptr)
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-@@ -6845,7 +6845,7 @@ check_field_for_37426(const void *param_arg)
- bool
- Field_string::compatible_field_size(uint field_metadata,
-                                     Relay_log_info *rli_arg,
--                                    uint16 mflags __attribute__((unused)),
-+                                    uint16 mflags MY_ATTRIBUTE((unused)),
-                                     int *order_var)
- {
- #ifdef HAVE_REPLICATION
-@@ -6883,7 +6883,7 @@ int Field_string::cmp(const uchar *a_ptr, const uchar *b_ptr)
- 
- void Field_string::make_sort_key(uchar *to, uint length)
- {
--  uint tmp __attribute__((unused))=
-+  uint tmp MY_ATTRIBUTE((unused))=
-     field_charset->coll->strnxfrm(field_charset,
-                                   to, length, char_length(),
-                                   ptr, field_length,
-@@ -6915,7 +6915,7 @@ void Field_string::sql_type(String &res) const
- 
- uchar *Field_string::pack(uchar *to, const uchar *from,
-                           uint max_length,
--                          bool low_byte_first __attribute__((unused)))
-+                          bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint length=      min(field_length,max_length);
-   uint local_char_length= max_length/field_charset->mbmaxlen;
-@@ -6974,7 +6974,7 @@ const uchar *
- Field_string::unpack(uchar *to,
-                      const uchar *from,
-                      uint param_data,
--                     bool low_byte_first __attribute__((unused)))
-+                     bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint from_length, length;
- 
-@@ -7229,7 +7229,7 @@ longlong Field_varstring::val_int(void)
-   return result;
- }
- 
--String *Field_varstring::val_str(String *val_buffer __attribute__((unused)),
-+String *Field_varstring::val_str(String *val_buffer MY_ATTRIBUTE((unused)),
- 				 String *val_ptr)
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-@@ -7391,7 +7391,7 @@ uint32 Field_varstring::data_length()
- 
- uchar *Field_varstring::pack(uchar *to, const uchar *from,
-                              uint max_length,
--                             bool low_byte_first __attribute__((unused)))
-+                             bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint length= length_bytes == 1 ? (uint) *from : uint2korr(from);
-   set_if_smaller(max_length, field_length);
-@@ -7428,7 +7428,7 @@ uchar *Field_varstring::pack(uchar *to, const uchar *from,
- const uchar *
- Field_varstring::unpack(uchar *to, const uchar *from,
-                         uint param_data,
--                        bool low_byte_first __attribute__((unused)))
-+                        bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   uint length;
-   uint l_bytes= (param_data && (param_data < field_length)) ? 
-@@ -7887,7 +7887,7 @@ longlong Field_blob::val_int(void)
-   return my_strntoll(charset(),blob,length,10,NULL,&not_used);
- }
- 
--String *Field_blob::val_str(String *val_buffer __attribute__((unused)),
-+String *Field_blob::val_str(String *val_buffer MY_ATTRIBUTE((unused)),
- 			    String *val_ptr)
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-@@ -8539,7 +8539,7 @@ int Field_enum::do_save_field_metadata(uchar *metadata_ptr)
- }
- 
- 
--String *Field_enum::val_str(String *val_buffer __attribute__((unused)),
-+String *Field_enum::val_str(String *val_buffer MY_ATTRIBUTE((unused)),
- 			    String *val_ptr)
- {
-   uint tmp=(uint) Field_enum::val_int();
-@@ -8683,7 +8683,7 @@ type_conversion_status Field_set::store(longlong nr, bool unsigned_val)
- 
- 
- String *Field_set::val_str(String *val_buffer,
--			   String *val_ptr __attribute__((unused)))
-+			   String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ulonglong tmp=(ulonglong) Field_enum::val_int();
-   uint bitnr=0;
-@@ -9148,7 +9148,7 @@ longlong Field_bit::val_int(void)
- 
- 
- String *Field_bit::val_str(String *val_buffer,
--                           String *val_ptr __attribute__((unused)))
-+                           String *val_ptr MY_ATTRIBUTE((unused)))
- {
-   ASSERT_COLUMN_MARKED_FOR_READ;
-   char buff[sizeof(longlong)];
-@@ -9308,7 +9308,7 @@ uint Field_bit::pack_length_from_metadata(uint field_metadata)
- */
- bool
- Field_bit::compatible_field_size(uint field_metadata,
--                                 Relay_log_info * __attribute__((unused)),
-+                                 Relay_log_info * MY_ATTRIBUTE((unused)),
-                                  uint16 mflags,
-                                  int *order_var)
- {
-@@ -9348,7 +9348,7 @@ void Field_bit::sql_type(String &res) const
- 
- uchar *
- Field_bit::pack(uchar *to, const uchar *from, uint max_length,
--                bool low_byte_first __attribute__((unused)))
-+                bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(max_length > 0);
-   uint length;
-@@ -9396,7 +9396,7 @@ Field_bit::pack(uchar *to, const uchar *from, uint max_length,
- */
- const uchar *
- Field_bit::unpack(uchar *to, const uchar *from, uint param_data,
--                  bool low_byte_first __attribute__((unused)))
-+                  bool low_byte_first MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("Field_bit::unpack");
-   DBUG_PRINT("enter", ("to: %p, from: %p, param_data: 0x%x",
---- a/sql/field.h
-+++ b/sql/field.h
-@@ -1,7 +1,7 @@
- #ifndef FIELD_INCLUDED
- #define FIELD_INCLUDED
- 
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1889,13 +1889,13 @@ public:
-     return new Field_long(*this);
-   }
-   virtual uchar *pack(uchar* to, const uchar *from,
--                      uint max_length __attribute__((unused)),
-+                      uint max_length MY_ATTRIBUTE((unused)),
-                       bool low_byte_first)
-   {
-     return pack_int32(to, from, low_byte_first);
-   }
-   virtual const uchar *unpack(uchar* to, const uchar *from,
--                              uint param_data __attribute__((unused)),
-+                              uint param_data MY_ATTRIBUTE((unused)),
-                               bool low_byte_first)
-   {
-     return unpack_int32(to, from, low_byte_first);
-@@ -1954,13 +1954,13 @@ public:
-     return new Field_longlong(*this);
-   }
-   virtual uchar *pack(uchar* to, const uchar *from,
--                      uint max_length  __attribute__((unused)),
-+                      uint max_length  MY_ATTRIBUTE((unused)),
-                       bool low_byte_first)
-   {
-     return pack_int64(to, from, low_byte_first);
-   }
-   virtual const uchar *unpack(uchar* to, const uchar *from,
--                              uint param_data __attribute__((unused)),
-+                              uint param_data MY_ATTRIBUTE((unused)),
-                               bool low_byte_first)
-   {
-     return unpack_int64(to, from, low_byte_first);
-@@ -2560,12 +2560,12 @@ public:
-     return new Field_timestamp(*this);
-   }
-   uchar *pack(uchar *to, const uchar *from,
--              uint max_length __attribute__((unused)), bool low_byte_first)
-+              uint max_length MY_ATTRIBUTE((unused)), bool low_byte_first)
-   {
-     return pack_int32(to, from, low_byte_first);
-   }
-   const uchar *unpack(uchar* to, const uchar *from,
--                      uint param_data __attribute__((unused)),
-+                      uint param_data MY_ATTRIBUTE((unused)),
-                       bool low_byte_first)
-   {
-     return unpack_int32(to, from, low_byte_first);
-@@ -2998,12 +2998,12 @@ public:
-     return new Field_datetime(*this);
-   }
-   uchar *pack(uchar* to, const uchar *from,
--              uint max_length __attribute__((unused)), bool low_byte_first)
-+              uint max_length MY_ATTRIBUTE((unused)), bool low_byte_first)
-   {
-     return pack_int64(to, from, low_byte_first);
-   }
-   const uchar *unpack(uchar* to, const uchar *from,
--                      uint param_data __attribute__((unused)),
-+                      uint param_data MY_ATTRIBUTE((unused)),
-                       bool low_byte_first)
-   {
-     return unpack_int64(to, from, low_byte_first);
---- a/sql/field_conv.cc
-+++ b/sql/field_conv.cc
-@@ -195,7 +195,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions)
- }
- 
- 
--static void do_skip(Copy_field *copy __attribute__((unused)))
-+static void do_skip(Copy_field *copy MY_ATTRIBUTE((unused)))
- {
- }
- 
---- a/sql/filesort.cc
-+++ b/sql/filesort.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1040,7 +1040,7 @@ void make_sortkey(Sort_param *param, uchar *to, uchar *ref_pos)
-         if (sort_field->need_strxnfrm)
-         {
-           char *from=(char*) res->ptr();
--          uint tmp_length __attribute__((unused));
-+          uint tmp_length MY_ATTRIBUTE((unused));
-           if ((uchar*) from == to)
-           {
-             DBUG_ASSERT(sort_field->length >= length);
---- a/sql/ha_ndb_index_stat.cc
-+++ b/sql/ha_ndb_index_stat.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1727,7 +1727,7 @@ ndb_index_stat_stop_listener(Ndb_index_stat_proc &pr)
- }
- 
- pthread_handler_t
--ndb_index_stat_thread_func(void *arg __attribute__((unused)))
-+ndb_index_stat_thread_func(void *arg MY_ATTRIBUTE((unused)))
- {
-   THD *thd; /* needs to be first for thread_stack */
-   struct timespec abstime;
---- a/sql/ha_ndbcluster.cc
-+++ b/sql/ha_ndbcluster.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -417,7 +417,7 @@ pthread_mutex_t ndbcluster_mutex;
- HASH ndbcluster_open_tables;
- 
- static uchar *ndbcluster_get_key(NDB_SHARE *share, size_t *length,
--                                my_bool not_used __attribute__((unused)));
-+                                my_bool not_used MY_ATTRIBUTE((unused)));
- 
- static void modify_shared_stats(NDB_SHARE *share,
-                                 Ndb_local_table_statistics *local_stat);
-@@ -1293,7 +1293,7 @@ typedef struct st_thd_ndb_share {
- } THD_NDB_SHARE;
- static
- uchar *thd_ndb_share_get_key(THD_NDB_SHARE *thd_ndb_share, size_t *length,
--                            my_bool not_used __attribute__((unused)))
-+                            my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= sizeof(thd_ndb_share->key);
-   return (uchar*) &thd_ndb_share->key;
-@@ -11106,7 +11106,7 @@ int ndbcluster_table_exists_in_engine(handlerton *hton, THD* thd,
- 
- 
- extern "C" uchar* tables_get_key(const char *entry, size_t *length,
--                                my_bool not_used __attribute__((unused)))
-+                                my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= strlen(entry);
-   return (uchar*) entry;
-@@ -12657,7 +12657,7 @@ ha_ndbcluster::register_query_cache_table(THD *thd,
- */
- 
- static uchar *ndbcluster_get_key(NDB_SHARE *share, size_t *length,
--                                my_bool not_used __attribute__((unused)))
-+                                my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= share->key_length;
-   return (uchar*) share->key;
-@@ -14539,7 +14539,7 @@ ha_ndbcluster::update_table_comment(
- /**
-   Utility thread main loop.
- */
--pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
-+pthread_handler_t ndb_util_thread_func(void *arg MY_ATTRIBUTE((unused)))
- {
-   THD *thd; /* needs to be first for thread_stack */
-   struct timespec abstime;
---- a/sql/ha_ndbcluster_binlog.cc
-+++ b/sql/ha_ndbcluster_binlog.cc
-@@ -1,5 +1,5 @@
- /*
--  Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
-+  Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -6252,7 +6252,7 @@ private:
- static uchar *
- ndb_schema_objects_get_key(NDB_SCHEMA_OBJECT *schema_object,
-                            size_t *length,
--                           my_bool not_used __attribute__((unused)))
-+                           my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= schema_object->key_length;
-   return (uchar*) schema_object->key;
---- a/sql/ha_partition.cc
-+++ b/sql/ha_partition.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -222,7 +222,7 @@ static uint partition_flags()
-   return HA_CAN_PARTITION;
- }
- 
--static uint alter_table_flags(uint flags __attribute__((unused)))
-+static uint alter_table_flags(uint flags MY_ATTRIBUTE((unused)))
- {
-   return (HA_PARTITION_FUNCTION_SUPPORTED |
-           HA_FAST_CHANGE_PARTITION);
-@@ -1670,9 +1670,9 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
-                                     ulonglong * const copied,
-                                     ulonglong * const deleted,
-                                     const uchar *pack_frm_data
--                                    __attribute__((unused)),
-+                                    MY_ATTRIBUTE((unused)),
-                                     size_t pack_frm_len
--                                    __attribute__((unused)))
-+                                    MY_ATTRIBUTE((unused)))
- {
-   List_iterator<partition_element> part_it(m_part_info->partitions);
-   List_iterator <partition_element> t_it(m_part_info->temp_partitions);
-@@ -2956,7 +2956,7 @@ bool ha_partition::get_from_handler_file(const char *name, MEM_ROOT *mem_root,
- */
- 
- static uchar *get_part_name(PART_NAME_DEF *part, size_t *length,
--                            my_bool not_used __attribute__((unused)))
-+                            my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= part->length;
-   return part->partition_name;
---- a/sql/handler.cc
-+++ b/sql/handler.cc
-@@ -6278,7 +6278,7 @@ end:
- ha_rows DsMrr_impl::dsmrr_info(uint keyno, uint n_ranges, uint rows,
-                                uint *bufsz, uint *flags, Cost_estimate *cost)
- {  
--  ha_rows res __attribute__((unused));
-+  ha_rows res MY_ATTRIBUTE((unused));
-   uint def_flags= *flags;
-   uint def_bufsz= *bufsz;
- 
---- a/sql/handler.h
-+++ b/sql/handler.h
-@@ -3067,7 +3067,7 @@ private:
-   */
-   virtual int rnd_init(bool scan)= 0;
-   virtual int rnd_end() { return 0; }
--  virtual int write_row(uchar *buf __attribute__((unused)))
-+  virtual int write_row(uchar *buf MY_ATTRIBUTE((unused)))
-   {
-     return HA_ERR_WRONG_COMMAND;
-   }
-@@ -3080,13 +3080,13 @@ private:
-     the columns required for the error message are not read, the error
-     message will contain garbage.
-   */
--  virtual int update_row(const uchar *old_data __attribute__((unused)),
--                         uchar *new_data __attribute__((unused)))
-+  virtual int update_row(const uchar *old_data MY_ATTRIBUTE((unused)),
-+                         uchar *new_data MY_ATTRIBUTE((unused)))
-   {
-     return HA_ERR_WRONG_COMMAND;
-   }
- 
--  virtual int delete_row(const uchar *buf __attribute__((unused)))
-+  virtual int delete_row(const uchar *buf MY_ATTRIBUTE((unused)))
-   {
-     return HA_ERR_WRONG_COMMAND;
-   }
-@@ -3119,8 +3119,8 @@ private:
-     @return  non-0 in case of failure, 0 in case of success.
-     When lock_type is F_UNLCK, the return value is ignored.
-   */
--  virtual int external_lock(THD *thd __attribute__((unused)),
--                            int lock_type __attribute__((unused)))
-+  virtual int external_lock(THD *thd MY_ATTRIBUTE((unused)),
-+                            int lock_type MY_ATTRIBUTE((unused)))
-   {
-     return 0;
-   }
---- a/sql/hostname.cc
-+++ b/sql/hostname.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -413,7 +413,7 @@ int ip_to_hostname(struct sockaddr_storage *ip_storage,
- {
-   const struct sockaddr *ip= (const sockaddr *) ip_storage;
-   int err_code;
--  bool err_status __attribute__((unused));
-+  bool err_status MY_ATTRIBUTE((unused));
-   Host_errors errors;
- 
-   DBUG_ENTER("ip_to_hostname");
---- a/sql/init.h
-+++ b/sql/init.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -19,6 +19,6 @@
- #include "my_global.h"                          /* ulong */
- 
- void unireg_init(ulong options);
--void unireg_end(void) __attribute__((noreturn));
-+void unireg_end(void) MY_ATTRIBUTE((noreturn));
- 
- #endif /* INIT_INCLUDED */
---- a/sql/item.cc
-+++ b/sql/item.cc
-@@ -3413,8 +3413,8 @@ Item *Item_null::safe_charset_converter(const CHARSET_INFO *tocs)
- 
- static void
- default_set_param_func(Item_param *param,
--                       uchar **pos __attribute__((unused)),
--                       ulong len __attribute__((unused)))
-+                       uchar **pos MY_ATTRIBUTE((unused)),
-+                       ulong len MY_ATTRIBUTE((unused)))
- {
-   param->set_null();
- }
---- a/sql/item_func.cc
-+++ b/sql/item_func.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -3985,7 +3985,7 @@ public:
- };
- 
- uchar *ull_get_key(const User_level_lock *ull, size_t *length,
--                   my_bool not_used __attribute__((unused)))
-+                   my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= ull->key_length;
-   return ull->key;
---- a/sql/item_sum.cc
-+++ b/sql/item_sum.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
-    rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -3070,7 +3070,7 @@ int group_concat_key_cmp_with_order(const void* arg, const void* key1,
- */
- 
- extern "C"
--int dump_leaf_key(void* key_arg, element_count count __attribute__((unused)),
-+int dump_leaf_key(void* key_arg, element_count count MY_ATTRIBUTE((unused)),
-                   void* item_arg)
- {
-   Item_func_group_concat *item= (Item_func_group_concat *) item_arg;
---- a/sql/item_sum.h
-+++ b/sql/item_sum.h
-@@ -1,7 +1,7 @@
- #ifndef ITEM_SUM_INCLUDED
- #define ITEM_SUM_INCLUDED
- 
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. reserved.
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -1417,7 +1417,7 @@ int group_concat_key_cmp_with_distinct(const void* arg, const void* key1,
- int group_concat_key_cmp_with_order(const void* arg, const void* key1,
-                                     const void* key2);
- int dump_leaf_key(void* key_arg,
--                  element_count count __attribute__((unused)),
-+                  element_count count MY_ATTRIBUTE((unused)),
-                   void* item_arg);
- C_MODE_END
- 
-@@ -1463,7 +1463,7 @@ class Item_func_group_concat : public Item_sum
-                                              const void* key1,
- 					     const void* key2);
-   friend int dump_leaf_key(void* key_arg,
--                           element_count count __attribute__((unused)),
-+                           element_count count MY_ATTRIBUTE((unused)),
- 			   void* item_arg);
- 
- public:
---- a/sql/item_timefunc.cc
-+++ b/sql/item_timefunc.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1902,7 +1902,7 @@ Item_func_now::save_in_field(Field *to, bool no_conversions)
-     time zone. Defines time zone (local) used for whole SYSDATE function.
- */
- bool Item_func_sysdate_local::get_date(MYSQL_TIME *now_time,
--                                       uint fuzzy_date __attribute__((unused)))
-+                                       uint fuzzy_date MY_ATTRIBUTE((unused)))
- {
-   THD *thd= current_thd;
-   ulonglong tmp= my_micro_time();
-@@ -2138,7 +2138,7 @@ void Item_func_from_unixtime::fix_length_and_dec()
- 
- 
- bool Item_func_from_unixtime::get_date(MYSQL_TIME *ltime,
--				       uint fuzzy_date __attribute__((unused)))
-+				       uint fuzzy_date MY_ATTRIBUTE((unused)))
- {
-   lldiv_t lld;
-   if (decimals)
-@@ -2177,7 +2177,7 @@ void Item_func_convert_tz::fix_length_and_dec()
- 
- 
- bool Item_func_convert_tz::get_date(MYSQL_TIME *ltime,
--                                    uint fuzzy_date __attribute__((unused)))
-+                                    uint fuzzy_date MY_ATTRIBUTE((unused)))
- {
-   my_time_t my_time_tmp;
-   String str;
---- a/sql/log_event.cc
-+++ b/sql/log_event.cc
-@@ -1740,7 +1740,7 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
- 
- void Log_event::print_header(IO_CACHE* file,
-                              PRINT_EVENT_INFO* print_event_info,
--                             bool is_more __attribute__((unused)))
-+                             bool is_more MY_ATTRIBUTE((unused)))
- {
-   char llbuff[22];
-   my_off_t hexdump_from= print_event_info->hexdump_from;
-@@ -2724,7 +2724,7 @@ Slave_worker *Log_event::get_slave_worker(Relay_log_info *rli)
-   {
-     if (!rli->curr_group_seen_gtid && !rli->curr_group_seen_begin)
-     {
--      ulong gaq_idx __attribute__((unused));
-+      ulong gaq_idx MY_ATTRIBUTE((unused));
-       rli->mts_groups_assigned++;
- 
-       rli->curr_group_isolated= FALSE;
---- a/sql/log_event.h
-+++ b/sql/log_event.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1311,7 +1311,7 @@ public:
-   }
-   virtual bool write_data_header(IO_CACHE* file)
-   { return 0; }
--  virtual bool write_data_body(IO_CACHE* file __attribute__((unused)))
-+  virtual bool write_data_body(IO_CACHE* file MY_ATTRIBUTE((unused)))
-   { return 0; }
-   inline time_t get_time()
-   {
-@@ -4520,7 +4520,7 @@ public:
-   static bool binlog_row_logging_function(THD *thd, TABLE *table,
-                                           bool is_transactional,
-                                           const uchar *before_record
--                                          __attribute__((unused)),
-+                                          MY_ATTRIBUTE((unused)),
-                                           const uchar *after_record)
-   {
-     return thd->binlog_write_row(table, is_transactional,
-@@ -4660,7 +4660,7 @@ public:
-                                           bool is_transactional,
-                                           const uchar *before_record,
-                                           const uchar *after_record
--                                          __attribute__((unused)))
-+                                          MY_ATTRIBUTE((unused)))
-   {
-     return thd->binlog_delete_row(table, is_transactional,
-                                   before_record, NULL);
---- a/sql/log_event_old.h
-+++ b/sql/log_event_old.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -369,7 +369,7 @@ public:
-   static bool binlog_row_logging_function(THD *thd, TABLE *table,
-                                           bool is_transactional,
-                                           const uchar *before_record
--                                          __attribute__((unused)),
-+                                          MY_ATTRIBUTE((unused)),
-                                           const uchar *after_record)
-   {
-     return thd->binlog_write_row(table, is_transactional,
-@@ -518,7 +518,7 @@ public:
-                                           bool is_transactional,
-                                           const uchar *before_record,
-                                           const uchar *after_record
--                                          __attribute__((unused)))
-+                                          MY_ATTRIBUTE((unused)))
-   {
-     return thd->binlog_delete_row(table, is_transactional,
-                                   before_record, NULL);
---- a/sql/mdl.cc
-+++ b/sql/mdl.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -94,7 +94,7 @@ void MDL_key::init_psi_keys()
- {
-   int i;
-   int count;
--  PSI_stage_info *info __attribute__((unused));
-+  PSI_stage_info *info MY_ATTRIBUTE((unused));
- 
-   count= array_elements(MDL_key::m_namespace_to_wait_state_name);
-   for (i= 0; i<count; i++)
-@@ -651,7 +651,7 @@ extern "C"
- {
- static uchar *
- mdl_locks_key(const uchar *record, size_t *length,
--              my_bool not_used __attribute__((unused)))
-+              my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   MDL_lock *lock=(MDL_lock*) record;
-   *length= lock->key.length();
---- a/sql/mf_iocache.cc
-+++ b/sql/mf_iocache.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -49,7 +49,7 @@ extern "C" {
- 
- 
- int _my_b_net_read(register IO_CACHE *info, uchar *Buffer,
--		   size_t Count __attribute__((unused)))
-+		   size_t Count MY_ATTRIBUTE((unused)))
- {
-   ulong read_length;
-   NET *net= &(current_thd)->net;
---- a/sql/mysqld.cc
-+++ b/sql/mysqld.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -1303,7 +1303,7 @@ static void close_server_sock();
- static void clean_up_mutexes(void);
- static void wait_for_signal_thread_to_end(void);
- static void create_pid_file();
--static void mysqld_exit(int exit_code) __attribute__((noreturn));
-+static void mysqld_exit(int exit_code) MY_ATTRIBUTE((noreturn));
- #endif
- static void delete_pid_file(myf flags);
- static void end_ssl();
-@@ -1715,7 +1715,7 @@ static void __cdecl kill_server(int sig_ptr)
- 
- 
- #if defined(USE_ONE_SIGNAL_HAND)
--pthread_handler_t kill_server_thread(void *arg __attribute__((unused)))
-+pthread_handler_t kill_server_thread(void *arg MY_ATTRIBUTE((unused)))
- {
-   my_thread_init();       // Initialize new thread
-   kill_server(0);
-@@ -2619,7 +2619,7 @@ void close_connection(THD *thd, uint sql_errno)
- 
- /** Called when a thread is aborted. */
- /* ARGSUSED */
--extern "C" sig_handler end_thread_signal(int sig __attribute__((unused)))
-+extern "C" sig_handler end_thread_signal(int sig MY_ATTRIBUTE((unused)))
- {
-   THD *thd=current_thd;
-   my_safe_printf_stderr("end_thread_signal %p", thd);
-@@ -2824,7 +2824,7 @@ void kill_blocked_pthreads()
-   @todo
-     One should have to fix that thr_alarm know about this thread too.
- */
--extern "C" sig_handler abort_thread(int sig __attribute__((unused)))
-+extern "C" sig_handler abort_thread(int sig MY_ATTRIBUTE((unused)))
- {
-   THD *thd=current_thd;
-   DBUG_ENTER("abort_thread");
-@@ -3135,7 +3135,7 @@ static void start_signal_handler(void)
- 
- /** This threads handles all signals and alarms. */
- /* ARGSUSED */
--pthread_handler_t signal_hand(void *arg __attribute__((unused)))
-+pthread_handler_t signal_hand(void *arg MY_ATTRIBUTE((unused)))
- {
-   sigset_t set;
-   int sig;
-@@ -8384,7 +8384,7 @@ static int mysql_init_variables(void)
- 
- my_bool
- mysqld_get_one_option(int optid,
--                      const struct my_option *opt __attribute__((unused)),
-+                      const struct my_option *opt MY_ATTRIBUTE((unused)),
-                       char *argument)
- {
-   switch(optid) {
---- a/sql/mysqld.h
-+++ b/sql/mysqld.h
-@@ -710,10 +710,10 @@ typedef int64 query_id_t;
- extern query_id_t global_query_id;
- extern my_atomic_rwlock_t global_query_id_lock;
- 
--void unireg_end(void) __attribute__((noreturn));
-+void unireg_end(void) MY_ATTRIBUTE((noreturn));
- 
- /* increment query_id and return it.  */
--inline __attribute__((warn_unused_result)) query_id_t next_query_id()
-+inline MY_ATTRIBUTE((warn_unused_result)) query_id_t next_query_id()
- {
-   query_id_t id;
-   my_atomic_rwlock_wrlock(&global_query_id_lock);
-@@ -726,7 +726,7 @@ inline __attribute__((warn_unused_result)) query_id_t next_query_id()
-   TODO: Replace this with an inline function.
-  */
- #ifndef EMBEDDED_LIBRARY
--extern "C" void unireg_abort(int exit_code) __attribute__((noreturn));
-+extern "C" void unireg_abort(int exit_code) MY_ATTRIBUTE((noreturn));
- #else
- extern "C" void unireg_clear(int exit_code);
- #define unireg_abort(exit_code) do { unireg_clear(exit_code); DBUG_RETURN(exit_code); } while(0)
---- a/sql/net_serv.cc
-+++ b/sql/net_serv.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -191,7 +191,7 @@ my_bool net_realloc(NET *net, size_t length)
- */
- 
- void net_clear(NET *net,
--               my_bool check_buffer __attribute__((unused)))
-+               my_bool check_buffer MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("net_clear");
- 
-@@ -238,7 +238,7 @@ my_bool net_flush(NET *net)
- */
- 
- static my_bool
--net_should_retry(NET *net, uint *retry_count __attribute__((unused)))
-+net_should_retry(NET *net, uint *retry_count MY_ATTRIBUTE((unused)))
- {
-   my_bool retry;
- 
---- a/sql/partition_info.cc
-+++ b/sql/partition_info.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -945,7 +945,7 @@ partition_element *partition_info::get_part_elem(const char *partition_name,
- */
- 
- static const char *get_part_name_from_elem(const char *name, size_t *length,
--                                      my_bool not_used __attribute__((unused)))
-+                                      my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= strlen(name);
-   return name;
---- a/sql/rpl_filter.cc
-+++ b/sql/rpl_filter.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -508,7 +508,7 @@ extern "C" uchar *get_table_key(const uchar *, size_t *, my_bool);
- extern "C" void free_table_ent(void* a);
- 
- uchar *get_table_key(const uchar* a, size_t *len,
--                     my_bool __attribute__((unused)))
-+                     my_bool MY_ATTRIBUTE((unused)))
- {
-   TABLE_RULE_ENT *e= (TABLE_RULE_ENT *) a;
- 
---- a/sql/rpl_info_dummy.cc
-+++ b/sql/rpl_info_dummy.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -21,7 +21,7 @@ Rpl_info_dummy::Rpl_info_dummy(const int nparam)
- {
- }
- 
--int Rpl_info_dummy::do_init_info(uint instance __attribute__((unused)))
-+int Rpl_info_dummy::do_init_info(uint instance MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
-@@ -51,13 +51,13 @@ enum_return_check Rpl_info_dummy::do_check_info()
-   return REPOSITORY_DOES_NOT_EXIST;
- }
- 
--enum_return_check Rpl_info_dummy::do_check_info(uint instance __attribute__((unused)))
-+enum_return_check Rpl_info_dummy::do_check_info(uint instance MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
-   return REPOSITORY_DOES_NOT_EXIST;
- }
- 
--int Rpl_info_dummy::do_flush_info(const bool force __attribute__((unused)))
-+int Rpl_info_dummy::do_flush_info(const bool force MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
-   return 0;
-@@ -85,105 +85,105 @@ uint Rpl_info_dummy::do_get_rpl_info_type()
-   return INFO_REPOSITORY_DUMMY;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const char *value __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const char *value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const uchar *value __attribute__((unused)),
--                                const size_t size __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const uchar *value MY_ATTRIBUTE((unused)),
-+                                const size_t size MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const ulong value __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const ulong value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const int value __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const int value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const float value __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const float value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_set_info(const int pos __attribute__((unused)),
--                                const Dynamic_ids *value __attribute__((unused)))
-+bool Rpl_info_dummy::do_set_info(const int pos MY_ATTRIBUTE((unused)),
-+                                const Dynamic_ids *value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                char *value __attribute__((unused)),
--                                const size_t size __attribute__((unused)),
--                                const char *default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                char *value MY_ATTRIBUTE((unused)),
-+                                const size_t size MY_ATTRIBUTE((unused)),
-+                                const char *default_value MY_ATTRIBUTE((unused)))
- {
-     DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                uchar *value __attribute__((unused)),
--                                const size_t size __attribute__((unused)),
--                                const uchar *default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                uchar *value MY_ATTRIBUTE((unused)),
-+                                const size_t size MY_ATTRIBUTE((unused)),
-+                                const uchar *default_value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                ulong *value __attribute__((unused)),
--                                const ulong default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                ulong *value MY_ATTRIBUTE((unused)),
-+                                const ulong default_value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                int *value __attribute__((unused)),
--                                const int default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                int *value MY_ATTRIBUTE((unused)),
-+                                const int default_value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                float *value __attribute__((unused)),
--                                const float default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                float *value MY_ATTRIBUTE((unused)),
-+                                const float default_value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
-   return FALSE;
- }
- 
--bool Rpl_info_dummy::do_get_info(const int pos __attribute__((unused)),
--                                Dynamic_ids *value __attribute__((unused)),
--                                const Dynamic_ids *default_value __attribute__((unused)))
-+bool Rpl_info_dummy::do_get_info(const int pos MY_ATTRIBUTE((unused)),
-+                                Dynamic_ids *value MY_ATTRIBUTE((unused)),
-+                                const Dynamic_ids *default_value MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(!abort);
- 
---- a/sql/rpl_info_file.cc
-+++ b/sql/rpl_info_file.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -438,7 +438,7 @@ bool Rpl_info_file::do_get_info(const int pos, float *value,
- }
- 
- bool Rpl_info_file::do_get_info(const int pos, Dynamic_ids *value,
--                                const Dynamic_ids *default_value __attribute__((unused)))
-+                                const Dynamic_ids *default_value MY_ATTRIBUTE((unused)))
- {
-   /*
-     Static buffer to use most of the times. However, if it is not big
---- a/sql/rpl_info_table.cc
-+++ b/sql/rpl_info_table.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -600,7 +600,7 @@ bool Rpl_info_table::do_get_info(const int pos, char *value, const size_t size,
- }
- 
- bool Rpl_info_table::do_get_info(const int pos, uchar *value, const size_t size,
--                                 const uchar *default_value __attribute__((unused)))
-+                                 const uchar *default_value MY_ATTRIBUTE((unused)))
- {
-   if (field_values->value[pos].length() == size)
-     return (!memcpy((char *) value, (char *)
-@@ -661,7 +661,7 @@ bool Rpl_info_table::do_get_info(const int pos, float *value,
- }
- 
- bool Rpl_info_table::do_get_info(const int pos, Dynamic_ids *value,
--                                 const Dynamic_ids *default_value __attribute__((unused)))
-+                                 const Dynamic_ids *default_value MY_ATTRIBUTE((unused)))
- {
-   if (value->unpack_dynamic_ids(field_values->value[pos].c_ptr_safe()))
-     return TRUE;
---- a/sql/rpl_master.cc
-+++ b/sql/rpl_master.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -62,7 +62,7 @@ extern TYPELIB binlog_checksum_typelib;
- 
- extern "C" uint32
- *slave_list_key(SLAVE_INFO* si, size_t *len,
--		my_bool not_used __attribute__((unused)))
-+		my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *len = 4;
-   return &si->server_id;
---- a/sql/rpl_mi.cc
-+++ b/sql/rpl_mi.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -542,7 +542,7 @@ bool Master_info::write_info(Rpl_info_handler *to)
- }
- 
- bool Master_info::set_password(const char* password_arg,
--                               int password_arg_size __attribute__((unused)))
-+                               int password_arg_size MY_ATTRIBUTE((unused)))
- {
-   bool ret= true;
-   DBUG_ENTER("Master_info::set_password");
---- a/sql/rpl_rli_pdb.cc
-+++ b/sql/rpl_rli_pdb.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -629,7 +629,7 @@ static  mysql_cond_t slave_worker_hash_cond;
- 
- 
- extern "C" uchar *get_key(const uchar *record, size_t *length,
--                          my_bool not_used __attribute__((unused)))
-+                          my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("get_key");
- 
-@@ -1490,7 +1490,7 @@ ulong Slave_committed_queue::move_queue_head(DYNAMIC_ARRAY *ws)
-     Slave_worker *w_i;
-     Slave_job_group *ptr_g, g;
-     char grl_name[FN_REFLEN];
--    ulong ind __attribute__((unused));
-+    ulong ind MY_ATTRIBUTE((unused));
- 
- #ifndef DBUG_OFF
-     if (DBUG_EVALUATE_IF("check_slave_debug_group", 1, 0) &&
---- a/sql/rpl_slave.cc
-+++ b/sql/rpl_slave.cc
-@@ -1384,7 +1384,7 @@ terminate_slave_thread(THD *thd,
- 
-   while (*slave_running)                        // Should always be true
-   {
--    int error __attribute__((unused));
-+    int error MY_ATTRIBUTE((unused));
-     DBUG_PRINT("loop", ("killing slave thread"));
- 
-     mysql_mutex_lock(&thd->LOCK_thd_data);
-@@ -1394,7 +1394,7 @@ terminate_slave_thread(THD *thd,
-       EINVAL: invalid signal number (can't happen)
-       ESRCH: thread already killed (can happen, should be ignored)
-     */
--    int err __attribute__((unused))= pthread_kill(thd->real_id, thr_client_alarm);
-+    int err MY_ATTRIBUTE((unused))= pthread_kill(thd->real_id, thr_client_alarm);
-     DBUG_ASSERT(err != EINVAL);
- #endif
-     thd->awake(THD::NOT_KILLED);
---- a/sql/rpl_utility.cc
-+++ b/sql/rpl_utility.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1243,7 +1243,7 @@ bool event_checksum_test(uchar *event_buf, ulong event_len, uint8 alg)
- static uchar*
- hash_slave_rows_get_key(const uchar *record,
-                         size_t *length,
--                        my_bool not_used __attribute__((unused)))
-+                        my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("get_key");
- 
---- a/sql/sql_acl.cc
-+++ b/sql/sql_acl.cc
-@@ -625,7 +625,7 @@ public:
- 
- 
- static uchar* acl_entry_get_key(acl_entry *entry, size_t *length,
--                                my_bool not_used __attribute__((unused)))
-+                                my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=(uint) entry->length;
-   return (uchar*) entry->key;
-@@ -1673,7 +1673,7 @@ bool acl_getroot(Security_context *sctx, char *user, char *host,
- }
- 
- static uchar* check_get_key(ACL_USER *buff, size_t *length,
--                            my_bool not_used __attribute__((unused)))
-+                            my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=buff->host.get_host_len();
-   return (uchar*) buff->host.get_host();
-@@ -3607,7 +3607,7 @@ public:
- 
- 
- static uchar* get_key_column(GRANT_COLUMN *buff, size_t *length,
--			    my_bool not_used __attribute__((unused)))
-+			    my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=buff->key_length;
-   return (uchar*) buff->column;
-@@ -3800,7 +3800,7 @@ GRANT_TABLE::~GRANT_TABLE()
- 
- 
- static uchar* get_grant_table(GRANT_NAME *buff, size_t *length,
--			     my_bool not_used __attribute__((unused)))
-+			     my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=buff->key_length;
-   return (uchar*) buff->hash_key;
---- a/sql/sql_analyse.cc
-+++ b/sql/sql_analyse.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -34,25 +34,25 @@
- using std::min;
- using std::max;
- 
--int sortcmp2(void* cmp_arg __attribute__((unused)),
-+int sortcmp2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 	     const String *a,const String *b)
- {
-   return sortcmp(a,b,a->charset());
- }
- 
--int compare_double2(void* cmp_arg __attribute__((unused)),
-+int compare_double2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		    const double *s, const double *t)
- {
-   return compare_double(s,t);
- }
- 
--int compare_longlong2(void* cmp_arg __attribute__((unused)),
-+int compare_longlong2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		      const longlong *s, const longlong *t)
- {
-   return compare_longlong(s,t);
- }
- 
--int compare_ulonglong2(void* cmp_arg __attribute__((unused)),
-+int compare_ulonglong2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		       const ulonglong *s, const ulonglong *t)
- {
-   return compare_ulonglong(s,t);
-@@ -835,7 +835,7 @@ void field_str::get_opt_type(String *answer, ha_rows total_rows)
- 
- 
- void field_real::get_opt_type(String *answer,
--			      ha_rows total_rows __attribute__((unused)))
-+			      ha_rows total_rows MY_ATTRIBUTE((unused)))
- {
-   char buff[MAX_FIELD_WIDTH];
- 
-@@ -888,7 +888,7 @@ void field_real::get_opt_type(String *answer,
- 
- 
- void field_longlong::get_opt_type(String *answer,
--				  ha_rows total_rows __attribute__((unused)))
-+				  ha_rows total_rows MY_ATTRIBUTE((unused)))
- {
-   char buff[MAX_FIELD_WIDTH];
- 
-@@ -919,7 +919,7 @@ void field_longlong::get_opt_type(String *answer,
- 
- 
- void field_ulonglong::get_opt_type(String *answer,
--				   ha_rows total_rows __attribute__((unused)))
-+				   ha_rows total_rows MY_ATTRIBUTE((unused)))
- {
-   char buff[MAX_FIELD_WIDTH];
- 
-@@ -944,7 +944,7 @@ void field_ulonglong::get_opt_type(String *answer,
- 
- 
- void field_decimal::get_opt_type(String *answer,
--                                 ha_rows total_rows __attribute__((unused)))
-+                                 ha_rows total_rows MY_ATTRIBUTE((unused)))
- {
-   my_decimal zero;
-   char buff[MAX_FIELD_WIDTH];
-@@ -1022,7 +1022,7 @@ String *field_decimal::std(String *s, ha_rows rows)
- 
- 
- int collect_string(String *element,
--		   element_count count __attribute__((unused)),
-+		   element_count count MY_ATTRIBUTE((unused)),
- 		   TREE_INFO *info)
- {
-   if (info->found)
-@@ -1037,7 +1037,7 @@ int collect_string(String *element,
- } // collect_string
- 
- 
--int collect_real(double *element, element_count count __attribute__((unused)),
-+int collect_real(double *element, element_count count MY_ATTRIBUTE((unused)),
- 		 TREE_INFO *info)
- {
-   char buff[MAX_FIELD_WIDTH];
-@@ -1078,7 +1078,7 @@ int collect_decimal(uchar *element, element_count count,
- 
- 
- int collect_longlong(longlong *element,
--		     element_count count __attribute__((unused)),
-+		     element_count count MY_ATTRIBUTE((unused)),
- 		     TREE_INFO *info)
- {
-   char buff[MAX_FIELD_WIDTH];
-@@ -1097,7 +1097,7 @@ int collect_longlong(longlong *element,
- 
- 
- int collect_ulonglong(ulonglong *element,
--		      element_count count __attribute__((unused)),
-+		      element_count count MY_ATTRIBUTE((unused)),
- 		      TREE_INFO *info)
- {
-   char buff[MAX_FIELD_WIDTH];
---- a/sql/sql_analyse.h
-+++ b/sql/sql_analyse.h
-@@ -1,7 +1,7 @@
- #ifndef SQL_ANALYSE_INCLUDED
- #define SQL_ANALYSE_INCLUDED
- 
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -53,13 +53,13 @@ uint check_ulonglong(const char *str, uint length);
- bool get_ev_num_info(EV_NUM_INFO *ev_info, NUM_INFO *info, const char *num);
- bool test_if_number(NUM_INFO *info, const char *str, uint str_len);
- int compare_double(const double *s, const double *t);
--int compare_double2(void* cmp_arg __attribute__((unused)),
-+int compare_double2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		    const double *s, const double *t);
- int compare_longlong(const longlong *s, const longlong *t);
--int compare_longlong2(void* cmp_arg __attribute__((unused)),
-+int compare_longlong2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		      const longlong *s, const longlong *t);
- int compare_ulonglong(const ulonglong *s, const ulonglong *t);
--int compare_ulonglong2(void* cmp_arg __attribute__((unused)),
-+int compare_ulonglong2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 		       const ulonglong *s, const ulonglong *t);
- int compare_decimal2(int* len, const char *s, const char *t);
- void free_string(String*);
-@@ -97,7 +97,7 @@ public:
- int collect_string(String *element, element_count count,
- 		   TREE_INFO *info);
- 
--int sortcmp2(void* cmp_arg __attribute__((unused)),
-+int sortcmp2(void* cmp_arg MY_ATTRIBUTE((unused)),
- 	     const String *a,const String *b);
- 
- class field_str :public field_info
-@@ -120,9 +120,9 @@ public:
- 
-   void	 add();
-   void	 get_opt_type(String*, ha_rows);
--  String *get_min_arg(String *not_used __attribute__((unused)))
-+  String *get_min_arg(String *not_used MY_ATTRIBUTE((unused)))
-   { return &min_arg; }
--  String *get_max_arg(String *not_used __attribute__((unused)))
-+  String *get_max_arg(String *not_used MY_ATTRIBUTE((unused)))
-   { return &max_arg; }
-   String *avg(String *s, ha_rows rows)
-   {
-@@ -137,8 +137,8 @@ public:
- 			    TREE_INFO *info);
-   tree_walk_action collect_enum()
-   { return (tree_walk_action) collect_string; }
--  String *std(String *s __attribute__((unused)),
--	      ha_rows rows __attribute__((unused)))
-+  String *std(String *s MY_ATTRIBUTE((unused)),
-+	      ha_rows rows MY_ATTRIBUTE((unused)))
-   { return (String*) 0; }
- };
- 
---- a/sql/sql_audit.cc
-+++ b/sql/sql_audit.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -494,7 +494,7 @@ static void event_class_dispatch(THD *thd, unsigned int event_class,
- 
- 
- /**  There's at least one active audit plugin tracking the general events */
--bool is_any_audit_plugin_active(THD *thd __attribute__((unused)))
-+bool is_any_audit_plugin_active(THD *thd MY_ATTRIBUTE((unused)))
- {
-   return (mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK);
- }
---- a/sql/sql_audit.h
-+++ b/sql/sql_audit.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -37,7 +37,7 @@ extern void mysql_audit_acquire_plugins(THD *thd, uint event_class);
- #ifndef EMBEDDED_LIBRARY
- extern void mysql_audit_notify(THD *thd, uint event_class,
-                                uint event_subtype, ...);
--bool is_any_audit_plugin_active(THD *thd __attribute__((unused)));
-+bool is_any_audit_plugin_active(THD *thd MY_ATTRIBUTE((unused)));
- #else
- #define mysql_audit_notify(...)
- #endif
---- a/sql/sql_base.cc
-+++ b/sql/sql_base.cc
-@@ -330,7 +330,7 @@ uint get_table_def_key(const TABLE_LIST *table_list, const char **key)
- *****************************************************************************/
- 
- extern "C" uchar *table_def_key(const uchar *record, size_t *length,
--                               my_bool not_used __attribute__((unused)))
-+                               my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   TABLE_SHARE *entry=(TABLE_SHARE*) record;
-   *length= entry->table_cache_key.length;
-@@ -4865,7 +4865,7 @@ end:
- }
- 
- extern "C" uchar *schema_set_get_key(const uchar *record, size_t *length,
--                                     my_bool not_used __attribute__((unused)))
-+                                     my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   TABLE_LIST *table=(TABLE_LIST*) record;
-   *length= table->db_length;
---- a/sql/sql_cache.cc
-+++ b/sql/sql_cache.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, 2015, Oracle and/or its affiliates. All rights
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -729,7 +729,7 @@ inline Query_cache_block_table * Query_cache_block::table(TABLE_COUNTER_TYPE n)
- extern "C"
- {
- uchar *query_cache_table_get_key(const uchar *record, size_t *length,
--				my_bool not_used __attribute__((unused)))
-+				my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   Query_cache_block* table_block = (Query_cache_block*) record;
-   *length = (table_block->used - table_block->headers_len() -
---- a/sql/sql_class.cc
-+++ b/sql/sql_class.cc
-@@ -83,7 +83,7 @@ const char * const THD::DEFAULT_WHERE= "field list";
- ****************************************************************************/
- 
- extern "C" uchar *get_var_key(user_var_entry *entry, size_t *length,
--                              my_bool not_used __attribute__((unused)))
-+                              my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= entry->entry_name.length();
-   return (uchar*) entry->entry_name.ptr();
-@@ -3053,7 +3053,7 @@ err:
- 
- 
- int
--select_dump::prepare(List<Item> &list __attribute__((unused)),
-+select_dump::prepare(List<Item> &list MY_ATTRIBUTE((unused)),
- 		     SELECT_LEX_UNIT *u)
- {
-   unit= u;
-@@ -3465,7 +3465,7 @@ C_MODE_START
- 
- static uchar *
- get_statement_id_as_hash_key(const uchar *record, size_t *key_length,
--                             my_bool not_used __attribute__((unused)))
-+                             my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   const Statement *statement= (const Statement *) record; 
-   *key_length= sizeof(statement->id);
-@@ -3478,7 +3478,7 @@ static void delete_statement_as_hash_key(void *key)
- }
- 
- static uchar *get_stmt_name_hash_key(Statement *entry, size_t *length,
--                                    my_bool not_used __attribute__((unused)))
-+                                    my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= entry->name.length;
-   return (uchar*) entry->name.str;
-@@ -4779,7 +4779,7 @@ extern "C" uchar *xid_get_hash_key(const uchar *, size_t *, my_bool);
- extern "C" void xid_free_hash(void *);
- 
- uchar *xid_get_hash_key(const uchar *ptr, size_t *length,
--                                  my_bool not_used __attribute__((unused)))
-+                                  my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=((XID_STATE*)ptr)->xid.key_length();
-   return ((XID_STATE*)ptr)->xid.key();
---- a/sql/sql_connect.cc
-+++ b/sql/sql_connect.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -337,7 +337,7 @@ void release_user_connection(THD *thd)
- */
- 
- extern "C" uchar *get_key_conn(user_conn *buff, size_t *length,
--            my_bool not_used __attribute__((unused)))
-+            my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= buff->len;
-   return (uchar*) buff->user;
---- a/sql/sql_cursor.cc
-+++ b/sql/sql_cursor.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -47,7 +47,7 @@ public:
- 
-   int send_result_set_metadata(THD *thd, List<Item> &send_result_set_metadata);
-   virtual bool is_open() const { return table != 0; }
--  virtual int open(JOIN *join __attribute__((unused)));
-+  virtual int open(JOIN *join MY_ATTRIBUTE((unused)));
-   virtual void fetch(ulong num_rows);
-   virtual void close();
-   virtual ~Materialized_cursor();
-@@ -277,7 +277,7 @@ end:
- }
- 
- 
--int Materialized_cursor::open(JOIN *join __attribute__((unused)))
-+int Materialized_cursor::open(JOIN *join MY_ATTRIBUTE((unused)))
- {
-   THD *thd= fake_unit.thd;
-   int rc;
---- a/sql/sql_db.cc
-+++ b/sql/sql_db.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -86,7 +86,7 @@ extern "C" uchar* dboptions_get_key(my_dbopt_t *opt, size_t *length,
-                                     my_bool not_used);
- 
- uchar* dboptions_get_key(my_dbopt_t *opt, size_t *length,
--                         my_bool not_used __attribute__((unused)))
-+                         my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= opt->name_length;
-   return (uchar*) opt->name;
---- a/sql/sql_executor.cc
-+++ b/sql/sql_executor.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -484,7 +484,7 @@ init_tmptable_sum_functions(Item_sum **func_ptr)
- 
- static void
- update_tmptable_sum_func(Item_sum **func_ptr,
--			 TABLE *tmp_table __attribute__((unused)))
-+			 TABLE *tmp_table MY_ATTRIBUTE((unused)))
- {
-   Item_sum *func;
-   while ((func= *(func_ptr++)))
-@@ -2256,7 +2256,7 @@ join_read_last_key(JOIN_TAB *tab)
- 
- 	/* ARGSUSED */
- static int
--join_no_more_records(READ_RECORD *info __attribute__((unused)))
-+join_no_more_records(READ_RECORD *info MY_ATTRIBUTE((unused)))
- {
-   return -1;
- }
-@@ -2858,7 +2858,7 @@ end_send(JOIN *join, JOIN_TAB *join_tab, bool end_of_records)
- 
- 	/* ARGSUSED */
- enum_nested_loop_state
--end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
-+end_send_group(JOIN *join, JOIN_TAB *join_tab MY_ATTRIBUTE((unused)),
- 	       bool end_of_records)
- {
-   int idx= -1;
-@@ -3856,7 +3856,7 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
-   Item *pos;
-   List_iterator_fast<Item> li(all_fields);
-   Copy_field *copy= NULL;
--  Copy_field *copy_start __attribute__((unused));
-+  Copy_field *copy_start MY_ATTRIBUTE((unused));
-   res_selected_fields.empty();
-   res_all_fields.empty();
-   List_iterator_fast<Item> itr(res_all_fields);
---- a/sql/sql_executor.h
-+++ b/sql/sql_executor.h
-@@ -1,7 +1,7 @@
- #ifndef SQL_EXECUTOR_INCLUDED
- #define SQL_EXECUTOR_INCLUDED
- 
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -258,7 +258,7 @@ private:
-   /** Write function that would be used for saving records in tmp table. */
-   Next_select_func write_func;
-   enum_nested_loop_state put_record(bool end_of_records);
--  __attribute__((warn_unused_result))
-+  MY_ATTRIBUTE((warn_unused_result))
-   bool prepare_tmp_table();
- };
- 
---- a/sql/sql_handler.cc
-+++ b/sql/sql_handler.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -89,7 +89,7 @@ static bool mysql_ha_open_table(THD *thd, TABLE_LIST *table);
- */
- 
- static char *mysql_ha_hash_get_key(TABLE_LIST *tables, size_t *key_len_p,
--                                   my_bool first __attribute__((unused)))
-+                                   my_bool first MY_ATTRIBUTE((unused)))
- {
-   *key_len_p= strlen(tables->alias) + 1 ; /* include '\0' in comparisons */
-   return tables->alias;
---- a/sql/sql_load.cc
-+++ b/sql/sql_load.cc
-@@ -209,7 +209,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
-   */
-   char *tdb= thd->db ? thd->db : db;		// Result is never null
-   ulong skip_lines= ex->skip_lines;
--  bool transactional_table __attribute__((unused));
-+  bool transactional_table MY_ATTRIBUTE((unused));
-   DBUG_ENTER("mysql_load");
- 
-   /*
---- a/sql/sql_manager.cc
-+++ b/sql/sql_manager.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -63,7 +63,7 @@ bool mysql_manager_submit(void (*action)())
-   return result;
- }
- 
--pthread_handler_t handle_manager(void *arg __attribute__((unused)))
-+pthread_handler_t handle_manager(void *arg MY_ATTRIBUTE((unused)))
- {
-   int error = 0;
-   struct timespec abstime;
---- a/sql/sql_optimizer.cc
-+++ b/sql/sql_optimizer.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1121,8 +1121,8 @@ public:
-   {
-     return (void*) sql_alloc((uint) size);
-   }
--  static void operator delete(void *ptr __attribute__((unused)),
--                              size_t size __attribute__((unused)))
-+  static void operator delete(void *ptr MY_ATTRIBUTE((unused)),
-+                              size_t size MY_ATTRIBUTE((unused)))
-   { TRASH(ptr, size); }
- 
-   Item *and_level;
---- a/sql/sql_parse.cc
-+++ b/sql/sql_parse.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1645,7 +1645,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
-   {
-     STATUS_VAR current_global_status_var;
-     ulong uptime;
--    uint length __attribute__((unused));
-+    uint length MY_ATTRIBUTE((unused));
-     ulonglong queries_per_second1000;
-     char buff[250];
-     uint buff_len= sizeof(buff);
-@@ -1791,7 +1791,7 @@ done:
-   /* DTRACE instrumentation, end */
-   if (MYSQL_QUERY_DONE_ENABLED() || MYSQL_COMMAND_DONE_ENABLED())
-   {
--    int res __attribute__((unused));
-+    int res MY_ATTRIBUTE((unused));
-     res= (int) thd->is_error();
-     if (command == COM_QUERY)
-     {
-@@ -5919,7 +5919,7 @@ long max_stack_used;
-   - Passing to check_stack_overrun() prevents the compiler from removing it.
- */
- bool check_stack_overrun(THD *thd, long margin,
--			 uchar *buf __attribute__((unused)))
-+			 uchar *buf MY_ATTRIBUTE((unused)))
- {
-   long stack_used;
-   DBUG_ASSERT(thd == current_thd);
-@@ -6260,7 +6260,7 @@ void mysql_init_multi_delete(LEX *lex)
- void mysql_parse(THD *thd, char *rawbuf, uint length,
-                  Parser_state *parser_state)
- {
--  int error __attribute__((unused));
-+  int error MY_ATTRIBUTE((unused));
-   DBUG_ENTER("mysql_parse");
- 
-   DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on(););
---- a/sql/sql_planner.cc
-+++ b/sql/sql_planner.cc
-@@ -1516,7 +1516,7 @@ bool Optimize_table_order::greedy_search(table_map remaining_tables)
-       join state will not be reverted back to its initial state because we
-       don't "pop" tables already present in the partial plan.
-     */
--    bool is_interleave_error __attribute__((unused))= 
-+    bool is_interleave_error MY_ATTRIBUTE((unused))= 
-       check_interleaving_with_nj (best_table);
-     /* This has been already checked by best_extension_by_limited_search */
-     DBUG_ASSERT(!is_interleave_error);
---- a/sql/sql_plugin.cc
-+++ b/sql/sql_plugin.cc
-@@ -1216,7 +1216,7 @@ extern "C" uchar *get_bookmark_hash_key(const uchar *, size_t *, my_bool);
- 
- 
- uchar *get_plugin_hash_key(const uchar *buff, size_t *length,
--                           my_bool not_used __attribute__((unused)))
-+                           my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   struct st_plugin_int *plugin= (st_plugin_int *)buff;
-   *length= (uint)plugin->name.length;
-@@ -1225,7 +1225,7 @@ uchar *get_plugin_hash_key(const uchar *buff, size_t *length,
- 
- 
- uchar *get_bookmark_hash_key(const uchar *buff, size_t *length,
--                             my_bool not_used __attribute__((unused)))
-+                             my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   struct st_bookmark *var= (st_bookmark *)buff;
-   *length= var->name_len + 1;
-@@ -3396,7 +3396,7 @@ static void plugin_opt_set_limits(struct my_option *options,
- extern "C" my_bool get_one_plugin_option(int optid, const struct my_option *,
-                                          char *);
- 
--my_bool get_one_plugin_option(int optid __attribute__((unused)),
-+my_bool get_one_plugin_option(int optid MY_ATTRIBUTE((unused)),
-                               const struct my_option *opt,
-                               char *argument)
- {
-@@ -3717,7 +3717,7 @@ static my_option *construct_help_options(MEM_ROOT *mem_root,
- 
- static my_bool check_if_option_is_deprecated(int optid,
-                                              const struct my_option *opt,
--                                             char *argument __attribute__((unused)))
-+                                             char *argument MY_ATTRIBUTE((unused)))
- {
-   if (optid == -1)
-   {
-@@ -3767,7 +3767,7 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
-   LEX_STRING plugin_name;
-   char *varname;
-   int error;
--  sys_var *v __attribute__((unused));
-+  sys_var *v MY_ATTRIBUTE((unused));
-   struct st_bookmark *var;
-   uint len, count= EXTRA_OPTIONS;
-   DBUG_ENTER("test_plugin_options");
---- a/sql/sql_prepare.cc
-+++ b/sql/sql_prepare.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -399,7 +399,7 @@ static bool send_prep_stmt(Prepared_statement *stmt, uint columns)
- }
- #else
- static bool send_prep_stmt(Prepared_statement *stmt,
--                           uint columns __attribute__((unused)))
-+                           uint columns MY_ATTRIBUTE((unused)))
- {
-   THD *thd= stmt->thd;
- 
-@@ -1183,7 +1183,7 @@ swap_parameter_array(Item_param **param_array_dst,
- 
- static bool insert_params_from_vars(Prepared_statement *stmt,
-                                     List<LEX_STRING>& varnames,
--                                    String *query __attribute__((unused)))
-+                                    String *query MY_ATTRIBUTE((unused)))
- {
-   Item_param **begin= stmt->param_array;
-   Item_param **end= begin + stmt->param_count;
-@@ -4529,7 +4529,7 @@ bool Protocol_local::store(const char *str, size_t length,
- /* Store MYSQL_TIME (in binary format) */
- 
- bool Protocol_local::store(MYSQL_TIME *time,
--                           uint precision __attribute__((unused)))
-+                           uint precision MY_ATTRIBUTE((unused)))
- {
-   return store_column(time, sizeof(MYSQL_TIME));
- }
-@@ -4546,7 +4546,7 @@ bool Protocol_local::store_date(MYSQL_TIME *time)
- /** Store MYSQL_TIME (in binary format) */
- 
- bool Protocol_local::store_time(MYSQL_TIME *time,
--                                uint precision __attribute__((unused)))
-+                                uint precision MY_ATTRIBUTE((unused)))
- {
-   return store_column(time, sizeof(MYSQL_TIME));
- }
---- a/sql/sql_select.cc
-+++ b/sql/sql_select.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -3075,7 +3075,7 @@ bool JOIN_TAB::and_with_jt_and_sel_condition(Item *add_cond, uint line)
- */
- bool JOIN_TAB::and_with_condition(Item *add_cond, uint line)
- {
--  Item *old_cond __attribute__((unused))= m_condition;
-+  Item *old_cond MY_ATTRIBUTE((unused))= m_condition;
-   if (and_conditions(&m_condition, add_cond))
-     return true;
-   DBUG_PRINT("info", ("JOIN_TAB::m_condition extended. Change %p -> %p "
---- a/sql/sql_servers.cc
-+++ b/sql/sql_servers.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -86,7 +86,7 @@ static void merge_server_struct(FOREIGN_SERVER *from, FOREIGN_SERVER *to);
- 
- 
- static uchar *servers_cache_get_key(FOREIGN_SERVER *server, size_t *length,
--			       my_bool not_used __attribute__((unused)))
-+			       my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   DBUG_ENTER("servers_cache_get_key");
-   DBUG_PRINT("info", ("server_name_length %d server_name %s",
---- a/sql/sql_show.cc
-+++ b/sql/sql_show.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -369,7 +369,7 @@ ignore_db_dirs_init()
- 
- static uchar *
- db_dirs_hash_get_key(const uchar *data, size_t *len_ret,
--                     my_bool __attribute__((unused)))
-+                     my_bool MY_ATTRIBUTE((unused)))
- {
-   LEX_STRING *e= (LEX_STRING *) data;
- 
-@@ -2032,8 +2032,8 @@ public:
-   {
-     return (void*) sql_alloc((uint) size);
-   }
--  static void operator delete(void *ptr __attribute__((unused)),
--                              size_t size __attribute__((unused)))
-+  static void operator delete(void *ptr MY_ATTRIBUTE((unused)),
-+                              size_t size MY_ATTRIBUTE((unused)))
-   { TRASH(ptr, size); }
- 
-   ulong thread_id;
---- a/sql/sql_table.cc
-+++ b/sql/sql_table.cc
-@@ -5513,7 +5513,7 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
-           */
-           create_info->used_fields|= HA_CREATE_USED_ENGINE;
- 
--          int result __attribute__((unused))=
-+          int result MY_ATTRIBUTE((unused))=
-             store_create_info(thd, table, &query,
-                               create_info, TRUE /* show_database */);
- 
---- a/sql/sql_time.cc
-+++ b/sql/sql_time.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1187,7 +1187,7 @@ const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format,
-   @param OUT str  String to conver to
-   @param dec      Number of fractional digits.
- */
--void make_time(const DATE_TIME_FORMAT *format __attribute__((unused)),
-+void make_time(const DATE_TIME_FORMAT *format MY_ATTRIBUTE((unused)),
-                const MYSQL_TIME *l_time, String *str, uint dec)
- {
-   uint length= (uint) my_time_to_str(l_time, (char*) str->ptr(), dec);
-@@ -1202,7 +1202,7 @@ void make_time(const DATE_TIME_FORMAT *format __attribute__((unused)),
-   @param l_time   DATE value
-   @param OUT str  String to conver to
- */
--void make_date(const DATE_TIME_FORMAT *format __attribute__((unused)),
-+void make_date(const DATE_TIME_FORMAT *format MY_ATTRIBUTE((unused)),
-                const MYSQL_TIME *l_time, String *str)
- {
-   uint length= (uint) my_date_to_str(l_time, (char*) str->ptr());
-@@ -1218,7 +1218,7 @@ void make_date(const DATE_TIME_FORMAT *format __attribute__((unused)),
-   @param OUT str  String to conver to
-   @param dec      Number of fractional digits.
- */
--void make_datetime(const DATE_TIME_FORMAT *format __attribute__((unused)),
-+void make_datetime(const DATE_TIME_FORMAT *format MY_ATTRIBUTE((unused)),
-                    const MYSQL_TIME *l_time, String *str, uint dec)
- {
-   uint length= (uint) my_datetime_to_str(l_time, (char*) str->ptr(), dec);
---- a/sql/sql_udf.cc
-+++ b/sql/sql_udf.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -94,7 +94,7 @@ static char *init_syms(udf_func *tmp, char *nm)
- 
- 
- extern "C" uchar* get_hash_key(const uchar *buff, size_t *length,
--			      my_bool not_used __attribute__((unused)))
-+			      my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   udf_func *udf=(udf_func*) buff;
-   *length=(uint) udf->name.length;
---- a/sql/sql_yacc.yy
-+++ b/sql/sql_yacc.yy
-@@ -113,18 +113,18 @@ int yylex(void *yylval, void *yythd);
- <pre>
-   yyerrlab1:
-   #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
--    __attribute__ ((__unused__))
-+    MY_ATTRIBUTE ((__unused__))
-   #endif
- </pre>
--  This usage of __attribute__ is illegal, so we remove it.
-+  This usage of MY_ATTRIBUTE is illegal, so we remove it.
-   See the following references for details:
-   http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
-   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
- */
- 
- #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
--#undef __attribute__
--#define __attribute__(X)
-+#undef MY_ATTRIBUTE
-+#define MY_ATTRIBUTE(X)
- #endif
- 
- 
---- a/sql/table.cc
-+++ b/sql/table.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -210,7 +210,7 @@ View_creation_ctx * View_creation_ctx::create(THD *thd,
- /* Get column name from column hash */
- 
- static uchar *get_field_name(Field **buff, size_t *length,
--                             my_bool not_used __attribute__((unused)))
-+                             my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= (uint) strlen((*buff)->field_name);
-   return (uchar*) (*buff)->field_name;
---- a/sql/table_cache.cc
-+++ b/sql/table_cache.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -33,7 +33,7 @@ PSI_mutex_info Table_cache::m_mutex_keys[]= {
- 
- extern "C" uchar *table_cache_key(const uchar *record,
-                                   size_t *length,
--                                  my_bool not_used __attribute__((unused)))
-+                                  my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   TABLE_SHARE *share= ((Table_cache_element*)record)->get_share();
-   *length= share->table_cache_key.length;
---- a/sql/tztime.cc
-+++ b/sql/tztime.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1490,7 +1490,7 @@ public:
- 
- extern "C" uchar *
- my_tz_names_get_key(Tz_names_entry *entry, size_t *length,
--                    my_bool not_used __attribute__((unused)))
-+                    my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= entry->name.length();
-   return (uchar*) entry->name.ptr();
-@@ -1499,7 +1499,7 @@ my_tz_names_get_key(Tz_names_entry *entry, size_t *length,
- extern "C" uchar *
- my_offset_tzs_get_key(Time_zone_offset *entry,
-                       size_t *length,
--                      my_bool not_used __attribute__((unused)))
-+                      my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= sizeof(long);
-   return (uchar*) &entry->offset;
---- a/sql/udf_example.cc
-+++ b/sql/udf_example.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -227,7 +227,7 @@ my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
- ****************************************************************************/
- 
- 
--void metaphon_deinit(UDF_INIT *initid __attribute__((unused)))
-+void metaphon_deinit(UDF_INIT *initid MY_ATTRIBUTE((unused)))
- {
- }
- 
-@@ -273,9 +273,9 @@ static char codes[26] =  {
- #define NOGHTOF(x)  (codes[(x) - 'A'] & 16)	/* BDH */
- 
- 
--char *metaphon(UDF_INIT *initid __attribute__((unused)),
-+char *metaphon(UDF_INIT *initid MY_ATTRIBUTE((unused)),
-                UDF_ARGS *args, char *result, unsigned long *length,
--               char *is_null, char *error __attribute__((unused)))
-+               char *is_null, char *error MY_ATTRIBUTE((unused)))
- {
-   const char *word=args->args[0];
-   const char *w_end;
-@@ -550,8 +550,8 @@ my_bool myfunc_double_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
- }
- 
- 
--double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
--                     char *is_null, char *error __attribute__((unused)))
-+double myfunc_double(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args,
-+                     char *is_null, char *error MY_ATTRIBUTE((unused)))
- {
-   unsigned long val = 0;
-   unsigned long v = 0;
-@@ -589,9 +589,9 @@ double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
- 
- /* This function returns the sum of all arguments */
- 
--longlong myfunc_int(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
--                    char *is_null __attribute__((unused)),
--                    char *error __attribute__((unused)))
-+longlong myfunc_int(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args,
-+                    char *is_null MY_ATTRIBUTE((unused)),
-+                    char *error MY_ATTRIBUTE((unused)))
- {
-   longlong val = 0;
-   uint i;
-@@ -621,9 +621,9 @@ longlong myfunc_int(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
-   At least one of _init/_deinit is needed unless the server is started
-   with --allow_suspicious_udfs.
- */
--my_bool myfunc_int_init(UDF_INIT *initid __attribute__((unused)),
--                        UDF_ARGS *args __attribute__((unused)),
--                        char *message __attribute__((unused)))
-+my_bool myfunc_int_init(UDF_INIT *initid MY_ATTRIBUTE((unused)),
-+                        UDF_ARGS *args MY_ATTRIBUTE((unused)),
-+                        char *message MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
-@@ -663,9 +663,9 @@ void sequence_deinit(UDF_INIT *initid)
-     free(initid->ptr);
- }
- 
--longlong sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
--                  char *is_null __attribute__((unused)),
--                  char *error __attribute__((unused)))
-+longlong sequence(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args,
-+                  char *is_null MY_ATTRIBUTE((unused)),
-+                  char *error MY_ATTRIBUTE((unused)))
- {
-   ulonglong val=0;
-   if (args->arg_count)
-@@ -727,16 +727,16 @@ my_bool lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
-   return 0;
- }
- 
--void lookup_deinit(UDF_INIT *initid __attribute__((unused)))
-+void lookup_deinit(UDF_INIT *initid MY_ATTRIBUTE((unused)))
- {
- #if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_SOLARIS_STYLE_GETHOST)
-   (void) pthread_mutex_destroy(&LOCK_hostname);
- #endif
- }
- 
--char *lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
-+char *lookup(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args,
-              char *result, unsigned long *res_length, char *null_value,
--             char *error __attribute__((unused)))
-+             char *error MY_ATTRIBUTE((unused)))
- {
-   uint length;
-   char name_buff[256];
-@@ -807,16 +807,16 @@ my_bool reverse_lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
-   return 0;
- }
- 
--void reverse_lookup_deinit(UDF_INIT *initid __attribute__((unused)))
-+void reverse_lookup_deinit(UDF_INIT *initid MY_ATTRIBUTE((unused)))
- {
- #if !defined(HAVE_GETHOSTBYADDR_R) || !defined(HAVE_SOLARIS_STYLE_GETHOST)
-   (void) pthread_mutex_destroy(&LOCK_hostname);
- #endif
- }
- 
--char *reverse_lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
-+char *reverse_lookup(UDF_INIT *initid MY_ATTRIBUTE((unused)), UDF_ARGS *args,
-                      char *result, unsigned long *res_length,
--                     char *null_value, char *error __attribute__((unused)))
-+                     char *null_value, char *error MY_ATTRIBUTE((unused)))
- {
- #if defined(HAVE_GETHOSTBYADDR_R) && defined(HAVE_SOLARIS_STYLE_GETHOST)
-   char name_buff[256];
-@@ -970,8 +970,8 @@ avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
- /* This is needed to get things to work in MySQL 4.1.1 and above */
- 
- void
--avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
--              char* message __attribute__((unused)))
-+avgcost_clear(UDF_INIT* initid, char* is_null MY_ATTRIBUTE((unused)),
-+              char* message MY_ATTRIBUTE((unused)))
- {
-   struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
-   data->totalprice=	0.0;
-@@ -982,8 +982,8 @@ avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
- 
- void
- avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
--            char* is_null __attribute__((unused)),
--            char* message __attribute__((unused)))
-+            char* is_null MY_ATTRIBUTE((unused)),
-+            char* message MY_ATTRIBUTE((unused)))
- {
-   if (args->args[0] && args->args[1])
-   {
-@@ -1029,8 +1029,8 @@ avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
- 
- 
- double
--avgcost( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
--         char* is_null, char* error __attribute__((unused)))
-+avgcost( UDF_INIT* initid, UDF_ARGS* args MY_ATTRIBUTE((unused)),
-+         char* is_null, char* error MY_ATTRIBUTE((unused)))
- {
-   struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
-   if (!data->count || !data->totalquantity)
-@@ -1063,10 +1063,10 @@ my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
-   return 0;
- }
- 
--char *myfunc_argument_name(UDF_INIT *initid __attribute__((unused)),
-+char *myfunc_argument_name(UDF_INIT *initid MY_ATTRIBUTE((unused)),
-                            UDF_ARGS *args, char *result,
-                            unsigned long *length, char *null_value,
--                           char *error __attribute__((unused)))
-+                           char *error MY_ATTRIBUTE((unused)))
- {
-   if (!args->attributes[0])
-   {
-@@ -1094,9 +1094,9 @@ my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
-   return 0;
- }
- 
--char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
-+char * is_const(UDF_INIT *initid, UDF_ARGS *args MY_ATTRIBUTE((unused)),
-                 char *result, unsigned long *length,
--                char *is_null, char *error __attribute__((unused)))
-+                char *is_null, char *error MY_ATTRIBUTE((unused)))
- {
-   if (initid->ptr != 0) {
-     sprintf(result, "const");
-@@ -1135,9 +1135,9 @@ my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
- }
- 
- extern "C"
--char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
-+char * check_const_len(UDF_INIT *initid, UDF_ARGS *args MY_ATTRIBUTE((unused)),
-                 char *result, unsigned long *length,
--                char *is_null, char *error __attribute__((unused)))
-+                char *is_null, char *error MY_ATTRIBUTE((unused)))
- {
-   strmov(result, initid->ptr);
-   *length= (uint) strlen(result);
-@@ -1183,8 +1183,8 @@ void my_median_deinit(UDF_INIT* initid)
- }
- 
- void my_median_add(UDF_INIT* initid, UDF_ARGS* args,
--                   char* is_null __attribute__((unused)),
--                   char* message __attribute__((unused)))
-+                   char* is_null MY_ATTRIBUTE((unused)),
-+                   char* message MY_ATTRIBUTE((unused)))
- {
-   My_median_data *data=
-     static_cast<My_median_data*>(static_cast<void*>(initid->ptr));
-@@ -1197,8 +1197,8 @@ void my_median_add(UDF_INIT* initid, UDF_ARGS* args,
- }
- 
- void my_median_clear(UDF_INIT* initid, UDF_ARGS* args,
--                     char* is_null __attribute__((unused)),
--                     char* message __attribute__((unused)))
-+                     char* is_null MY_ATTRIBUTE((unused)),
-+                     char* message MY_ATTRIBUTE((unused)))
- {
-   My_median_data *data=
-     static_cast<My_median_data*>(static_cast<void*>(initid->ptr));
-@@ -1207,7 +1207,7 @@ void my_median_clear(UDF_INIT* initid, UDF_ARGS* args,
- 
- longlong my_median(UDF_INIT* initid, UDF_ARGS* args,
-                    char* is_null,
--                   char* message __attribute__((unused)))
-+                   char* message MY_ATTRIBUTE((unused)))
- {
-   My_median_data *data=
-     static_cast<My_median_data*>(static_cast<void*>(initid->ptr));
---- a/storage/archive/archive_reader.c
-+++ b/storage/archive/archive_reader.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -22,6 +22,7 @@
- #include <m_string.h>
- #include <my_getopt.h>
- #include <mysql_version.h>
-+#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
- 
- #define BUFFER_LEN 1024
- #define ARCHIVE_ROW_HEADER_SIZE 4
-@@ -292,7 +293,7 @@ end:
- 
- static my_bool
- get_one_option(int optid,
--	       const struct my_option *opt __attribute__((unused)),
-+	       const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch (optid) {
-@@ -388,8 +389,8 @@ static struct my_option my_long_options[] =
- static void usage(void)
- {
-   print_version();
--  puts("Copyright 2007-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
--  puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
-+  puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2007"));
-+
-   puts("Read and modify Archive files directly\n");
-   printf("Usage: %s [OPTIONS] file_to_be_looked_at [file_for_backup]\n", my_progname);
-   print_defaults("my", load_default_groups);
---- a/storage/blackhole/ha_blackhole.cc
-+++ b/storage/blackhole/ha_blackhole.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -383,7 +383,7 @@ static void blackhole_free_key(st_blackhole_share *share)
- }
- 
- static uchar* blackhole_get_key(st_blackhole_share *share, size_t *length,
--                                my_bool not_used __attribute__((unused)))
-+                                my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length= share->table_name_length;
-   return (uchar*) share->table_name;
---- a/storage/csv/ha_tina.cc
-+++ b/storage/csv/ha_tina.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -102,7 +102,7 @@ int sort_set (tina_set *a, tina_set *b)
- }
- 
- static uchar* tina_get_key(TINA_SHARE *share, size_t *length,
--                          my_bool not_used __attribute__((unused)))
-+                          my_bool not_used MY_ATTRIBUTE((unused)))
- {
-   *length=share->table_name_length;
-   return (uchar*) share->table_name;
---- a/storage/example/ha_example.cc
-+++ b/storage/example/ha_example.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -436,9 +436,9 @@ int ha_example::delete_row(const uchar *buf)
- */
- 
- int ha_example::index_read_map(uchar *buf, const uchar *key,
--                               key_part_map keypart_map __attribute__((unused)),
-+                               key_part_map keypart_map MY_ATTRIBUTE((unused)),
-                                enum ha_rkey_function find_flag
--                               __attribute__((unused)))
-+                               MY_ATTRIBUTE((unused)))
- {
-   int rc;
-   DBUG_ENTER("ha_example::index_read");
---- a/storage/federated/ha_federated.cc
-+++ b/storage/federated/ha_federated.cc
-@@ -425,7 +425,7 @@ static handler *federated_create_handler(handlerton *hton,
- /* Function we use in the creation of our hash to get key */
- 
- static uchar *federated_get_key(FEDERATED_SHARE *share, size_t *length,
--                                my_bool not_used __attribute__ ((unused)))
-+                                my_bool not_used MY_ATTRIBUTE ((unused)))
- {
-   *length= share->share_key_length;
-   return (uchar*) share->share_key;
-@@ -2743,7 +2743,7 @@ int ha_federated::read_next(uchar *buf, MYSQL_RES *result)
-   @param[in]  record  record data (unused)
- */
- 
--void ha_federated::position(const uchar *record __attribute__ ((unused)))
-+void ha_federated::position(const uchar *record MY_ATTRIBUTE ((unused)))
- {
-   DBUG_ENTER("ha_federated::position");
-   
---- a/storage/heap/hp_hash.c
-+++ b/storage/heap/hp_hash.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -867,7 +867,7 @@ uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old,
- 
- 
- uint hp_rb_key_length(HP_KEYDEF *keydef, 
--		      const uchar *key __attribute__((unused)))
-+		      const uchar *key MY_ATTRIBUTE((unused)))
- {
-   return keydef->length;
- }
---- a/storage/heap/hp_test2.c
-+++ b/storage/heap/hp_test2.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
-    reserved
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -660,7 +660,7 @@ static int rnd(int max_value)
- } /* rnd */
- 
- 
--static sig_handler endprog(int sig_number __attribute__((unused)))
-+static sig_handler endprog(int sig_number MY_ATTRIBUTE((unused)))
- {
-   {
-     hp_panic(HA_PANIC_CLOSE);
---- a/storage/innobase/btr/btr0btr.cc
-+++ b/storage/innobase/btr/btr0btr.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -1102,7 +1102,7 @@ that the caller has made the reservation for free extents!
- @retval block, rw_lock_x_lock_count(&block->lock) == 1 if allocation succeeded
- (init_mtr == mtr, or the page was not previously freed in mtr)
- @retval block (not allocated or initialized) otherwise */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- buf_block_t*
- btr_page_alloc_low(
- /*===============*/
-@@ -1971,7 +1971,7 @@ IBUF_BITMAP_FREE is unaffected by reorganization.
- 
- @retval true if the operation was successful
- @retval false if it is a compressed page, and recompression failed */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- bool
- btr_page_reorganize_block(
- /*======================*/
-@@ -2500,7 +2500,7 @@ func_exit:
- Returns TRUE if the insert fits on the appropriate half-page with the
- chosen split_rec.
- @return	true if fits */
--static __attribute__((nonnull(1,3,4,6), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,3,4,6), warn_unused_result))
- bool
- btr_page_insert_fits(
- /*=================*/
-@@ -2643,7 +2643,7 @@ btr_insert_on_non_leaf_level_func(
- /**************************************************************//**
- Attaches the halves of an index page on the appropriate level in an
- index tree. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- btr_attach_half_pages(
- /*==================*/
-@@ -2779,7 +2779,7 @@ btr_attach_half_pages(
- /*************************************************************//**
- Determine if a tuple is smaller than any record on the page.
- @return TRUE if smaller */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- btr_page_tuple_smaller(
- /*===================*/
-@@ -3355,7 +3355,7 @@ Removes a page from the level list of pages.
- 
- /*************************************************************//**
- Removes a page from the level list of pages. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- btr_level_list_remove_func(
- /*=======================*/
---- a/storage/innobase/btr/btr0cur.cc
-+++ b/storage/innobase/btr/btr0cur.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- Copyright (c) 2012, Facebook Inc.
- 
-@@ -1084,7 +1084,7 @@ This has to be done either within the same mini-transaction,
- or by invoking ibuf_reset_free_bits() before mtr_commit().
- 
- @return	pointer to inserted record if succeed, else NULL */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- rec_t*
- btr_cur_insert_if_possible(
- /*=======================*/
-@@ -1127,7 +1127,7 @@ btr_cur_insert_if_possible(
- /*************************************************************//**
- For an insert, checks the locks and does the undo logging if desired.
- @return	DB_SUCCESS, DB_WAIT_LOCK, DB_FAIL, or error number */
--UNIV_INLINE __attribute__((warn_unused_result, nonnull(2,3,5,6)))
-+UNIV_INLINE MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,5,6)))
- dberr_t
- btr_cur_ins_lock_and_undo(
- /*======================*/
-@@ -1653,7 +1653,7 @@ btr_cur_pessimistic_insert(
- /*************************************************************//**
- For an update, checks the locks and does the undo logging.
- @return	DB_SUCCESS, DB_WAIT_LOCK, or error number */
--UNIV_INLINE __attribute__((warn_unused_result, nonnull(2,3,6,7)))
-+UNIV_INLINE MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,6,7)))
- dberr_t
- btr_cur_upd_lock_and_undo(
- /*======================*/
-@@ -4992,7 +4992,7 @@ btr_free_externally_stored_field(
- 	ulint		i,		/*!< in: field number of field_ref;
- 					ignored if rec == NULL */
- 	enum trx_rb_ctx	rb_ctx,		/*!< in: rollback context */
--	mtr_t*		local_mtr __attribute__((unused))) /*!< in: mtr
-+	mtr_t*		local_mtr MY_ATTRIBUTE((unused))) /*!< in: mtr
- 					containing the latch to data an an
- 					X-latch to the index tree */
- {
---- a/storage/innobase/btr/btr0sea.cc
-+++ b/storage/innobase/btr/btr0sea.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -473,7 +473,7 @@ btr_search_update_block_hash_info(
- /*==============================*/
- 	btr_search_t*	info,	/*!< in: search info */
- 	buf_block_t*	block,	/*!< in: buffer block */
--	btr_cur_t*	cursor __attribute__((unused)))
-+	btr_cur_t*	cursor MY_ATTRIBUTE((unused)))
- 				/*!< in: cursor */
- {
- #ifdef UNIV_SYNC_DEBUG
---- a/storage/innobase/buf/buf0buddy.cc
-+++ b/storage/innobase/buf/buf0buddy.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2006, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -112,7 +112,7 @@ buf_buddy_mem_invalid(
- /**********************************************************************//**
- Check if a buddy is stamped free.
- @return	whether the buddy is free */
--UNIV_INLINE __attribute__((warn_unused_result))
-+UNIV_INLINE MY_ATTRIBUTE((warn_unused_result))
- bool
- buf_buddy_stamp_is_free(
- /*====================*/
-@@ -225,7 +225,7 @@ Checks if a buf is free i.e.: in the zip_free[].
- @retval BUF_BUDDY_STATE_FREE if fully free
- @retval BUF_BUDDY_STATE_USED if currently in use
- @retval BUF_BUDDY_STATE_PARTIALLY_USED if partially in use. */
--static  __attribute__((warn_unused_result))
-+static  MY_ATTRIBUTE((warn_unused_result))
- buf_buddy_state_t
- buf_buddy_is_free(
- /*==============*/
---- a/storage/innobase/buf/buf0buf.cc
-+++ b/storage/innobase/buf/buf0buf.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -3470,7 +3470,7 @@ buf_page_init_low(
- 
- /********************************************************************//**
- Inits a page to the buffer buf_pool. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- buf_page_init(
- /*==========*/
---- a/storage/innobase/buf/buf0dump.cc
-+++ b/storage/innobase/buf/buf0dump.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -105,7 +105,7 @@ SELECT variable_value FROM information_schema.global_status WHERE
- variable_name = 'INNODB_BUFFER_POOL_DUMP_STATUS';
- or by:
- SHOW STATUS LIKE 'innodb_buffer_pool_dump_status'; */
--static __attribute__((nonnull, format(printf, 2, 3)))
-+static MY_ATTRIBUTE((nonnull, format(printf, 2, 3)))
- void
- buf_dump_status(
- /*============*/
-@@ -141,7 +141,7 @@ SELECT variable_value FROM information_schema.global_status WHERE
- variable_name = 'INNODB_BUFFER_POOL_LOAD_STATUS';
- or by:
- SHOW STATUS LIKE 'innodb_buffer_pool_load_status'; */
--static __attribute__((nonnull, format(printf, 2, 3)))
-+static MY_ATTRIBUTE((nonnull, format(printf, 2, 3)))
- void
- buf_load_status(
- /*============*/
-@@ -594,7 +594,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(buf_dump_thread)(
- /*============================*/
--	void*	arg __attribute__((unused)))	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)))	/*!< in: a dummy parameter
- 						required by os_thread_create */
- {
- 	ut_ad(!srv_read_only_mode);
---- a/storage/innobase/buf/buf0flu.cc
-+++ b/storage/innobase/buf/buf0flu.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -2384,7 +2384,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(buf_flush_page_cleaner_thread)(
- /*==========================================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
---- a/storage/innobase/buf/buf0lru.cc
-+++ b/storage/innobase/buf/buf0lru.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -142,7 +142,7 @@ If a compressed page is freed other compressed pages may be relocated.
- caller needs to free the page to the free list
- @retval false if BUF_BLOCK_ZIP_PAGE was removed from page_hash. In
- this case the block is already returned to the buddy allocator. */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- buf_LRU_block_remove_hashed(
- /*========================*/
-@@ -366,7 +366,7 @@ want to hog the CPU and resources. Release the buffer pool and block
- mutex and try to force a context switch. Then reacquire the same mutexes.
- The current page is "fixed" before the release of the mutexes and then
- "unfixed" again once we have reacquired the mutexes. */
--static	__attribute__((nonnull))
-+static	MY_ATTRIBUTE((nonnull))
- void
- buf_flush_yield(
- /*============*/
-@@ -407,7 +407,7 @@ If we have hogged the resources for too long then release the buffer
- pool and flush list mutex and do a thread yield. Set the current page
- to "sticky" so that it is not relocated during the yield.
- @return true if yielded */
--static	__attribute__((nonnull(1), warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull(1), warn_unused_result))
- bool
- buf_flush_try_yield(
- /*================*/
-@@ -450,7 +450,7 @@ buf_flush_try_yield(
- Removes a single page from a given tablespace inside a specific
- buffer pool instance.
- @return true if page was removed. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- buf_flush_or_remove_page(
- /*=====================*/
-@@ -531,7 +531,7 @@ the list as they age towards the tail of the LRU.
- @retval DB_SUCCESS if all freed
- @retval DB_FAIL if not all freed
- @retval DB_INTERRUPTED if the transaction was interrupted */
--static	__attribute__((nonnull(1), warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull(1), warn_unused_result))
- dberr_t
- buf_flush_or_remove_pages(
- /*======================*/
-@@ -637,7 +637,7 @@ Remove or flush all the dirty pages that belong to a given tablespace
- inside a specific buffer pool instance. The pages will remain in the LRU
- list and will be evicted from the LRU list as they age and move towards
- the tail of the LRU list. */
--static __attribute__((nonnull(1)))
-+static MY_ATTRIBUTE((nonnull(1)))
- void
- buf_flush_dirty_pages(
- /*==================*/
-@@ -677,7 +677,7 @@ buf_flush_dirty_pages(
- /******************************************************************//**
- Remove all pages that belong to a given tablespace inside a specific
- buffer pool instance when we are DISCARDing the tablespace. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- buf_LRU_remove_all_pages(
- /*=====================*/
-@@ -825,7 +825,7 @@ buffer pool instance when we are deleting the data file(s) of that
- tablespace. The pages still remain a part of LRU and are evicted from
- the list as they age towards the tail of the LRU only if buf_remove
- is BUF_REMOVE_FLUSH_NO_WRITE. */
--static	__attribute__((nonnull(1)))
-+static	MY_ATTRIBUTE((nonnull(1)))
- void
- buf_LRU_remove_pages(
- /*=================*/
---- a/storage/innobase/data/data0data.cc
-+++ b/storage/innobase/data/data0data.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -715,7 +715,7 @@ UNIV_INTERN
- void
- dtuple_convert_back_big_rec(
- /*========================*/
--	dict_index_t*	index __attribute__((unused)),	/*!< in: index */
-+	dict_index_t*	index MY_ATTRIBUTE((unused)),	/*!< in: index */
- 	dtuple_t*	entry,	/*!< in: entry whose data was put to vector */
- 	big_rec_t*	vector)	/*!< in, own: big rec vector; it is
- 				freed in this function */
---- a/storage/innobase/dict/dict0crea.cc
-+++ b/storage/innobase/dict/dict0crea.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -246,7 +246,7 @@ dict_create_sys_columns_tuple(
- /***************************************************************//**
- Builds a table definition to insert.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- dict_build_table_def_step(
- /*======================*/
-@@ -573,7 +573,7 @@ dict_create_search_tuple(
- /***************************************************************//**
- Builds an index definition row to insert.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- dict_build_index_def_step(
- /*======================*/
-@@ -648,7 +648,7 @@ dict_build_field_def_step(
- /***************************************************************//**
- Creates an index tree for the index if it is not a member of a cluster.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- dict_create_index_tree_step(
- /*========================*/
-@@ -1464,7 +1464,7 @@ dict_create_or_check_foreign_constraint_tables(void)
- /****************************************************************//**
- Evaluate the given foreign key SQL statement.
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- dict_foreign_eval_sql(
- /*==================*/
-@@ -1530,7 +1530,7 @@ dict_foreign_eval_sql(
- Add a single foreign key field definition to the data dictionary tables in
- the database.
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- dict_create_add_foreign_field_to_dictionary(
- /*========================================*/
---- a/storage/innobase/dict/dict0load.cc
-+++ b/storage/innobase/dict/dict0load.cc
-@@ -1783,7 +1783,7 @@ Loads definitions for table indexes. Adds them to the data dictionary
- cache.
- @return DB_SUCCESS if ok, DB_CORRUPTION if corruption of dictionary
- table or DB_UNSUPPORTED if table has unknown index type */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- dict_load_indexes(
- /*==============*/
-@@ -2789,7 +2789,7 @@ dict_load_foreign_cols(
- /***********************************************************************//**
- Loads a foreign key constraint to the dictionary cache.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull(1), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1), warn_unused_result))
- dberr_t
- dict_load_foreign(
- /*==============*/
---- a/storage/innobase/dict/dict0mem.cc
-+++ b/storage/innobase/dict/dict0mem.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -264,7 +264,7 @@ dict_mem_table_add_col(
- 
- /**********************************************************************//**
- Renames a column of a table in the data dictionary cache. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- dict_mem_table_col_rename_low(
- /*==========================*/
---- a/storage/innobase/dict/dict0stats_bg.cc
-+++ b/storage/innobase/dict/dict0stats_bg.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -331,7 +331,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(dict_stats_thread)(
- /*==============================*/
--	void*	arg __attribute__((unused)))	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)))	/*!< in: a dummy parameter
- 						required by os_thread_create */
- {
- 	ut_a(!srv_read_only_mode);
---- a/storage/innobase/fil/fil0fil.cc
-+++ b/storage/innobase/fil/fil0fil.cc
-@@ -1875,7 +1875,7 @@ fil_set_max_space_id_if_bigger(
- Writes the flushed lsn and the latest archived log number to the page header
- of the first page of a data file of the system tablespace (space 0),
- which is uncompressed. */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- dberr_t
- fil_write_lsn_and_arch_no_to_file(
- /*==============================*/
-@@ -1883,7 +1883,7 @@ fil_write_lsn_and_arch_no_to_file(
- 	ulint	sum_of_sizes,	/*!< in: combined size of previous files
- 				in space, in database pages */
- 	lsn_t	lsn,		/*!< in: lsn to write */
--	ulint	arch_log_no __attribute__((unused)))
-+	ulint	arch_log_no MY_ATTRIBUTE((unused)))
- 				/*!< in: archived log number to write */
- {
- 	byte*	buf1;
-@@ -1970,7 +1970,7 @@ Checks the consistency of the first data page of a tablespace
- at database startup.
- @retval NULL on success, or if innodb_force_recovery is set
- @return pointer to an error message string */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- const char*
- fil_check_first_page(
- /*=================*/
---- a/storage/innobase/fsp/fsp0fsp.cc
-+++ b/storage/innobase/fsp/fsp0fsp.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -93,7 +93,7 @@ fseg_n_reserved_pages_low(
- /********************************************************************//**
- Marks a page used. The page must reside within the extents of the given
- segment. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- fseg_mark_page_used(
- /*================*/
-@@ -132,7 +132,7 @@ fsp_fill_free_list(
- 	ulint		space,		/*!< in: space */
- 	fsp_header_t*	header,		/*!< in/out: space header */
- 	mtr_t*		mtr)		/*!< in/out: mini-transaction */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Allocates a single free page from a segment. This function implements
- the intelligent allocation strategy which tries to minimize file space
-@@ -161,7 +161,7 @@ fseg_alloc_free_page_low(
- 				in which the page should be initialized.
- 				If init_mtr!=mtr, but the page is already
- 				latched in mtr, do not initialize the page. */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- #endif /* !UNIV_HOTBACKUP */
- 
- /**********************************************************************//**
-@@ -425,7 +425,7 @@ descriptor resides is x-locked. This function no longer extends the data
- file.
- @return pointer to the extent descriptor, NULL if the page does not
- exist in the space or if the offset is >= the free limit */
--UNIV_INLINE __attribute__((nonnull, warn_unused_result))
-+UNIV_INLINE MY_ATTRIBUTE((nonnull, warn_unused_result))
- xdes_t*
- xdes_get_descriptor_with_space_hdr(
- /*===============================*/
-@@ -487,7 +487,7 @@ is necessary to make the descriptor defined, as they are uninitialized
- above the free limit.
- @return pointer to the extent descriptor, NULL if the page does not
- exist in the space or if the offset exceeds the free limit */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- xdes_t*
- xdes_get_descriptor(
- /*================*/
-@@ -614,7 +614,7 @@ byte*
- fsp_parse_init_file_page(
- /*=====================*/
- 	byte*		ptr,	/*!< in: buffer */
--	byte*		end_ptr __attribute__((unused)), /*!< in: buffer end */
-+	byte*		end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
- 	buf_block_t*	block)	/*!< in: block or NULL */
- {
- 	ut_ad(ptr && end_ptr);
-@@ -850,7 +850,7 @@ fsp_header_get_tablespace_size(void)
- Tries to extend a single-table tablespace so that a page would fit in the
- data file.
- @return	TRUE if success */
--static UNIV_COLD __attribute__((nonnull, warn_unused_result))
-+static UNIV_COLD MY_ATTRIBUTE((nonnull, warn_unused_result))
- ibool
- fsp_try_extend_data_file_with_pages(
- /*================================*/
-@@ -882,7 +882,7 @@ fsp_try_extend_data_file_with_pages(
- /***********************************************************************//**
- Tries to extend the last data file of a tablespace if it is auto-extending.
- @return	FALSE if not auto-extending */
--static UNIV_COLD __attribute__((nonnull))
-+static UNIV_COLD MY_ATTRIBUTE((nonnull))
- ibool
- fsp_try_extend_data_file(
- /*=====================*/
-@@ -1236,7 +1236,7 @@ fsp_alloc_free_extent(
- 
- /**********************************************************************//**
- Allocates a single free page from a space. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- fsp_alloc_from_free_frag(
- /*=====================*/
-@@ -1327,7 +1327,7 @@ Allocates a single free page from a space. The page is marked as used.
- @retval block, rw_lock_x_lock_count(&block->lock) == 1 if allocation succeeded
- (init_mtr == mtr, or the page was not previously freed in mtr)
- @retval block (not allocated or initialized) otherwise */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- buf_block_t*
- fsp_alloc_free_page(
- /*================*/
-@@ -1576,9 +1576,9 @@ fsp_seg_inode_page_get_nth_inode(
- /*=============================*/
- 	page_t*	page,	/*!< in: segment inode page */
- 	ulint	i,	/*!< in: inode index on page */
--	ulint	zip_size __attribute__((unused)),
-+	ulint	zip_size MY_ATTRIBUTE((unused)),
- 			/*!< in: compressed page size, or 0 */
--	mtr_t*	mtr __attribute__((unused)))
-+	mtr_t*	mtr MY_ATTRIBUTE((unused)))
- 			/*!< in/out: mini-transaction */
- {
- 	ut_ad(i < FSP_SEG_INODES_PER_PAGE(zip_size));
-@@ -1877,7 +1877,7 @@ fseg_get_nth_frag_page_no(
- /*======================*/
- 	fseg_inode_t*	inode,	/*!< in: segment inode */
- 	ulint		n,	/*!< in: slot index */
--	mtr_t*		mtr __attribute__((unused)))
-+	mtr_t*		mtr MY_ATTRIBUTE((unused)))
- 				/*!< in/out: mini-transaction */
- {
- 	ut_ad(inode && mtr);
-@@ -2958,7 +2958,7 @@ fsp_get_available_space_in_free_extents(
- /********************************************************************//**
- Marks a page used. The page must reside within the extents of the given
- segment. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- fseg_mark_page_used(
- /*================*/
---- a/storage/innobase/fts/fts0blex.cc
-+++ b/storage/innobase/fts/fts0blex.cc
-@@ -305,9 +305,9 @@ YY_BUFFER_STATE fts0b_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner
- YY_BUFFER_STATE fts0b_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
- YY_BUFFER_STATE fts0b_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
- 
--void *fts0balloc (yy_size_t ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
--void *fts0brealloc (void *,yy_size_t ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
--void fts0bfree (void * ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
-+void *fts0balloc (yy_size_t ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
-+void *fts0brealloc (void *,yy_size_t ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
-+void fts0bfree (void * ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
- 
- #define yy_new_buffer fts0b_create_buffer
- 
-@@ -347,7 +347,7 @@ typedef int yy_state_type;
- static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
- static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
- static int yy_get_next_buffer (yyscan_t yyscanner );
--static void yy_fatal_error (yyconst char msg[] ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
-+static void yy_fatal_error (yyconst char msg[] ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
- 
- /* Done after the current pattern has been matched and before the
-  * corresponding action - sets up yytext.
-@@ -451,7 +451,7 @@ static yyconst flex_int16_t yy_chk[32] =
- #line 1 "fts0blex.l"
- /*****************************************************************************
- 
--Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -579,11 +579,11 @@ extern int fts0bwrap (yyscan_t yyscanner );
- #endif
- 
- #ifndef yytext_ptr
--static void yy_flex_strncpy (char *,yyconst char *,int ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
-+static void yy_flex_strncpy (char *,yyconst char *,int ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
- #endif
- 
- #ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
-+static int yy_flex_strlen (yyconst char * ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
- #endif
- 
- #ifndef YY_NO_INPUT
-@@ -1609,7 +1609,7 @@ YY_BUFFER_STATE fts0b_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , y
- #define YY_EXIT_FAILURE 2
- #endif
- 
--static void yy_fatal_error (yyconst char* msg ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static void yy_fatal_error (yyconst char* msg ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	(void) fprintf( stderr, "%s\n", msg );
- 	exit( YY_EXIT_FAILURE );
-@@ -1910,7 +1910,7 @@ int fts0blex_destroy  (yyscan_t yyscanner)
-  */
- 
- #ifndef yytext_ptr
--static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	register int i;
- 	for ( i = 0; i < n; ++i )
-@@ -1919,7 +1919,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yys
- #endif
- 
- #ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	register int n;
- 	for ( n = 0; s[n]; ++n )
-@@ -1929,12 +1929,12 @@ static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner __at
- }
- #endif
- 
--void *fts0balloc (yy_size_t  size ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void *fts0balloc (yy_size_t  size ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	return (void *) malloc( size );
- }
- 
--void *fts0brealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void *fts0brealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	/* The cast to (char *) in the following accommodates both
- 	 * implementations that use char* generic pointers, and those
-@@ -1946,7 +1946,7 @@ void *fts0brealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner
- 	return (void *) realloc( (char *) ptr, size );
- }
- 
--void fts0bfree (void * ptr ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void fts0bfree (void * ptr ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	free( (char *) ptr );	/* see fts0brealloc() for (char *) cast */
- }
---- a/storage/innobase/fts/fts0fts.cc
-+++ b/storage/innobase/fts/fts0fts.cc
-@@ -280,7 +280,7 @@ void
- fts_words_free(
- /*===========*/
- 	ib_rbt_t*	words)		/*!< in: rb tree of words */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef FTS_CACHE_SIZE_DEBUG
- /****************************************************************//**
- Read the max cache size parameter from the config table. */
-@@ -302,7 +302,7 @@ fts_add_doc_by_id(
- /*==============*/
- 	fts_trx_table_t*ftt,		/*!< in: FTS trx table */
- 	doc_id_t	doc_id,		/*!< in: doc id */
--	ib_vector_t*	fts_indexes __attribute__((unused)));
-+	ib_vector_t*	fts_indexes MY_ATTRIBUTE((unused)));
- 					/*!< in: affected fts indexes */
- #ifdef FTS_DOC_STATS_DEBUG
- /****************************************************************//**
-@@ -317,7 +317,7 @@ fts_is_word_in_index(
- 	fts_table_t*	fts_table,	/*!< in: table instance */
- 	const fts_string_t* word,	/*!< in: the word to check */
- 	ibool*		found)		/*!< out: TRUE if exists */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* FTS_DOC_STATS_DEBUG */
- 
- /******************************************************************//**
-@@ -332,7 +332,7 @@ fts_update_sync_doc_id(
- 	const char*		table_name,	/*!< in: table name, or NULL */
- 	doc_id_t		doc_id,		/*!< in: last document id */
- 	trx_t*			trx)		/*!< in: update trx, or NULL */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- 
- /****************************************************************//**
- This function loads the default InnoDB stopword list */
-@@ -1477,7 +1477,7 @@ fts_cache_add_doc(
- /****************************************************************//**
- Drops a table. If the table can't be found we return a SUCCESS code.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_drop_table(
- /*===========*/
-@@ -1519,7 +1519,7 @@ fts_drop_table(
- /****************************************************************//**
- Rename a single auxiliary table due to database name change.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_rename_one_aux_table(
- /*=====================*/
-@@ -1628,7 +1628,7 @@ Drops the common ancillary tables needed for supporting an FTS index
- on the given table. row_mysql_lock_data_dictionary must have been called
- before this.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_drop_common_tables(
- /*===================*/
-@@ -1755,7 +1755,7 @@ Drops FTS ancillary tables needed for supporting an FTS index
- on the given table. row_mysql_lock_data_dictionary must have been called
- before this.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_drop_all_index_tables(
- /*======================*/
-@@ -2663,7 +2663,7 @@ fts_get_next_doc_id(
- This function fetch the Doc ID from CONFIG table, and compare with
- the Doc ID supplied. And store the larger one to the CONFIG table.
- @return DB_SUCCESS if OK */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- fts_cmp_set_sync_doc_id(
- /*====================*/
-@@ -2917,7 +2917,7 @@ fts_add(
- /*********************************************************************//**
- Do commit-phase steps necessary for the deletion of a row.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_delete(
- /*=======*/
-@@ -3008,7 +3008,7 @@ fts_delete(
- /*********************************************************************//**
- Do commit-phase steps necessary for the modification of a row.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_modify(
- /*=======*/
-@@ -3079,7 +3079,7 @@ fts_create_doc_id(
- The given transaction is about to be committed; do whatever is necessary
- from the FTS system's POV.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_commit_table(
- /*=============*/
-@@ -3412,7 +3412,7 @@ fts_add_doc_by_id(
- /*==============*/
- 	fts_trx_table_t*ftt,		/*!< in: FTS trx table */
- 	doc_id_t	doc_id,		/*!< in: doc id */
--	ib_vector_t*	fts_indexes __attribute__((unused)))
-+	ib_vector_t*	fts_indexes MY_ATTRIBUTE((unused)))
- 					/*!< in: affected fts indexes */
- {
- 	mtr_t		mtr;
-@@ -3532,7 +3532,7 @@ fts_add_doc_by_id(
- 				get_doc, clust_index, doc_pcur, offsets, &doc);
- 
- 			if (doc.found) {
--				ibool	success __attribute__((unused));
-+				ibool	success MY_ATTRIBUTE((unused));
- 
- 				btr_pcur_store_position(doc_pcur, &mtr);
- 				mtr_commit(&mtr);
-@@ -3641,7 +3641,7 @@ fts_get_max_doc_id(
- 	dict_table_t*	table)		/*!< in: user table */
- {
- 	dict_index_t*	index;
--	dict_field_t*	dfield __attribute__((unused)) = NULL;
-+	dict_field_t*	dfield MY_ATTRIBUTE((unused)) = NULL;
- 	doc_id_t	doc_id = 0;
- 	mtr_t		mtr;
- 	btr_pcur_t	pcur;
-@@ -3899,7 +3899,7 @@ fts_write_node(
- /*********************************************************************//**
- Add rows to the DELETED_CACHE table.
- @return DB_SUCCESS if all went well else error code*/
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_sync_add_deleted_cache(
- /*=======================*/
-@@ -3953,7 +3953,7 @@ fts_sync_add_deleted_cache(
- @param[in]	index_cache	index cache
- @param[in]	unlock_cache	whether unlock cache when write node
- @return DB_SUCCESS if all went well else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_sync_write_words(
- 	trx_t*			trx,
-@@ -4089,7 +4089,7 @@ fts_sync_write_words(
- /*********************************************************************//**
- Write a single documents statistics to disk.
- @return DB_SUCCESS if all went well else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_sync_write_doc_stat(
- /*====================*/
-@@ -4343,7 +4343,7 @@ fts_sync_begin(
- Run SYNC on the table, i.e., write out data from the index specific
- cache to the FTS aux INDEX table and FTS aux doc id stats table.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_sync_index(
- /*===========*/
-@@ -4411,7 +4411,7 @@ fts_sync_index_check(
- /*********************************************************************//**
- Commit the SYNC, change state of processed doc ids etc.
- @return DB_SUCCESS if all OK */
--static  __attribute__((nonnull, warn_unused_result))
-+static  MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_sync_commit(
- /*============*/
-@@ -6169,7 +6169,7 @@ fts_update_hex_format_flag(
- /*********************************************************************//**
- Rename an aux table to HEX format. It's called when "%016llu" is used
- to format an object id in table name, which only happens in Windows. */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_rename_one_aux_table_to_hex_format(
- /*===================================*/
-@@ -6260,7 +6260,7 @@ Note the ids in tables are correct but the names are old ambiguous ones.
- 
- This function should make sure that either all the parent table and aux tables
- are set DICT_TF2_FTS_AUX_HEX_NAME with flags2 or none of them are set */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_rename_aux_tables_to_hex_format_low(
- /*====================================*/
-@@ -6414,7 +6414,7 @@ fts_fake_hex_to_dec(
- {
- 	ib_id_t		dec_id = 0;
- 	char		tmp_id[FTS_AUX_MIN_TABLE_ID_LENGTH];
--	int		ret __attribute__((unused));
-+	int		ret MY_ATTRIBUTE((unused));
- 
- 	ret = sprintf(tmp_id, UINT64PFx, id);
- 	ut_ad(ret == 16);
-@@ -6736,7 +6736,7 @@ fts_drop_aux_table_from_vector(
- Check and drop all orphaned FTS auxiliary tables, those that don't have
- a parent table or FTS index defined on them.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- fts_check_and_drop_orphaned_tables(
- /*===============================*/
---- a/storage/innobase/fts/fts0opt.cc
-+++ b/storage/innobase/fts/fts0opt.cc
-@@ -797,7 +797,7 @@ fts_zip_deflate_end(
- Read the words from the FTS INDEX.
- @return DB_SUCCESS if all OK, DB_TABLE_NOT_FOUND if no more indexes
-         to search else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_index_fetch_words(
- /*==================*/
-@@ -1131,7 +1131,7 @@ fts_optimize_lookup(
- /**********************************************************************//**
- Encode the word pos list into the node
- @return DB_SUCCESS or error code*/
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- fts_optimize_encode_node(
- /*=====================*/
-@@ -1220,7 +1220,7 @@ fts_optimize_encode_node(
- /**********************************************************************//**
- Optimize the data contained in a node.
- @return DB_SUCCESS or error code*/
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- fts_optimize_node(
- /*==============*/
-@@ -1318,7 +1318,7 @@ test_again:
- /**********************************************************************//**
- Determine the starting pos within the deleted doc id vector for a word.
- @return delete position */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- int
- fts_optimize_deleted_pos(
- /*=====================*/
-@@ -1447,7 +1447,7 @@ fts_optimize_word(
- /**********************************************************************//**
- Update the FTS index table. This is a delete followed by an insert.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_write_word(
- /*====================*/
-@@ -1550,7 +1550,7 @@ fts_word_free(
- /**********************************************************************//**
- Optimize the word ilist and rewrite data to the FTS index.
- @return status one of RESTART, EXIT, ERROR */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_compact(
- /*=================*/
-@@ -1645,7 +1645,7 @@ fts_optimize_create(
- /**********************************************************************//**
- Get optimize start time of an FTS index.
- @return DB_SUCCESS if all OK else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_get_index_start_time(
- /*==============================*/
-@@ -1661,7 +1661,7 @@ fts_optimize_get_index_start_time(
- /**********************************************************************//**
- Set the optimize start time of an FTS index.
- @return DB_SUCCESS if all OK else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_set_index_start_time(
- /*==============================*/
-@@ -1677,7 +1677,7 @@ fts_optimize_set_index_start_time(
- /**********************************************************************//**
- Get optimize end time of an FTS index.
- @return DB_SUCCESS if all OK else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_get_index_end_time(
- /*============================*/
-@@ -1692,7 +1692,7 @@ fts_optimize_get_index_end_time(
- /**********************************************************************//**
- Set the optimize end time of an FTS index.
- @return DB_SUCCESS if all OK else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_set_index_end_time(
- /*============================*/
-@@ -1912,7 +1912,7 @@ fts_optimize_set_next_word(
- Optimize is complete. Set the completion time, and reset the optimize
- start string for this FTS index to "".
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_index_completed(
- /*=========================*/
-@@ -1952,7 +1952,7 @@ fts_optimize_index_completed(
- Read the list of words from the FTS auxiliary index that will be
- optimized in this pass.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_index_read_words(
- /*==========================*/
-@@ -2009,7 +2009,7 @@ fts_optimize_index_read_words(
- Run OPTIMIZE on the given FTS index. Note: this can take a very long
- time (hours).
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_index(
- /*===============*/
-@@ -2080,7 +2080,7 @@ fts_optimize_index(
- /**********************************************************************//**
- Delete the document ids in the delete, and delete cache tables.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_purge_deleted_doc_ids(
- /*===============================*/
-@@ -2149,7 +2149,7 @@ fts_optimize_purge_deleted_doc_ids(
- /**********************************************************************//**
- Delete the document ids in the pending delete, and delete tables.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_purge_deleted_doc_id_snapshot(
- /*=======================================*/
-@@ -2199,7 +2199,7 @@ Copy the deleted doc ids that will be purged during this optimize run
- to the being deleted FTS auxiliary tables. The transaction is committed
- upon successfull copy and rolled back on DB_DUPLICATE_KEY error.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_create_deleted_doc_id_snapshot(
- /*========================================*/
-@@ -2237,7 +2237,7 @@ fts_optimize_create_deleted_doc_id_snapshot(
- Read in the document ids that are to be purged during optimize. The
- transaction is committed upon successfully read.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_read_deleted_doc_id_snapshot(
- /*======================================*/
-@@ -2274,7 +2274,7 @@ Optimze all the FTS indexes, skipping those that have already been
- optimized, since the FTS auxiliary indexes are not guaranteed to be
- of the same cardinality.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_indexes(
- /*=================*/
-@@ -2344,7 +2344,7 @@ fts_optimize_indexes(
- /*********************************************************************//**
- Cleanup the snapshot tables and the master deleted table.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_purge_snapshot(
- /*========================*/
-@@ -2373,7 +2373,7 @@ fts_optimize_purge_snapshot(
- /*********************************************************************//**
- Reset the start time to 0 so that a new optimize can be started.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_optimize_reset_start_time(
- /*==========================*/
-@@ -2412,7 +2412,7 @@ fts_optimize_reset_start_time(
- /*********************************************************************//**
- Run OPTIMIZE on the given table by a background thread.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- fts_optimize_table_bk(
- /*==================*/
---- a/storage/innobase/fts/fts0que.cc
-+++ b/storage/innobase/fts/fts0que.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2007, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -287,7 +287,7 @@ fts_expand_query(
- 	dict_index_t*	index,		/*!< in: FTS index to search */
- 	fts_query_t*	query)		/*!< in: query result, to be freed
- 					by the client */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- This function finds documents that contain all words in a
- phrase or proximity search. And if proximity search, verify
-@@ -1128,7 +1128,7 @@ cont_search:
- /*****************************************************************//**
- Set difference.
- @return DB_SUCCESS if all go well */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_difference(
- /*=================*/
-@@ -1220,7 +1220,7 @@ fts_query_difference(
- /*****************************************************************//**
- Intersect the token doc ids with the current set.
- @return DB_SUCCESS if all go well */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_intersect(
- /*================*/
-@@ -1398,7 +1398,7 @@ fts_query_cache(
- /*****************************************************************//**
- Set union.
- @return DB_SUCCESS if all go well */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_union(
- /*============*/
-@@ -2014,7 +2014,7 @@ fts_query_select(
- Read the rows from the FTS index, that match word and where the
- doc id is between first and last doc id.
- @return DB_SUCCESS if all go well else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_find_term(
- /*================*/
-@@ -2154,7 +2154,7 @@ fts_query_sum(
- /********************************************************************
- Calculate the total documents that contain a particular word (term).
- @return DB_SUCCESS if all go well else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_total_docs_containing_term(
- /*=================================*/
-@@ -2233,7 +2233,7 @@ fts_query_total_docs_containing_term(
- /********************************************************************
- Get the total number of words in a documents.
- @return DB_SUCCESS if all go well else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_terms_in_document(
- /*========================*/
-@@ -2314,7 +2314,7 @@ fts_query_terms_in_document(
- /*****************************************************************//**
- Retrieve the document and match the phrase tokens.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_match_document(
- /*=====================*/
-@@ -2360,7 +2360,7 @@ fts_query_match_document(
- This function fetches the original documents and count the
- words in between matching words to see that is in specified distance
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- fts_query_is_in_proximity_range(
- /*============================*/
-@@ -2415,7 +2415,7 @@ fts_query_is_in_proximity_range(
- Iterate over the matched document ids and search the for the
- actual phrase in the text.
- @return DB_SUCCESS if all OK */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_search_phrase(
- /*====================*/
-@@ -2503,7 +2503,7 @@ func_exit:
- /*****************************************************************//**
- Text/Phrase search.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_phrase_search(
- /*====================*/
-@@ -2754,7 +2754,7 @@ func_exit:
- /*****************************************************************//**
- Find the word and evaluate.
- @return DB_SUCCESS if all go well */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_query_execute(
- /*==============*/
-@@ -4123,7 +4123,7 @@ words in documents found in the first search pass will be used as
- search arguments to search the document again, thus "expand"
- the search result set.
- @return DB_SUCCESS if success, otherwise the error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- fts_expand_query(
- /*=============*/
---- a/storage/innobase/fts/fts0tlex.cc
-+++ b/storage/innobase/fts/fts0tlex.cc
-@@ -305,9 +305,9 @@ YY_BUFFER_STATE fts0t_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner
- YY_BUFFER_STATE fts0t_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
- YY_BUFFER_STATE fts0t_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
- 
--void *fts0talloc (yy_size_t ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
--void *fts0trealloc (void *,yy_size_t ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
--void fts0tfree (void * ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
-+void *fts0talloc (yy_size_t ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
-+void *fts0trealloc (void *,yy_size_t ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
-+void fts0tfree (void * ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
- 
- #define yy_new_buffer fts0t_create_buffer
- 
-@@ -347,7 +347,7 @@ typedef int yy_state_type;
- static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
- static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
- static int yy_get_next_buffer (yyscan_t yyscanner );
--static void yy_fatal_error (yyconst char msg[] ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) );
-+static void yy_fatal_error (yyconst char msg[] ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) );
- 
- /* Done after the current pattern has been matched and before the
-  * corresponding action - sets up yytext.
-@@ -447,7 +447,7 @@ static yyconst flex_int16_t yy_chk[29] =
- #line 1 "fts0tlex.l"
- /*****************************************************************************
- 
--Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -575,11 +575,11 @@ extern int fts0twrap (yyscan_t yyscanner );
- #endif
- 
- #ifndef yytext_ptr
--static void yy_flex_strncpy (char *,yyconst char *,int ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
-+static void yy_flex_strncpy (char *,yyconst char *,int ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
- #endif
- 
- #ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * ,           yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)));
-+static int yy_flex_strlen (yyconst char * ,           yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)));
- #endif
- 
- #ifndef YY_NO_INPUT
-@@ -1602,7 +1602,7 @@ YY_BUFFER_STATE fts0t_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , y
- #define YY_EXIT_FAILURE 2
- #endif
- 
--static void yy_fatal_error (yyconst char* msg ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static void yy_fatal_error (yyconst char* msg ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
-     	(void) fprintf( stderr, "%s\n", msg );
- 	exit( YY_EXIT_FAILURE );
-@@ -1903,7 +1903,7 @@ int fts0tlex_destroy  (yyscan_t yyscanner)
-  */
- 
- #ifndef yytext_ptr
--static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	register int i;
- 	for ( i = 0; i < n; ++i )
-@@ -1912,7 +1912,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ,            yys
- #endif
- 
- #ifdef YY_NEED_STRLEN
--static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	register int n;
- 	for ( n = 0; s[n]; ++n )
-@@ -1922,12 +1922,12 @@ static int yy_flex_strlen (yyconst char * s ,            yyscan_t yyscanner __at
- }
- #endif
- 
--void *fts0talloc (yy_size_t  size ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void *fts0talloc (yy_size_t  size ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	return (void *) malloc( size );
- }
- 
--void *fts0trealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void *fts0trealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	/* The cast to (char *) in the following accommodates both
- 	 * implementations that use char* generic pointers, and those
-@@ -1939,7 +1939,7 @@ void *fts0trealloc  (void * ptr, yy_size_t  size ,            yyscan_t yyscanner
- 	return (void *) realloc( (char *) ptr, size );
- }
- 
--void fts0tfree (void * ptr ,            yyscan_t yyscanner __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)) __attribute__((unused)))
-+void fts0tfree (void * ptr ,            yyscan_t yyscanner MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)) MY_ATTRIBUTE((unused)))
- {
- 	free( (char *) ptr );	/* see fts0trealloc() for (char *) cast */
- }
---- a/storage/innobase/fts/make_parser.sh
-+++ b/storage/innobase/fts/make_parser.sh
-@@ -1,6 +1,6 @@
- #!/bin/sh
- #
--# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- #
- # This program is free software; you can redistribute it and/or modify it under
- # the terms of the GNU General Public License as published by the Free Software
-@@ -22,15 +22,15 @@ make -f Makefile.query
- echo '#include "univ.i"' > $TMPF
- 
- # This is to avoid compiler warning about unused parameters.
--# FIXME: gcc extension "__attribute__" causing compilation errors on windows
-+# FIXME: gcc extension "MY_ATTRIBUTE" causing compilation errors on windows
- # platform. Quote them out for now.
- sed -e '
--s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
-+s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
- ' < fts0blex.cc >> $TMPF
- 
- mv $TMPF fts0blex.cc
-@@ -38,12 +38,12 @@ mv $TMPF fts0blex.cc
- echo '#include "univ.i"' > $TMPF
- 
- sed -e '
--s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
--s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 __attribute__((unused))/;
-+s/^\(static.*void.*yy_fatal_error.*msg.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(static.*void.*yy_flex_strncpy.*n.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(static.*int.*yy_flex_strlen.*s.*,\)\(.*yyscanner\)/\1 \2 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]alloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]realloc.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
-+s/^\(\(static\|void\).*fts0[bt]free.*,\)\(.*yyscanner\)/\1 \3 MY_ATTRIBUTE((unused))/;
- ' < fts0tlex.cc >> $TMPF
- 
- mv $TMPF fts0tlex.cc
---- a/storage/innobase/handler/ha_innodb.cc
-+++ b/storage/innobase/handler/ha_innodb.cc
-@@ -1425,7 +1425,7 @@ thd_set_lock_wait_time(
- /********************************************************************//**
- Obtain the InnoDB transaction of a MySQL thread.
- @return	reference to transaction pointer */
--__attribute__((warn_unused_result, nonnull))
-+MY_ATTRIBUTE((warn_unused_result, nonnull))
- static inline
- trx_t*&
- thd_to_trx(
-@@ -3486,7 +3486,7 @@ int
- innobase_end(
- /*=========*/
- 	handlerton*		hton,	/*!< in/out: InnoDB handlerton */
--	ha_panic_function	type __attribute__((unused)))
-+	ha_panic_function	type MY_ATTRIBUTE((unused)))
- 					/*!< in: ha_panic() parameter */
- {
- 	int	err= 0;
-@@ -8612,7 +8612,7 @@ create_table_check_doc_id_col(
- 
- /*****************************************************************//**
- Creates a table definition to an InnoDB database. */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- int
- create_table_def(
- /*=============*/
-@@ -10325,7 +10325,7 @@ innobase_drop_database(
- /*********************************************************************//**
- Renames an InnoDB table.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- innobase_rename_table(
- /*==================*/
-@@ -15235,7 +15235,7 @@ static char* srv_buffer_pool_evict;
- Evict all uncompressed pages of compressed tables from the buffer pool.
- Keep the compressed pages in the buffer pool.
- @return whether all uncompressed pages were evicted */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- bool
- innodb_buffer_pool_evict_uncompressed(void)
- /*=======================================*/
-@@ -15563,13 +15563,13 @@ void
- purge_run_now_set(
- /*==============*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15586,13 +15586,13 @@ void
- purge_stop_now_set(
- /*===============*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15608,13 +15608,13 @@ void
- checkpoint_now_set(
- /*===============*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15635,13 +15635,13 @@ void
- buf_flush_list_now_set(
- /*===================*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15738,13 +15738,13 @@ void
- buffer_pool_dump_now(
- /*=================*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15761,13 +15761,13 @@ void
- buffer_pool_load_now(
- /*=================*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15784,13 +15784,13 @@ void
- buffer_pool_load_abort(
- /*===================*/
- 	THD*				thd	/*!< in: thread handle */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	struct st_mysql_sys_var*	var	/*!< in: pointer to system
- 						variable */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	void*				var_ptr	/*!< out: where the formal
- 						string goes */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const void*			save)	/*!< in: immediate result from
- 						check function */
- {
-@@ -15808,10 +15808,10 @@ which control InnoDB "status monitor" output to the error log.
- static
- void
- innodb_status_output_update(
--	THD*				thd __attribute__((unused)),
--	struct st_mysql_sys_var*	var __attribute__((unused)),
--	void*				var_ptr __attribute__((unused)),
--	const void*			save __attribute__((unused)))
-+	THD*				thd MY_ATTRIBUTE((unused)),
-+	struct st_mysql_sys_var*	var MY_ATTRIBUTE((unused)),
-+	void*				var_ptr MY_ATTRIBUTE((unused)),
-+	const void*			save MY_ATTRIBUTE((unused)))
- {
- 	*static_cast<my_bool*>(var_ptr) = *static_cast<const my_bool*>(save);
- 	/* The lock timeout monitor thread also takes care of this
---- a/storage/innobase/handler/ha_innodb.h
-+++ b/storage/innobase/handler/ha_innodb.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2000, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -430,14 +430,14 @@ enum durability_properties thd_get_durability_property(const MYSQL_THD thd);
- @param off	auto_increment_offset
- @param inc	auto_increment_increment */
- void thd_get_autoinc(const MYSQL_THD thd, ulong* off, ulong* inc)
--__attribute__((nonnull));
-+MY_ATTRIBUTE((nonnull));
- 
- /** Is strict sql_mode set.
- @param thd	Thread object
- @return True if sql_mode has strict mode (all or trans), false otherwise.
- */
- bool thd_is_strict_mode(const MYSQL_THD thd)
--__attribute__((nonnull));
-+MY_ATTRIBUTE((nonnull));
- } /* extern "C" */
- 
- struct trx_t;
-@@ -475,7 +475,7 @@ innobase_index_name_is_reserved(
- 	const KEY*	key_info,	/*!< in: Indexes to be created */
- 	ulint		num_of_keys)	/*!< in: Number of indexes to
- 					be created. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*****************************************************************//**
- Determines InnoDB table flags.
-@@ -492,7 +492,7 @@ innobase_table_flags(
- 						outside system tablespace */
- 	ulint*			flags,		/*!< out: DICT_TF flags */
- 	ulint*			flags2)		/*!< out: DICT_TF2 flags */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*****************************************************************//**
- Validates the create options. We may build on this function
-@@ -509,7 +509,7 @@ create_options_are_invalid(
- 					columns and indexes */
- 	HA_CREATE_INFO*	create_info,	/*!< in: create info. */
- 	bool		use_tablespace)	/*!< in: srv_file_per_table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Retrieve the FTS Relevance Ranking result for doc with doc_id
-@@ -539,7 +539,7 @@ void
- innobase_fts_close_ranking(
- /*=======================*/
- 	FT_INFO*	fts_hdl)	/*!< in: FTS handler */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*****************************************************************//**
- Initialize the table FTS stopword list
- @return TRUE if success */
-@@ -550,7 +550,7 @@ innobase_fts_load_stopword(
- 	dict_table_t*	table,		/*!< in: Table has the FTS */
- 	trx_t*		trx,		/*!< in: transaction */
- 	THD*		thd)		/*!< in: current thread */
--	__attribute__((nonnull(1,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,3), warn_unused_result));
- 
- /** Some defines for innobase_fts_check_doc_id_index() return value */
- enum fts_doc_id_index_enum {
-@@ -572,7 +572,7 @@ innobase_fts_check_doc_id_index(
- 						that is being altered */
- 	ulint*			fts_doc_col_no)	/*!< out: The column number for
- 						Doc ID */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*******************************************************************//**
- Check whether the table has a unique index with FTS_DOC_ID_INDEX_NAME
-@@ -585,7 +585,7 @@ innobase_fts_check_doc_id_index_in_def(
- /*===================================*/
- 	ulint		n_key,		/*!< in: Number of keys */
- 	const KEY*	key_info)	/*!< in: Key definitions */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /***********************************************************************
- @return version of the extended FTS API */
---- a/storage/innobase/handler/handler0alter.cc
-+++ b/storage/innobase/handler/handler0alter.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -98,7 +98,7 @@ static const Alter_inplace_info::HA_ALTER_FLAGS INNOBASE_ALTER_NOREBUILD
- 	| Alter_inplace_info::ALTER_COLUMN_NAME;
- 
- /* Report an InnoDB error to the client by invoking my_error(). */
--static UNIV_COLD __attribute__((nonnull))
-+static UNIV_COLD MY_ATTRIBUTE((nonnull))
- void
- my_error_innodb(
- /*============*/
-@@ -195,7 +195,7 @@ innobase_fulltext_exist(
- Determine if ALTER TABLE needs to rebuild the table.
- @param ha_alter_info		the DDL operation
- @return whether it is necessary to rebuild the table */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_need_rebuild(
- /*==================*/
-@@ -515,7 +515,7 @@ ha_innobase::check_if_supported_inplace_alter(
- /*************************************************************//**
- Initialize the dict_foreign_t structure with supplied info
- @return true if added, false if duplicate foreign->id */
--static __attribute__((nonnull(1,3,5,7)))
-+static MY_ATTRIBUTE((nonnull(1,3,5,7)))
- bool
- innobase_init_foreign(
- /*==================*/
-@@ -604,7 +604,7 @@ innobase_init_foreign(
- /*************************************************************//**
- Check whether the foreign key options is legit
- @return true if it is */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_check_fk_option(
- /*=====================*/
-@@ -636,7 +636,7 @@ innobase_check_fk_option(
- /*************************************************************//**
- Set foreign key options
- @return true if successfully set */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_set_foreign_key_option(
- /*============================*/
-@@ -681,7 +681,7 @@ innobase_set_foreign_key_option(
- Check if a foreign key constraint can make use of an index
- that is being created.
- @return	useable index, or NULL if none found */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const KEY*
- innobase_find_equiv_index(
- /*======================*/
-@@ -737,7 +737,7 @@ no_match:
- Find an index whose first fields are the columns in the array
- in the same order and is not marked for deletion
- @return matching index, NULL if not found */
--static __attribute__((nonnull(1,2,6), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,2,6), warn_unused_result))
- dict_index_t*
- innobase_find_fk_index(
- /*===================*/
-@@ -784,7 +784,7 @@ next_rec:
- Create InnoDB foreign key structure from MySQL alter_info
- @retval true if successful
- @retval false on error (will call my_error()) */
--static __attribute__((nonnull(1,2,3,7,8), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,2,3,7,8), warn_unused_result))
- bool
- innobase_get_foreign_key_info(
- /*==========================*/
-@@ -1269,7 +1269,7 @@ innobase_rec_reset(
- /*******************************************************************//**
- This function checks that index keys are sensible.
- @return	0 or error number */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- int
- innobase_check_index_keys(
- /*======================*/
-@@ -1390,7 +1390,7 @@ name_ok:
- 
- /*******************************************************************//**
- Create index field definition for key part */
--static __attribute__((nonnull(2,3)))
-+static MY_ATTRIBUTE((nonnull(2,3)))
- void
- innobase_create_index_field_def(
- /*============================*/
-@@ -1437,7 +1437,7 @@ innobase_create_index_field_def(
- 
- /*******************************************************************//**
- Create index definition for key */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- innobase_create_index_def(
- /*======================*/
-@@ -1721,7 +1721,7 @@ ELSE
- ENDIF
- 
- @return	key definitions */
--static __attribute__((nonnull, warn_unused_result, malloc))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result, malloc))
- index_def_t*
- innobase_create_key_defs(
- /*=====================*/
-@@ -1940,7 +1940,7 @@ created_clustered:
- /*******************************************************************//**
- Check each index column size, make sure they do not exceed the max limit
- @return	true if index column size exceeds limit */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_check_column_length(
- /*=========================*/
-@@ -2090,7 +2090,7 @@ online_retry_drop_indexes_low(
- /********************************************************************//**
- Drop any indexes that we were not able to free previously due to
- open table handles. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- online_retry_drop_indexes(
- /*======================*/
-@@ -2120,7 +2120,7 @@ online_retry_drop_indexes(
- /********************************************************************//**
- Commit a dictionary transaction and drop any indexes that we were not
- able to free previously due to open table handles. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- online_retry_drop_indexes_with_trx(
- /*===============================*/
-@@ -2149,7 +2149,7 @@ online_retry_drop_indexes_with_trx(
- @param drop_fk		constraints being dropped
- @param n_drop_fk	number of constraints that are being dropped
- @return whether the constraint is being dropped */
--inline __attribute__((pure, nonnull, warn_unused_result))
-+inline MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
- bool
- innobase_dropping_foreign(
- /*======================*/
-@@ -2176,7 +2176,7 @@ column that is being dropped or modified to NOT NULL.
- @retval true		Not allowed (will call my_error())
- @retval false		Allowed
- */
--static __attribute__((pure, nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
- bool
- innobase_check_foreigns_low(
- /*========================*/
-@@ -2276,7 +2276,7 @@ column that is being dropped or modified to NOT NULL.
- @retval true		Not allowed (will call my_error())
- @retval false		Allowed
- */
--static __attribute__((pure, nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((pure, nonnull, warn_unused_result))
- bool
- innobase_check_foreigns(
- /*====================*/
-@@ -2321,7 +2321,7 @@ innobase_check_foreigns(
- @param dfield	InnoDB data field to copy to
- @param field	MySQL value for the column
- @param comp	nonzero if in compact format */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- innobase_build_col_map_add(
- /*=======================*/
-@@ -2355,7 +2355,7 @@ adding columns.
- @param heap		Memory heap where allocated
- @return	array of integers, mapping column numbers in the table
- to column numbers in altered_table */
--static __attribute__((nonnull(1,2,3,4,5,7), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,2,3,4,5,7), warn_unused_result))
- const ulint*
- innobase_build_col_map(
- /*===================*/
-@@ -2492,7 +2492,7 @@ innobase_drop_fts_index_table(
- @param user_table	InnoDB table as it is before the ALTER operation
- @param heap		Memory heap for the allocation
- @return array of new column names in rebuilt_table, or NULL if not renamed */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const char**
- innobase_get_col_names(
- 	Alter_inplace_info*	ha_alter_info,
-@@ -2555,7 +2555,7 @@ while preparing ALTER TABLE.
- @retval true		Failure
- @retval false		Success
- */
--static __attribute__((warn_unused_result, nonnull(1,2,3,4)))
-+static MY_ATTRIBUTE((warn_unused_result, nonnull(1,2,3,4)))
- bool
- prepare_inplace_alter_table_dict(
- /*=============================*/
-@@ -3193,7 +3193,7 @@ err_exit:
- /* Check whether an index is needed for the foreign key constraint.
- If so, if it is dropped, is there an equivalent index can play its role.
- @return true if the index is needed and can't be dropped */
--static __attribute__((nonnull(1,2,3,5), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,2,3,5), warn_unused_result))
- bool
- innobase_check_foreign_key_index(
- /*=============================*/
-@@ -4069,7 +4069,7 @@ temparary index prefix
- @param locked		TRUE=table locked, FALSE=may need to do a lazy drop
- @param trx		the transaction
- */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- innobase_rollback_sec_index(
- /*========================*/
-@@ -4103,7 +4103,7 @@ during prepare, but might not be during commit).
- @retval true		Failure
- @retval false		Success
- */
--inline __attribute__((nonnull, warn_unused_result))
-+inline MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- rollback_inplace_alter_table(
- /*=========================*/
-@@ -4235,7 +4235,7 @@ func_exit:
- @param foreign_id	Foreign key constraint identifier
- @retval true		Failure
- @retval false		Success */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_drop_foreign_try(
- /*======================*/
-@@ -4292,7 +4292,7 @@ innobase_drop_foreign_try(
- @param new_clustered	whether the table has been rebuilt
- @retval true		Failure
- @retval false		Success */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_rename_column_try(
- /*=======================*/
-@@ -4501,7 +4501,7 @@ rename_foreign:
- @param table_name	Table name in MySQL
- @retval true		Failure
- @retval false		Success */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_rename_columns_try(
- /*========================*/
-@@ -4551,7 +4551,7 @@ as part of commit_cache_norebuild().
- @param ha_alter_info	Data used during in-place alter.
- @param table		the TABLE
- @param user_table	InnoDB table that was being altered */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- innobase_rename_columns_cache(
- /*==========================*/
-@@ -4595,7 +4595,7 @@ processed_field:
- @param altered_table	MySQL table that is being altered
- @param old_table	MySQL table as it is before the ALTER operation
- @return the next auto-increment value (0 if not present) */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ulonglong
- commit_get_autoinc(
- /*===============*/
-@@ -4677,7 +4677,7 @@ but do not touch the data dictionary cache.
- @retval true		Failure
- @retval false		Success
- */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- innobase_update_foreign_try(
- /*========================*/
-@@ -4760,7 +4760,7 @@ after the changes to data dictionary tables were committed.
- @param ctx	In-place ALTER TABLE context
- @param user_thd	MySQL connection
- @return		InnoDB error code (should always be DB_SUCCESS) */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- innobase_update_foreign_cache(
- /*==========================*/
-@@ -4845,7 +4845,7 @@ when rebuilding the table.
- @retval true		Failure
- @retval false		Success
- */
--inline __attribute__((nonnull, warn_unused_result))
-+inline MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- commit_try_rebuild(
- /*===============*/
-@@ -5007,7 +5007,7 @@ commit_try_rebuild(
- /** Apply the changes made during commit_try_rebuild(),
- to the data dictionary cache and the file system.
- @param ctx	In-place ALTER TABLE context */
--inline __attribute__((nonnull))
-+inline MY_ATTRIBUTE((nonnull))
- void
- commit_cache_rebuild(
- /*=================*/
-@@ -5102,7 +5102,7 @@ when not rebuilding the table.
- @retval true		Failure
- @retval false		Success
- */
--inline __attribute__((nonnull, warn_unused_result))
-+inline MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- commit_try_norebuild(
- /*=================*/
-@@ -5212,7 +5212,7 @@ after a successful commit_try_norebuild() call.
- @param trx		Data dictionary transaction object
- (will be started and committed)
- @return whether all replacements were found for dropped indexes */
--inline __attribute__((nonnull, warn_unused_result))
-+inline MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- commit_cache_norebuild(
- /*===================*/
---- a/storage/innobase/ibuf/ibuf0ibuf.cc
-+++ b/storage/innobase/ibuf/ibuf0ibuf.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -657,7 +657,7 @@ byte*
- ibuf_parse_bitmap_init(
- /*===================*/
- 	byte*		ptr,	/*!< in: buffer */
--	byte*		end_ptr __attribute__((unused)), /*!< in: buffer end */
-+	byte*		end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
- 	buf_block_t*	block,	/*!< in: block or NULL */
- 	mtr_t*		mtr)	/*!< in: mtr or NULL */
- {
-@@ -2494,7 +2494,7 @@ ibuf_get_merge_page_nos_func(
- /*******************************************************************//**
- Get the matching records for space id.
- @return	current rec or NULL */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- const rec_t*
- ibuf_get_user_rec(
- /*===============*/
-@@ -2516,7 +2516,7 @@ ibuf_get_user_rec(
- Reads page numbers for a space id from an ibuf tree.
- @return a lower limit for the combined volume of records which will be
- merged */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- ulint
- ibuf_get_merge_pages(
- /*=================*/
-@@ -2626,7 +2626,7 @@ ibuf_merge_pages(
- /*********************************************************************//**
- Get the table instance from the table id.
- @return table instance */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- dict_table_t*
- ibuf_get_table(
- /*===========*/
-@@ -2725,7 +2725,7 @@ Contracts insert buffer trees by reading pages to the buffer pool.
- @return a lower limit for the combined size in bytes of entries which
- will be merged from ibuf trees to the pages read, 0 if ibuf is
- empty */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ulint
- ibuf_merge(
- /*=======*/
-@@ -3444,7 +3444,7 @@ ibuf_get_entry_counter_func(
- Buffer an operation in the insert/delete buffer, instead of doing it
- directly to the disk page, if this is possible.
- @return	DB_SUCCESS, DB_STRONG_FAIL or other error */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- ibuf_insert_low(
- /*============*/
-@@ -3935,7 +3935,7 @@ skip_watch:
- During merge, inserts to an index page a secondary index entry extracted
- from the insert buffer.
- @return	newly inserted record */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- rec_t*
- ibuf_insert_to_index_page_low(
- /*==========================*/
-@@ -4366,7 +4366,7 @@ ibuf_delete(
- /*********************************************************************//**
- Restores insert buffer tree cursor position
- @return	TRUE if the position was restored; FALSE if not */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- ibool
- ibuf_restore_pos(
- /*=============*/
-@@ -4421,7 +4421,7 @@ Deletes from ibuf the record on which pcur is positioned. If we have to
- resort to a pessimistic delete, this function commits mtr and closes
- the cursor.
- @return	TRUE if mtr was committed and pcur closed in this operation */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- ibool
- ibuf_delete_rec(
- /*============*/
---- a/storage/innobase/include/api0api.h
-+++ b/storage/innobase/include/api0api.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -36,7 +36,7 @@ InnoDB Native API
- #endif
- 
- #if defined(__GNUC__) && (__GNUC__ > 2) && ! defined(__INTEL_COMPILER)
--#define UNIV_NO_IGNORE		__attribute__ ((warn_unused_result))
-+#define UNIV_NO_IGNORE		MY_ATTRIBUTE ((warn_unused_result))
- #else
- #define UNIV_NO_IGNORE
- #endif /* __GNUC__ && __GNUC__ > 2 && !__INTEL_COMPILER */
---- a/storage/innobase/include/btr0btr.h
-+++ b/storage/innobase/include/btr0btr.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -114,7 +114,7 @@ btr_corruption_report(
- /*==================*/
- 	const buf_block_t*	block,	/*!< in: corrupted block */
- 	const dict_index_t*	index)	/*!< in: index tree */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- 
- /** Assert that a B-tree page is not corrupted.
- @param block buffer block containing a B-tree page
-@@ -156,7 +156,7 @@ btr_blob_dbg_add_blob(
- 	ulint		page_no,	/*!< in: start page of the column */
- 	dict_index_t*	index,		/*!< in/out: index tree */
- 	const char*	ctx)		/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Display the references to off-page columns.
- This function is to be called from a debugger,
-@@ -166,7 +166,7 @@ void
- btr_blob_dbg_print(
- /*===============*/
- 	const dict_index_t*	index)	/*!< in: index tree */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Check that there are no references to off-page columns from or to
- the given page. Invoked when freeing or clearing a page.
-@@ -177,7 +177,7 @@ btr_blob_dbg_is_empty(
- /*==================*/
- 	dict_index_t*	index,		/*!< in: index */
- 	ulint		page_no)	/*!< in: page number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /**************************************************************//**
- Modify the 'deleted' flag of a record. */
-@@ -189,7 +189,7 @@ btr_blob_dbg_set_deleted_flag(
- 	dict_index_t*		index,	/*!< in/out: index */
- 	const ulint*		offsets,/*!< in: rec_get_offs(rec, index) */
- 	ibool			del)	/*!< in: TRUE=deleted, FALSE=exists */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Change the ownership of an off-page column. */
- UNIV_INTERN
-@@ -201,7 +201,7 @@ btr_blob_dbg_owner(
- 	const ulint*		offsets,/*!< in: rec_get_offs(rec, index) */
- 	ulint			i,	/*!< in: ith field in rec */
- 	ibool			own)	/*!< in: TRUE=owned, FALSE=disowned */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /** Assert that there are no BLOB references to or from the given page. */
- # define btr_blob_dbg_assert_empty(index, page_no)	\
- 	ut_a(btr_blob_dbg_is_empty(index, page_no))
-@@ -221,7 +221,7 @@ btr_root_get(
- /*=========*/
- 	const dict_index_t*	index,	/*!< in: index tree */
- 	mtr_t*			mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**************************************************************//**
- Checks and adjusts the root node of a tree during IMPORT TABLESPACE.
-@@ -231,7 +231,7 @@ dberr_t
- btr_root_adjust_on_import(
- /*======================*/
- 	const dict_index_t*	index)	/*!< in: index tree */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /**************************************************************//**
- Gets the height of the B-tree (the level of the root, when the leaf
-@@ -244,7 +244,7 @@ btr_height_get(
- /*===========*/
- 	dict_index_t*	index,	/*!< in: index tree */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Gets a buffer page and declares its latching order level. */
- UNIV_INLINE
-@@ -306,7 +306,7 @@ index_id_t
- btr_page_get_index_id(
- /*==================*/
- 	const page_t*	page)	/*!< in: index page */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /********************************************************//**
- Gets the node level field in an index page.
-@@ -316,7 +316,7 @@ ulint
- btr_page_get_level_low(
- /*===================*/
- 	const page_t*	page)	/*!< in: index page */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #define btr_page_get_level(page, mtr) btr_page_get_level_low(page)
- /********************************************************//**
- Gets the next index page number.
-@@ -327,7 +327,7 @@ btr_page_get_next(
- /*==============*/
- 	const page_t*	page,	/*!< in: index page */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************//**
- Gets the previous index page number.
- @return	prev page number */
-@@ -337,7 +337,7 @@ btr_page_get_prev(
- /*==============*/
- 	const page_t*	page,	/*!< in: index page */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Gets pointer to the previous user record in the tree. It is assumed
- that the caller has appropriate latches on the page and its neighbor.
-@@ -349,7 +349,7 @@ btr_get_prev_user_rec(
- 	rec_t*	rec,	/*!< in: record on leaf level */
- 	mtr_t*	mtr)	/*!< in: mtr holding a latch on the page, and if
- 			needed, also to the previous page */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Gets pointer to the next user record in the tree. It is assumed
- that the caller has appropriate latches on the page and its neighbor.
-@@ -361,7 +361,7 @@ btr_get_next_user_rec(
- 	rec_t*	rec,	/*!< in: record on leaf level */
- 	mtr_t*	mtr)	/*!< in: mtr holding a latch on the page, and if
- 			needed, also to the next page */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Releases the latch on a leaf page and bufferunfixes it. */
- UNIV_INLINE
-@@ -372,7 +372,7 @@ btr_leaf_page_release(
- 	ulint		latch_mode,	/*!< in: BTR_SEARCH_LEAF or
- 					BTR_MODIFY_LEAF */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Gets the child node file address in a node pointer.
- NOTE: the offsets array must contain all offsets for the record since
-@@ -386,7 +386,7 @@ btr_node_ptr_get_child_page_no(
- /*===========================*/
- 	const rec_t*	rec,	/*!< in: node pointer record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /************************************************************//**
- Creates the root node for a new index tree.
- @return	page number of the created root, FIL_NULL if did not succeed */
-@@ -401,7 +401,7 @@ btr_create(
- 	index_id_t	index_id,/*!< in: index id */
- 	dict_index_t*	index,	/*!< in: index */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /************************************************************//**
- Frees a B-tree except the root page, which MUST be freed after this
- by calling btr_free_root. */
-@@ -424,7 +424,7 @@ btr_free_root(
- 				or 0 for uncompressed pages */
- 	ulint	root_page_no,	/*!< in: root page number */
- 	mtr_t*	mtr)		/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Makes tree one level higher by splitting the root, and inserts
- the tuple. It is assumed that mtr contains an x-latch on the tree.
-@@ -447,7 +447,7 @@ btr_root_raise_and_insert(
- 	const dtuple_t*	tuple,	/*!< in: tuple to insert */
- 	ulint		n_ext,	/*!< in: number of externally stored columns */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Reorganizes an index page.
- 
-@@ -473,7 +473,7 @@ btr_page_reorganize_low(
- 	page_cur_t*	cursor,	/*!< in/out: page cursor */
- 	dict_index_t*	index,	/*!< in: the index tree of the page */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Reorganizes an index page.
- 
-@@ -492,7 +492,7 @@ btr_page_reorganize(
- 	page_cur_t*	cursor,	/*!< in/out: page cursor */
- 	dict_index_t*	index,	/*!< in: the index tree of the page */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Decides if the page should be split at the convergence point of
- inserts converging to left.
-@@ -505,7 +505,7 @@ btr_page_get_split_rec_to_left(
- 	rec_t**		split_rec)/*!< out: if split recommended,
- 				the first record on upper half page,
- 				or NULL if tuple should be first */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Decides if the page should be split at the convergence point of
- inserts converging to right.
-@@ -518,7 +518,7 @@ btr_page_get_split_rec_to_right(
- 	rec_t**		split_rec)/*!< out: if split recommended,
- 				the first record on upper half page,
- 				or NULL if tuple should be first */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Splits an index page to halves and inserts the tuple. It is assumed
- that mtr holds an x-latch to the index tree. NOTE: the tree x-latch is
-@@ -542,7 +542,7 @@ btr_page_split_and_insert(
- 	const dtuple_t*	tuple,	/*!< in: tuple to insert */
- 	ulint		n_ext,	/*!< in: number of externally stored columns */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************//**
- Inserts a data tuple to a tree on a non-leaf level. It is assumed
- that mtr holds an x-latch on the tree. */
-@@ -557,7 +557,7 @@ btr_insert_on_non_leaf_level_func(
- 	const char*	file,	/*!< in: file name */
- 	ulint		line,	/*!< in: line where called */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- # define btr_insert_on_non_leaf_level(f,i,l,t,m)			\
- 	btr_insert_on_non_leaf_level_func(f,i,l,t,__FILE__,__LINE__,m)
- #endif /* !UNIV_HOTBACKUP */
-@@ -569,7 +569,7 @@ btr_set_min_rec_mark(
- /*=================*/
- 	rec_t*	rec,	/*!< in/out: record */
- 	mtr_t*	mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /*************************************************************//**
- Deletes on the upper level the node pointer to a page. */
-@@ -580,7 +580,7 @@ btr_node_ptr_delete(
- 	dict_index_t*	index,	/*!< in: index tree */
- 	buf_block_t*	block,	/*!< in: page whose node pointer is deleted */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- /************************************************************//**
- Checks that the node pointer to a page is appropriate.
-@@ -592,7 +592,7 @@ btr_check_node_ptr(
- 	dict_index_t*	index,	/*!< in: index tree */
- 	buf_block_t*	block,	/*!< in: index page */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- /*************************************************************//**
- Tries to merge the page first to the left immediate brother if such a
-@@ -615,7 +615,7 @@ btr_compress(
- 	ibool		adjust,	/*!< in: TRUE if should adjust the
- 				cursor position even if compression occurs */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Discards a page from a B-tree. This is used to remove the last record from
- a B-tree page: the whole page must be removed at the same time. This cannot
-@@ -627,7 +627,7 @@ btr_discard_page(
- 	btr_cur_t*	cursor,	/*!< in: cursor on the page to discard: not on
- 				the root page */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /****************************************************************//**
- Parses the redo log record for setting an index record as the predefined
-@@ -642,7 +642,7 @@ btr_parse_set_min_rec_mark(
- 	ulint	comp,	/*!< in: nonzero=compact page format */
- 	page_t*	page,	/*!< in: page or NULL */
- 	mtr_t*	mtr)	/*!< in: mtr or NULL */
--	__attribute__((nonnull(1,2), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
- /***********************************************************//**
- Parses a redo log record of reorganizing a page.
- @return	end of log record or NULL */
-@@ -656,7 +656,7 @@ btr_parse_page_reorganize(
- 	bool		compressed,/*!< in: true if compressed page */
- 	buf_block_t*	block,	/*!< in: page to be reorganized, or NULL */
- 	mtr_t*		mtr)	/*!< in: mtr or NULL */
--	__attribute__((nonnull(1,2,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3), warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /**************************************************************//**
- Gets the number of pages in a B-tree.
-@@ -669,7 +669,7 @@ btr_get_size(
- 	ulint		flag,	/*!< in: BTR_N_LEAF_PAGES or BTR_TOTAL_SIZE */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction where index
- 				is s-latched */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Allocates a new file page to be used in an index tree. NOTE: we assume
- that the caller has made the reservation for free extents!
-@@ -692,7 +692,7 @@ btr_page_alloc(
- 	mtr_t*		init_mtr)	/*!< in/out: mini-transaction
- 					for x-latching and initializing
- 					the page */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Frees a file page used in an index tree. NOTE: cannot free field external
- storage pages because the page must contain info on its level. */
-@@ -703,7 +703,7 @@ btr_page_free(
- 	dict_index_t*	index,	/*!< in: index tree */
- 	buf_block_t*	block,	/*!< in: block to be freed, x-latched */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Frees a file page used in an index tree. Can be used also to BLOB
- external storage pages, because the page level 0 can be given as an
-@@ -716,7 +716,7 @@ btr_page_free_low(
- 	buf_block_t*	block,	/*!< in: block to be freed, x-latched */
- 	ulint		level,	/*!< in: page level */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_BTR_PRINT
- /*************************************************************//**
- Prints size info of a B-tree. */
-@@ -725,7 +725,7 @@ void
- btr_print_size(
- /*===========*/
- 	dict_index_t*	index)	/*!< in: index tree */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Prints directories and other info of all nodes in the index. */
- UNIV_INTERN
-@@ -735,7 +735,7 @@ btr_print_index(
- 	dict_index_t*	index,	/*!< in: index */
- 	ulint		width)	/*!< in: print this many entries from start
- 				and end */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* UNIV_BTR_PRINT */
- /************************************************************//**
- Checks the size and number of fields in a record based on the definition of
-@@ -750,7 +750,7 @@ btr_index_rec_validate(
- 	ibool			dump_on_error)	/*!< in: TRUE if the function
- 						should print hex dump of record
- 						and page on error */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Checks the consistency of an index tree.
- @return	TRUE if ok */
-@@ -760,7 +760,7 @@ btr_validate_index(
- /*===============*/
- 	dict_index_t*	index,			/*!< in: index */
- 	const trx_t*	trx)			/*!< in: transaction or 0 */
--	__attribute__((nonnull(1), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1), warn_unused_result));
- 
- #define BTR_N_LEAF_PAGES	1
- #define BTR_TOTAL_SIZE		2
---- a/storage/innobase/include/btr0btr.ic
-+++ b/storage/innobase/include/btr0btr.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -159,7 +159,7 @@ ulint
- btr_page_get_next(
- /*==============*/
- 	const page_t*	page,	/*!< in: index page */
--	mtr_t*		mtr __attribute__((unused)))
-+	mtr_t*		mtr MY_ATTRIBUTE((unused)))
- 				/*!< in: mini-transaction handle */
- {
- 	ut_ad(page && mtr);
-@@ -199,7 +199,7 @@ ulint
- btr_page_get_prev(
- /*==============*/
- 	const page_t*	page,	/*!< in: index page */
--	mtr_t*	mtr __attribute__((unused))) /*!< in: mini-transaction handle */
-+	mtr_t*	mtr MY_ATTRIBUTE((unused))) /*!< in: mini-transaction handle */
- {
- 	ut_ad(page && mtr);
- 
---- a/storage/innobase/include/btr0cur.h
-+++ b/storage/innobase/include/btr0cur.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -186,7 +186,7 @@ btr_cur_open_at_index_side_func(
- 	const char*	file,		/*!< in: file name */
- 	ulint		line,		/*!< in: line where called */
- 	mtr_t*		mtr)		/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #define btr_cur_open_at_index_side(f,i,l,c,lv,m)			\
- 	btr_cur_open_at_index_side_func(f,i,l,c,lv,__FILE__,__LINE__,m)
- /**********************************************************************//**
-@@ -235,7 +235,7 @@ btr_cur_optimistic_insert(
- 				compressed tablespace, the caller must
- 				mtr_commit(mtr) before latching
- 				any further pages */
--	__attribute__((nonnull(2,3,4,5,6,7,10), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(2,3,4,5,6,7,10), warn_unused_result));
- /*************************************************************//**
- Performs an insert on a page of an index tree. It is assumed that mtr
- holds an x-latch on the tree and on the cursor page. If the insert is
-@@ -266,7 +266,7 @@ btr_cur_pessimistic_insert(
- 	ulint		n_ext,	/*!< in: number of externally stored columns */
- 	que_thr_t*	thr,	/*!< in: query thread or NULL */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull(2,3,4,5,6,7,10), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(2,3,4,5,6,7,10), warn_unused_result));
- /*************************************************************//**
- See if there is enough place in the page modification log to log
- an update-in-place.
-@@ -293,7 +293,7 @@ btr_cur_update_alloc_zip_func(
- 	bool		create,	/*!< in: true=delete-and-insert,
- 				false=update-in-place */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifdef UNIV_DEBUG
- # define btr_cur_update_alloc_zip(page_zip,cursor,index,offsets,len,cr,mtr) \
- 	btr_cur_update_alloc_zip_func(page_zip,cursor,index,offsets,len,cr,mtr)
-@@ -325,7 +325,7 @@ btr_cur_update_in_place(
- 				is a secondary index, the caller must
- 				mtr_commit(mtr) before latching any
- 				further pages */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /***********************************************************//**
- Writes a redo log record of updating a record in-place. */
- UNIV_INTERN
-@@ -339,7 +339,7 @@ btr_cur_update_in_place_log(
- 	trx_id_t	trx_id,		/*!< in: transaction id */
- 	roll_ptr_t	roll_ptr,	/*!< in: roll ptr */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Tries to update a record on a page in an index tree. It is assumed that mtr
- holds an x-latch on the page. The operation does not succeed if there is too
-@@ -371,7 +371,7 @@ btr_cur_optimistic_update(
- 				is a secondary index, the caller must
- 				mtr_commit(mtr) before latching any
- 				further pages */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /*************************************************************//**
- Performs an update of a record on a page of a tree. It is assumed
- that mtr holds an x-latch on the tree and on the cursor page. If the
-@@ -405,7 +405,7 @@ btr_cur_pessimistic_update(
- 	trx_id_t	trx_id,	/*!< in: transaction id */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction; must be committed
- 				before latching any further pages */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /***********************************************************//**
- Marks a clustered index record deleted. Writes an undo log record to
- undo log on this delete marking. Writes in the trx id field the id
-@@ -422,7 +422,7 @@ btr_cur_del_mark_set_clust_rec(
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec) */
- 	que_thr_t*	thr,	/*!< in: query thread */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************//**
- Sets a secondary index record delete mark to TRUE or FALSE.
- @return	DB_SUCCESS, DB_LOCK_WAIT, or error number */
-@@ -435,7 +435,7 @@ btr_cur_del_mark_set_sec_rec(
- 	ibool		val,	/*!< in: value to set */
- 	que_thr_t*	thr,	/*!< in: query thread */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Tries to compress a page of the tree if it seems useful. It is assumed
- that mtr holds an x-latch on the tree and on the cursor page. To avoid
-@@ -453,7 +453,7 @@ btr_cur_compress_if_useful(
- 	ibool		adjust,	/*!< in: TRUE if should adjust the
- 				cursor position even if compression occurs */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************//**
- Removes the record on which the tree cursor is positioned. It is assumed
- that the mtr has an x-latch on the page where the cursor is positioned,
-@@ -474,7 +474,7 @@ btr_cur_optimistic_delete_func(
- 				TRUE on a leaf page of a secondary
- 				index, the mtr must be committed
- 				before latching any further pages */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- # ifdef UNIV_DEBUG
- #  define btr_cur_optimistic_delete(cursor, flags, mtr)		\
- 	btr_cur_optimistic_delete_func(cursor, flags, mtr)
-@@ -510,7 +510,7 @@ btr_cur_pessimistic_delete(
- 	ulint		flags,	/*!< in: BTR_CREATE_FLAG or 0 */
- 	enum trx_rb_ctx	rb_ctx,	/*!< in: rollback context */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /***********************************************************//**
- Parses a redo log record of updating a record in-place.
-@@ -603,7 +603,7 @@ btr_cur_disown_inherited_fields(
- 	const ulint*	offsets,/*!< in: array returned by rec_get_offsets() */
- 	const upd_t*	update,	/*!< in: update vector */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull(2,3,4,5,6)));
-+	MY_ATTRIBUTE((nonnull(2,3,4,5,6)));
- 
- /** Operation code for btr_store_big_rec_extern_fields(). */
- enum blob_op {
-@@ -623,7 +623,7 @@ ibool
- btr_blob_op_is_update(
- /*==================*/
- 	enum blob_op	op)	/*!< in: operation */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*******************************************************************//**
- Stores the fields in big_rec_vec to the tablespace and puts pointers to
-@@ -648,7 +648,7 @@ btr_store_big_rec_extern_fields(
- 	mtr_t*		btr_mtr,	/*!< in: mtr containing the
- 					latches to the clustered index */
- 	enum blob_op	op)		/*! in: operation code */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*******************************************************************//**
- Frees the space in an externally stored field to the file space
-@@ -742,7 +742,7 @@ btr_push_update_extern_fields(
- 	dtuple_t*	tuple,	/*!< in/out: data tuple */
- 	const upd_t*	update,	/*!< in: update vector */
- 	mem_heap_t*	heap)	/*!< in: memory heap */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***********************************************************//**
- Sets a secondary index record's delete mark to the given value. This
- function is only used by the insert buffer merge mechanism. */
---- a/storage/innobase/include/btr0pcur.h
-+++ b/storage/innobase/include/btr0pcur.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -155,7 +155,7 @@ btr_pcur_open_at_index_side(
- 	ulint		level,		/*!< in: level to search for
- 					(0=leaf) */
- 	mtr_t*		mtr)		/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Gets the up_match value for a pcur after a search.
- @return number of matched fields at the cursor or to the right if
---- a/storage/innobase/include/btr0sea.h
-+++ b/storage/innobase/include/btr0sea.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -69,7 +69,7 @@ btr_search_t*
- btr_search_get_info(
- /*================*/
- 	dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*****************************************************************//**
- Creates and initializes a search info struct.
- @return	own: search info struct */
---- a/storage/innobase/include/btr0types.h
-+++ b/storage/innobase/include/btr0types.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -81,7 +81,7 @@ btr_blob_dbg_rbt_insert(
- 	dict_index_t*		index,	/*!< in/out: index tree */
- 	const btr_blob_dbg_t*	b,	/*!< in: the reference */
- 	const char*		ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Remove from index->blobs a reference to an off-page column.
- @param index	the index tree
-@@ -94,7 +94,7 @@ btr_blob_dbg_rbt_delete(
- 	dict_index_t*		index,	/*!< in/out: index tree */
- 	const btr_blob_dbg_t*	b,	/*!< in: the reference */
- 	const char*		ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**************************************************************//**
- Add to index->blobs any references to off-page columns from a record.
-@@ -107,7 +107,7 @@ btr_blob_dbg_add_rec(
- 	dict_index_t*	index,	/*!< in/out: index */
- 	const ulint*	offsets,/*!< in: offsets */
- 	const char*	ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Remove from index->blobs any references to off-page columns from a record.
- @return number of references removed */
-@@ -119,7 +119,7 @@ btr_blob_dbg_remove_rec(
- 	dict_index_t*	index,	/*!< in/out: index */
- 	const ulint*	offsets,/*!< in: offsets */
- 	const char*	ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Count and add to index->blobs any references to off-page columns
- from records on a page.
-@@ -131,7 +131,7 @@ btr_blob_dbg_add(
- 	const page_t*	page,	/*!< in: rewritten page */
- 	dict_index_t*	index,	/*!< in/out: index */
- 	const char*	ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Count and remove from index->blobs any references to off-page columns
- from records on a page.
-@@ -144,7 +144,7 @@ btr_blob_dbg_remove(
- 	const page_t*	page,	/*!< in: b-tree page */
- 	dict_index_t*	index,	/*!< in/out: index */
- 	const char*	ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Restore in index->blobs any references to off-page columns
- Used when page reorganize fails due to compressed page overflow. */
-@@ -156,7 +156,7 @@ btr_blob_dbg_restore(
- 	const page_t*	page,	/*!< in: copy of original page */
- 	dict_index_t*	index,	/*!< in/out: index */
- 	const char*	ctx)	/*!< in: context (for logging) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Operation that processes the BLOB references of an index record
- @param[in]	rec	record on index page
-@@ -180,7 +180,7 @@ btr_blob_dbg_op(
- 	dict_index_t*		index,	/*!< in/out: index */
- 	const char*		ctx,	/*!< in: context (for logging) */
- 	const btr_blob_dbg_op_f	op)	/*!< in: operation on records */
--	__attribute__((nonnull(1,3,4,5)));
-+	MY_ATTRIBUTE((nonnull(1,3,4,5)));
- #else /* UNIV_BLOB_DEBUG */
- # define btr_blob_dbg_add_rec(rec, index, offsets, ctx)		((void) 0)
- # define btr_blob_dbg_add(page, index, ctx)			((void) 0)
---- a/storage/innobase/include/buf0buddy.h
-+++ b/storage/innobase/include/buf0buddy.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2006, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -54,7 +54,7 @@ buf_buddy_alloc(
- 				       	storage was allocated from the
- 				       	LRU list and buf_pool->mutex was
- 				       	temporarily released */
--	__attribute__((malloc, nonnull));
-+	MY_ATTRIBUTE((malloc, nonnull));
- 
- /**********************************************************************//**
- Deallocate a block. */
-@@ -68,7 +68,7 @@ buf_buddy_free(
- 					be pointed to by the buffer pool */
- 	ulint		size)		/*!< in: block size,
- 					up to UNIV_PAGE_SIZE */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- #ifndef UNIV_NONINL
- # include "buf0buddy.ic"
---- a/storage/innobase/include/buf0buddy.ic
-+++ b/storage/innobase/include/buf0buddy.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2006, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -50,7 +50,7 @@ buf_buddy_alloc_low(
- 					allocated from the LRU list and
- 					buf_pool->mutex was temporarily
- 					released */
--	__attribute__((malloc, nonnull));
-+	MY_ATTRIBUTE((malloc, nonnull));
- 
- /**********************************************************************//**
- Deallocate a block. */
-@@ -63,7 +63,7 @@ buf_buddy_free_low(
- 					pointed to by the buffer pool */
- 	ulint		i)		/*!< in: index of buf_pool->zip_free[],
- 					or BUF_BUDDY_SIZES */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Get the index of buf_pool->zip_free[] for a given block size.
---- a/storage/innobase/include/buf0buf.h
-+++ b/storage/innobase/include/buf0buf.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -258,7 +258,7 @@ buf_relocate(
- 				buf_page_get_state(bpage) must be
- 				BUF_BLOCK_ZIP_DIRTY or BUF_BLOCK_ZIP_PAGE */
- 	buf_page_t*	dpage)	/*!< in/out: destination control block */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets the current size of buffer buf_pool in bytes.
- @return	size in bytes */
-@@ -289,7 +289,7 @@ UNIV_INLINE
- buf_page_t*
- buf_page_alloc_descriptor(void)
- /*===========================*/
--	__attribute__((malloc));
-+	MY_ATTRIBUTE((malloc));
- /********************************************************************//**
- Free a buf_page_t descriptor. */
- UNIV_INLINE
-@@ -297,7 +297,7 @@ void
- buf_page_free_descriptor(
- /*=====================*/
- 	buf_page_t*	bpage)	/*!< in: bpage descriptor to free. */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /********************************************************************//**
- Allocates a buffer block.
-@@ -534,7 +534,7 @@ ulint
- buf_page_get_freed_page_clock(
- /*==========================*/
- 	const buf_page_t*	bpage)	/*!< in: block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /********************************************************************//**
- Reads the freed_page_clock of a buffer block.
- @return	freed_page_clock */
-@@ -543,7 +543,7 @@ ulint
- buf_block_get_freed_page_clock(
- /*===========================*/
- 	const buf_block_t*	block)	/*!< in: block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- 
- /********************************************************************//**
- Tells if a block is still close enough to the MRU end of the LRU list
-@@ -606,7 +606,7 @@ buf_block_buf_fix_inc_func(
- 	ulint		line,	/*!< in: line */
- # endif /* UNIV_SYNC_DEBUG */
- 	buf_block_t*	block)	/*!< in/out: block to bufferfix */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*******************************************************************//**
- Increments the bufferfix count. */
-@@ -652,7 +652,7 @@ buf_page_is_corrupted(
- 	const byte*	read_buf,	/*!< in: a database page */
- 	ulint		zip_size)	/*!< in: size of compressed page;
- 					0 for uncompressed pages */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Checks if a page is all zeroes.
- @return	TRUE if the page is all zeroes */
-@@ -682,7 +682,7 @@ ulint
- buf_block_get_lock_hash_val(
- /*========================*/
- 	const buf_block_t*	block)	/*!< in: block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- #ifdef UNIV_DEBUG
- /*********************************************************************//**
- Finds a block in the buffer pool that points to a
-@@ -743,7 +743,7 @@ buf_page_print(
- 	ulint		flags)		/*!< in: 0 or
- 					BUF_PAGE_PRINT_NO_CRASH or
- 					BUF_PAGE_PRINT_NO_FULL */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Decompress a block.
- @return	TRUE if successful */
-@@ -870,7 +870,7 @@ enum buf_page_state
- buf_block_get_state(
- /*================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Sets the state of a block. */
- UNIV_INLINE
-@@ -895,7 +895,7 @@ ibool
- buf_page_in_file(
- /*=============*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- #ifndef UNIV_HOTBACKUP
- /*********************************************************************//**
- Determines if a block should be on unzip_LRU list.
-@@ -905,7 +905,7 @@ ibool
- buf_page_belongs_to_unzip_LRU(
- /*==========================*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- 
- /*********************************************************************//**
- Gets the mutex of a block.
-@@ -915,7 +915,7 @@ ib_mutex_t*
- buf_page_get_mutex(
- /*===============*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- 
- /*********************************************************************//**
- Get the flush type of a page.
-@@ -925,7 +925,7 @@ buf_flush_t
- buf_page_get_flush_type(
- /*====================*/
- 	const buf_page_t*	bpage)	/*!< in: buffer page */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Set the flush type of a page. */
- UNIV_INLINE
-@@ -951,7 +951,7 @@ enum buf_io_fix
- buf_page_get_io_fix(
- /*================*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the io_fix state of a block.
- @return	io_fix state */
-@@ -960,7 +960,7 @@ enum buf_io_fix
- buf_block_get_io_fix(
- /*================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Sets the io_fix state of a block. */
- UNIV_INLINE
-@@ -1006,7 +1006,7 @@ ibool
- buf_page_can_relocate(
- /*==================*/
- 	const buf_page_t*	bpage)	/*!< control block being relocated */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- 
- /*********************************************************************//**
- Determine if a block has been flagged old.
-@@ -1016,7 +1016,7 @@ ibool
- buf_page_is_old(
- /*============*/
- 	const buf_page_t*	bpage)	/*!< in: control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Flag a block old. */
- UNIV_INLINE
-@@ -1033,7 +1033,7 @@ unsigned
- buf_page_is_accessed(
- /*=================*/
- 	const buf_page_t*	bpage)	/*!< in: control block */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************************//**
- Flag a block accessed. */
- UNIV_INLINE
-@@ -1041,7 +1041,7 @@ void
- buf_page_set_accessed(
- /*==================*/
- 	buf_page_t*	bpage)		/*!< in/out: control block */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets the buf_block_t handle of a buffered file block if an uncompressed
- page frame exists, or NULL. Note: even though bpage is not declared a
-@@ -1052,7 +1052,7 @@ buf_block_t*
- buf_page_get_block(
- /*===============*/
- 	buf_page_t*	bpage)	/*!< in: control block, or NULL */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- #endif /* !UNIV_HOTBACKUP */
- #ifdef UNIV_DEBUG
- /*********************************************************************//**
-@@ -1063,7 +1063,7 @@ buf_frame_t*
- buf_block_get_frame(
- /*================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- #else /* UNIV_DEBUG */
- # define buf_block_get_frame(block) (block)->frame
- #endif /* UNIV_DEBUG */
-@@ -1075,7 +1075,7 @@ ulint
- buf_page_get_space(
- /*===============*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the space id of a block.
- @return	space id */
-@@ -1084,7 +1084,7 @@ ulint
- buf_block_get_space(
- /*================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the page number of a block.
- @return	page number */
-@@ -1093,7 +1093,7 @@ ulint
- buf_page_get_page_no(
- /*=================*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the page number of a block.
- @return	page number */
-@@ -1102,7 +1102,7 @@ ulint
- buf_block_get_page_no(
- /*==================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the compressed page size of a block.
- @return	compressed page size, or 0 */
-@@ -1111,7 +1111,7 @@ ulint
- buf_page_get_zip_size(
- /*==================*/
- 	const buf_page_t*	bpage)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the compressed page size of a block.
- @return	compressed page size, or 0 */
-@@ -1120,7 +1120,7 @@ ulint
- buf_block_get_zip_size(
- /*===================*/
- 	const buf_block_t*	block)	/*!< in: pointer to the control block */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /*********************************************************************//**
- Gets the compressed page descriptor corresponding to an uncompressed page
- if applicable. */
-@@ -1209,7 +1209,7 @@ buf_page_address_fold(
- /*==================*/
- 	ulint	space,	/*!< in: space id */
- 	ulint	offset)	/*!< in: offset of the page within space */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /********************************************************************//**
- Calculates the index of a buffer pool to the buf_pool[] array.
- @return	the position of the buffer pool in buf_pool[] */
-@@ -1218,7 +1218,7 @@ ulint
- buf_pool_index(
- /*===========*/
- 	const buf_pool_t*	buf_pool)	/*!< in: buffer pool */
--	__attribute__((nonnull, const));
-+	MY_ATTRIBUTE((nonnull, const));
- /******************************************************************//**
- Returns the buffer pool instance given a page instance
- @return buf_pool */
-@@ -1358,7 +1358,7 @@ buf_pool_watch_is_sentinel(
- /*=======================*/
- 	buf_pool_t*		buf_pool,	/*!< buffer pool instance */
- 	const buf_page_t*	bpage)		/*!< in: block */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /****************************************************************//**
- Add watch for the given page to be read in. Caller must have the buffer pool
- @return NULL if watch set, block if the page is in the buffer pool */
-@@ -1369,7 +1369,7 @@ buf_pool_watch_set(
- 	ulint	space,	/*!< in: space id */
- 	ulint	offset,	/*!< in: page number */
- 	ulint	fold)	/*!< in: buf_page_address_fold(space, offset) */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /****************************************************************//**
- Stop watching if the page has been read in.
- buf_pool_watch_set(space,offset) must have returned NULL before. */
-@@ -1390,7 +1390,7 @@ buf_pool_watch_occurred(
- /*====================*/
- 	ulint	space,	/*!< in: space id */
- 	ulint	offset)	/*!< in: page number */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /********************************************************************//**
- Get total buffer pool statistics. */
- UNIV_INTERN
---- a/storage/innobase/include/buf0flu.h
-+++ b/storage/innobase/include/buf0flu.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -85,7 +85,7 @@ buf_flush_page_try(
- /*===============*/
- 	buf_pool_t*	buf_pool,	/*!< in/out: buffer pool instance */
- 	buf_block_t*	block)		/*!< in/out: buffer control block */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- # endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
- /*******************************************************************//**
- This utility flushes dirty blocks from the end of the flush list of
-@@ -254,7 +254,7 @@ buf_flush_ready_for_flush(
- 	buf_page_t*	bpage,	/*!< in: buffer control block, must be
- 				buf_page_in_file(bpage) */
- 	buf_flush_t	flush_type)/*!< in: type of flush */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- #ifdef UNIV_DEBUG
- /******************************************************************//**
---- a/storage/innobase/include/buf0lru.h
-+++ b/storage/innobase/include/buf0lru.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -93,7 +93,7 @@ buf_LRU_free_page(
- 	buf_page_t*	bpage,	/*!< in: block to be freed */
- 	bool		zip)	/*!< in: true if should remove also the
- 				compressed page of an uncompressed page */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Try to free a replaceable block.
- @return	TRUE if found and freed */
-@@ -105,7 +105,7 @@ buf_LRU_scan_and_free_block(
- 	ibool		scan_all)	/*!< in: scan whole LRU list
- 					if TRUE, otherwise scan only
- 					'old' blocks. */
--	__attribute__((nonnull,warn_unused_result));
-+	MY_ATTRIBUTE((nonnull,warn_unused_result));
- /******************************************************************//**
- Returns a free block from the buf_pool.  The block is taken off the
- free list.  If it is empty, returns NULL.
-@@ -146,7 +146,7 @@ buf_block_t*
- buf_LRU_get_free_block(
- /*===================*/
- 	buf_pool_t*	buf_pool)	/*!< in/out: buffer pool instance */
--	__attribute__((nonnull,warn_unused_result));
-+	MY_ATTRIBUTE((nonnull,warn_unused_result));
- /******************************************************************//**
- Determines if the unzip_LRU list should be used for evicting a victim
- instead of the general LRU list.
-@@ -229,7 +229,7 @@ buf_LRU_free_one_page(
- 	buf_page_t*	bpage)	/*!< in/out: block, must contain a file page and
- 				be in a state where it can be freed; there
- 				may or may not be a hash index to the page */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
- /**********************************************************************//**
---- a/storage/innobase/include/data0data.h
-+++ b/storage/innobase/include/data0data.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -46,7 +46,7 @@ dtype_t*
- dfield_get_type(
- /*============*/
- 	const dfield_t*	field)	/*!< in: SQL data field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets pointer to the data in a field.
- @return	pointer to data */
-@@ -55,7 +55,7 @@ void*
- dfield_get_data(
- /*============*/
- 	const dfield_t* field)	/*!< in: field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #else /* UNIV_DEBUG */
- # define dfield_get_type(field) (&(field)->type)
- # define dfield_get_data(field) ((field)->data)
-@@ -68,7 +68,7 @@ dfield_set_type(
- /*============*/
- 	dfield_t*	field,	/*!< in: SQL data field */
- 	const dtype_t*	type)	/*!< in: pointer to data type struct */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets length of field data.
- @return	length of data; UNIV_SQL_NULL if SQL null data */
-@@ -77,7 +77,7 @@ ulint
- dfield_get_len(
- /*===========*/
- 	const dfield_t* field)	/*!< in: field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets length in a field. */
- UNIV_INLINE
-@@ -86,7 +86,7 @@ dfield_set_len(
- /*===========*/
- 	dfield_t*	field,	/*!< in: field */
- 	ulint		len)	/*!< in: length or UNIV_SQL_NULL */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Determines if a field is SQL NULL
- @return	nonzero if SQL null data */
-@@ -95,7 +95,7 @@ ulint
- dfield_is_null(
- /*===========*/
- 	const dfield_t* field)	/*!< in: field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Determines if a field is externally stored
- @return	nonzero if externally stored */
-@@ -104,7 +104,7 @@ ulint
- dfield_is_ext(
- /*==========*/
- 	const dfield_t* field)	/*!< in: field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets the "external storage" flag */
- UNIV_INLINE
-@@ -112,7 +112,7 @@ void
- dfield_set_ext(
- /*===========*/
- 	dfield_t*	field)	/*!< in/out: field */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Sets pointer to the data and length in a field. */
- UNIV_INLINE
-@@ -122,7 +122,7 @@ dfield_set_data(
- 	dfield_t*	field,	/*!< in: field */
- 	const void*	data,	/*!< in: data */
- 	ulint		len)	/*!< in: length or UNIV_SQL_NULL */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /*********************************************************************//**
- Sets a data field to SQL NULL. */
- UNIV_INLINE
-@@ -130,7 +130,7 @@ void
- dfield_set_null(
- /*============*/
- 	dfield_t*	field)	/*!< in/out: field */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Writes an SQL null field full of zeros. */
- UNIV_INLINE
-@@ -139,7 +139,7 @@ data_write_sql_null(
- /*================*/
- 	byte*	data,	/*!< in: pointer to a buffer of size len */
- 	ulint	len)	/*!< in: SQL null size in bytes */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Copies the data and len fields. */
- UNIV_INLINE
-@@ -148,7 +148,7 @@ dfield_copy_data(
- /*=============*/
- 	dfield_t*	field1,	/*!< out: field to copy to */
- 	const dfield_t*	field2)	/*!< in: field to copy from */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Copies a data field to another. */
- UNIV_INLINE
-@@ -157,7 +157,7 @@ dfield_copy(
- /*========*/
- 	dfield_t*	field1,	/*!< out: field to copy to */
- 	const dfield_t*	field2)	/*!< in: field to copy from */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Copies the data pointed to by a data field. */
- UNIV_INLINE
-@@ -166,7 +166,7 @@ dfield_dup(
- /*=======*/
- 	dfield_t*	field,	/*!< in/out: data field */
- 	mem_heap_t*	heap)	/*!< in: memory heap where allocated */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /*********************************************************************//**
- Tests if two data fields are equal.
-@@ -181,7 +181,7 @@ dfield_datas_are_binary_equal(
- 	const dfield_t*	field2,	/*!< in: field */
- 	ulint		len)	/*!< in: maximum prefix to compare,
- 				or 0 to compare the whole field length */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Tests if dfield data length and content is equal to the given.
- @return	TRUE if equal */
-@@ -192,7 +192,7 @@ dfield_data_is_binary_equal(
- 	const dfield_t*	field,	/*!< in: field */
- 	ulint		len,	/*!< in: data length or UNIV_SQL_NULL */
- 	const byte*	data)	/*!< in: data */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /*********************************************************************//**
- Gets number of fields in a data tuple.
-@@ -202,7 +202,7 @@ ulint
- dtuple_get_n_fields(
- /*================*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifdef UNIV_DEBUG
- /*********************************************************************//**
- Gets nth field of a tuple.
-@@ -224,7 +224,7 @@ ulint
- dtuple_get_info_bits(
- /*=================*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets info bits in a data tuple. */
- UNIV_INLINE
-@@ -233,7 +233,7 @@ dtuple_set_info_bits(
- /*=================*/
- 	dtuple_t*	tuple,		/*!< in: tuple */
- 	ulint		info_bits)	/*!< in: info bits */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets number of fields used in record comparisons.
- @return	number of fields used in comparisons in rem0cmp.* */
-@@ -242,7 +242,7 @@ ulint
- dtuple_get_n_fields_cmp(
- /*====================*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets number of fields used in record comparisons. */
- UNIV_INLINE
-@@ -252,7 +252,7 @@ dtuple_set_n_fields_cmp(
- 	dtuple_t*	tuple,		/*!< in: tuple */
- 	ulint		n_fields_cmp)	/*!< in: number of fields used in
- 					comparisons in rem0cmp.* */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /* Estimate the number of bytes that are going to be allocated when
- creating a new dtuple_t object */
-@@ -272,7 +272,7 @@ dtuple_create_from_mem(
- 	void*	buf,		/*!< in, out: buffer to use */
- 	ulint	buf_size,	/*!< in: buffer size */
- 	ulint	n_fields)	/*!< in: number of fields */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /**********************************************************//**
- Creates a data tuple to a memory heap. The default value for number
-@@ -286,7 +286,7 @@ dtuple_create(
- 				is created, DTUPLE_EST_ALLOC(n_fields)
- 				bytes will be allocated from this heap */
- 	ulint		n_fields)/*!< in: number of fields */
--	__attribute__((nonnull, malloc));
-+	MY_ATTRIBUTE((nonnull, malloc));
- 
- /*********************************************************************//**
- Sets number of fields used in a tuple. Normally this is set in
-@@ -297,7 +297,7 @@ dtuple_set_n_fields(
- /*================*/
- 	dtuple_t*	tuple,		/*!< in: tuple */
- 	ulint		n_fields)	/*!< in: number of fields */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Copies a data tuple to another.  This is a shallow copy; if a deep copy
- is desired, dfield_dup() will have to be invoked on each field.
-@@ -309,7 +309,7 @@ dtuple_copy(
- 	const dtuple_t*	tuple,	/*!< in: tuple to copy from */
- 	mem_heap_t*	heap)	/*!< in: memory heap
- 				where the tuple is created */
--	__attribute__((nonnull, malloc));
-+	MY_ATTRIBUTE((nonnull, malloc));
- /**********************************************************//**
- The following function returns the sum of data lengths of a tuple. The space
- occupied by the field structs or the tuple struct is not counted.
-@@ -320,7 +320,7 @@ dtuple_get_data_size(
- /*=================*/
- 	const dtuple_t*	tuple,	/*!< in: typed data tuple */
- 	ulint		comp)	/*!< in: nonzero=ROW_FORMAT=COMPACT  */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Computes the number of externally stored fields in a data tuple.
- @return	number of fields */
-@@ -329,7 +329,7 @@ ulint
- dtuple_get_n_ext(
- /*=============*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /************************************************************//**
- Compare two data tuples, respecting the collation of character fields.
- @return 1, 0 , -1 if tuple1 is greater, equal, less, respectively,
-@@ -340,7 +340,7 @@ dtuple_coll_cmp(
- /*============*/
- 	const dtuple_t*	tuple1,	/*!< in: tuple 1 */
- 	const dtuple_t*	tuple2)	/*!< in: tuple 2 */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /************************************************************//**
- Folds a prefix given as the number of fields of a tuple.
- @return	the folded value */
-@@ -353,7 +353,7 @@ dtuple_fold(
- 	ulint		n_bytes,/*!< in: number of bytes to fold in an
- 				incomplete last field */
- 	index_id_t	tree_id)/*!< in: index tree id */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /*******************************************************************//**
- Sets types of fields binary in a tuple. */
- UNIV_INLINE
-@@ -362,7 +362,7 @@ dtuple_set_types_binary(
- /*====================*/
- 	dtuple_t*	tuple,	/*!< in: data tuple */
- 	ulint		n)	/*!< in: number of fields to set */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Checks if a dtuple contains an SQL null value.
- @return	TRUE if some field is SQL null */
-@@ -371,7 +371,7 @@ ibool
- dtuple_contains_null(
- /*=================*/
- 	const dtuple_t*	tuple)	/*!< in: dtuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************//**
- Checks that a data field is typed. Asserts an error if not.
- @return	TRUE if ok */
-@@ -380,7 +380,7 @@ ibool
- dfield_check_typed(
- /*===============*/
- 	const dfield_t*	field)	/*!< in: data field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************//**
- Checks that a data tuple is typed. Asserts an error if not.
- @return	TRUE if ok */
-@@ -389,7 +389,7 @@ ibool
- dtuple_check_typed(
- /*===============*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************//**
- Checks that a data tuple is typed.
- @return	TRUE if ok */
-@@ -398,7 +398,7 @@ ibool
- dtuple_check_typed_no_assert(
- /*=========================*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifdef UNIV_DEBUG
- /**********************************************************//**
- Validates the consistency of a tuple which must be complete, i.e,
-@@ -409,7 +409,7 @@ ibool
- dtuple_validate(
- /*============*/
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- /*************************************************************//**
- Pretty prints a dfield value according to its data type. */
-@@ -418,7 +418,7 @@ void
- dfield_print(
- /*=========*/
- 	const dfield_t*	dfield)	/*!< in: dfield */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Pretty prints a dfield value according to its data type. Also the hex string
- is printed if a string contains non-printable characters. */
-@@ -427,7 +427,7 @@ void
- dfield_print_also_hex(
- /*==================*/
- 	const dfield_t*	dfield)	 /*!< in: dfield */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************//**
- The following function prints the contents of a tuple. */
- UNIV_INTERN
-@@ -436,7 +436,7 @@ dtuple_print(
- /*=========*/
- 	FILE*		f,	/*!< in: output stream */
- 	const dtuple_t*	tuple)	/*!< in: tuple */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Moves parts of long fields in entry to the big record vector so that
- the size of tuple drops below the maximum record size allowed in the
-@@ -453,7 +453,7 @@ dtuple_convert_big_rec(
- 	dtuple_t*	entry,	/*!< in/out: index entry */
- 	ulint*		n_ext)	/*!< in/out: number of
- 				externally stored columns */
--	__attribute__((nonnull, malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
- /**************************************************************//**
- Puts back to entry the data stored in vector. Note that to ensure the
- fields in entry can accommodate the data, vector must have been created
-@@ -466,7 +466,7 @@ dtuple_convert_back_big_rec(
- 	dtuple_t*	entry,	/*!< in: entry whose data was put to vector */
- 	big_rec_t*	vector)	/*!< in, own: big rec vector; it is
- 				freed in this function */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**************************************************************//**
- Frees the memory in a big rec vector. */
- UNIV_INLINE
-@@ -475,7 +475,7 @@ dtuple_big_rec_free(
- /*================*/
- 	big_rec_t*	vector)	/*!< in, own: big rec vector; it is
- 				freed in this function */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*######################################################################*/
- 
---- a/storage/innobase/include/dict0boot.h
-+++ b/storage/innobase/include/dict0boot.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -95,7 +95,7 @@ UNIV_INTERN
- dberr_t
- dict_boot(void)
- /*===========*/
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*****************************************************************//**
- Creates and initializes the data dictionary at the server bootstrap.
-@@ -104,7 +104,7 @@ UNIV_INTERN
- dberr_t
- dict_create(void)
- /*=============*/
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*********************************************************************//**
- Check if a table id belongs to  system table.
-@@ -114,7 +114,7 @@ bool
- dict_is_sys_table(
- /*==============*/
- 	table_id_t	id)		/*!< in: table id to check */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /* Space id and page no where the dictionary header resides */
- #define	DICT_HDR_SPACE		0	/* the SYSTEM tablespace */
---- a/storage/innobase/include/dict0crea.h
-+++ b/storage/innobase/include/dict0crea.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -123,7 +123,7 @@ dict_create_add_foreign_id(
- 				incremented if used */
- 	const char*	name,	/*!< in: table name */
- 	dict_foreign_t*	foreign)/*!< in/out: foreign key */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Adds the given set of foreign key objects to the dictionary tables
- in the database. This function does not modify the dictionary cache. The
-@@ -142,7 +142,7 @@ dict_create_add_foreigns_to_dictionary(
- 	const dict_foreign_set&	local_fk_set,
- 	const dict_table_t*	table,
- 	trx_t*			trx)
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /****************************************************************//**
- Creates the tablespaces and datafiles system tables inside InnoDB
- at server bootstrap or server start if they are not found or are
-@@ -177,7 +177,7 @@ dict_create_add_foreign_to_dictionary(
- 	const char*		name,	/*!< in: table name */
- 	const dict_foreign_t*	foreign,/*!< in: foreign key */
- 	trx_t*			trx)	/*!< in/out: dictionary transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /* Table create node structure */
- struct tab_node_t{
---- a/storage/innobase/include/dict0crea.ic
-+++ b/storage/innobase/include/dict0crea.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -33,7 +33,7 @@ UNIV_INTERN
- bool
- row_is_mysql_tmp_table_name(
- /*========================*/
--	const char*     name) __attribute__((warn_unused_result));
-+	const char*     name) MY_ATTRIBUTE((warn_unused_result));
- 				/*!< in: table name in the form
- 				'database/tablename' */
- 
---- a/storage/innobase/include/dict0dict.h
-+++ b/storage/innobase/include/dict0dict.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -53,7 +53,7 @@ void
- dict_casedn_str(
- /*============*/
- 	char*	a)	/*!< in/out: string to put in lower case */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Get the database name length in a table name.
- @return	database name length */
-@@ -63,7 +63,7 @@ dict_get_db_name_len(
- /*=================*/
- 	const char*	name)	/*!< in: table name in the form
- 				dbname '/' tablename */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Open a table from its database and table name, this is currently used by
- foreign constraint parser to get the referenced table.
-@@ -107,7 +107,7 @@ dict_remove_db_name(
- /*================*/
- 	const char*	name)	/*!< in: table name in the form
- 				dbname '/' tablename */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /** Operation to perform when opening a table */
- enum dict_table_op_t {
-@@ -130,7 +130,7 @@ dict_table_open_on_id(
- 	table_id_t	table_id,	/*!< in: table id */
- 	ibool		dict_locked,	/*!< in: TRUE=data dictionary locked */
- 	dict_table_op_t	table_op)	/*!< in: operation to perform */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /********************************************************************//**
- Decrements the count of open handles to a table. */
- UNIV_INTERN
-@@ -142,7 +142,7 @@ dict_table_close(
- 	ibool		try_drop)	/*!< in: TRUE=try to drop any orphan
- 					indexes after an aborted online
- 					index creation */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Inits the data dictionary module. */
- UNIV_INTERN
-@@ -167,7 +167,7 @@ ulint
- dict_col_get_mbminlen(
- /*==================*/
- 	const dict_col_t*	col)	/*!< in: column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets the maximum number of bytes per character.
- @return maximum multi-byte char size, in bytes */
-@@ -176,7 +176,7 @@ ulint
- dict_col_get_mbmaxlen(
- /*==================*/
- 	const dict_col_t*	col)	/*!< in: column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets the minimum and maximum number of bytes per character. */
- UNIV_INLINE
-@@ -188,7 +188,7 @@ dict_col_set_mbminmaxlen(
- 					character size, in bytes */
- 	ulint		mbmaxlen)	/*!< in: minimum multi-byte
- 					character size, in bytes */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets the column data type. */
- UNIV_INLINE
-@@ -197,7 +197,7 @@ dict_col_copy_type(
- /*===============*/
- 	const dict_col_t*	col,	/*!< in: column */
- 	dtype_t*		type)	/*!< out: data type */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Determine bytes of column prefix to be stored in the undo log. Please
- note if the table format is UNIV_FORMAT_A (< UNIV_FORMAT_B), no prefix
-@@ -210,7 +210,7 @@ dict_max_field_len_store_undo(
- 	dict_table_t*		table,	/*!< in: table */
- 	const dict_col_t*	col)	/*!< in: column which index prefix
- 					is based on */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- #ifdef UNIV_DEBUG
- /*********************************************************************//**
-@@ -222,7 +222,7 @@ dict_col_type_assert_equal(
- /*=======================*/
- 	const dict_col_t*	col,	/*!< in: column */
- 	const dtype_t*		type)	/*!< in: data type */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- #ifndef UNIV_HOTBACKUP
- /***********************************************************************//**
-@@ -233,7 +233,7 @@ ulint
- dict_col_get_min_size(
- /*==================*/
- 	const dict_col_t*	col)	/*!< in: column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Returns the maximum size of the column.
- @return	maximum size */
-@@ -242,7 +242,7 @@ ulint
- dict_col_get_max_size(
- /*==================*/
- 	const dict_col_t*	col)	/*!< in: column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Returns the size of a fixed size column, 0 if not a fixed size column.
- @return	fixed size, or 0 */
-@@ -252,7 +252,7 @@ dict_col_get_fixed_size(
- /*====================*/
- 	const dict_col_t*	col,	/*!< in: column */
- 	ulint			comp)	/*!< in: nonzero=ROW_FORMAT=COMPACT  */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Returns the ROW_FORMAT=REDUNDANT stored SQL NULL size of a column.
- For fixed length types it is the fixed length of the type, otherwise 0.
-@@ -263,7 +263,7 @@ dict_col_get_sql_null_size(
- /*=======================*/
- 	const dict_col_t*	col,	/*!< in: column */
- 	ulint			comp)	/*!< in: nonzero=ROW_FORMAT=COMPACT  */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets the column number.
- @return	col->ind, table column position (starting from 0) */
-@@ -272,7 +272,7 @@ ulint
- dict_col_get_no(
- /*============*/
- 	const dict_col_t*	col)	/*!< in: column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets the column position in the clustered index. */
- UNIV_INLINE
-@@ -281,7 +281,7 @@ dict_col_get_clust_pos(
- /*===================*/
- 	const dict_col_t*	col,		/*!< in: table column */
- 	const dict_index_t*	clust_index)	/*!< in: clustered index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /****************************************************************//**
- If the given column name is reserved for InnoDB system columns, return
- TRUE.
-@@ -291,7 +291,7 @@ ibool
- dict_col_name_is_reserved(
- /*======================*/
- 	const char*	name)	/*!< in: column name */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Acquire the autoinc lock. */
- UNIV_INTERN
-@@ -299,7 +299,7 @@ void
- dict_table_autoinc_lock(
- /*====================*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Unconditionally set the autoinc counter. */
- UNIV_INTERN
-@@ -308,7 +308,7 @@ dict_table_autoinc_initialize(
- /*==========================*/
- 	dict_table_t*	table,	/*!< in/out: table */
- 	ib_uint64_t	value)	/*!< in: next value to assign to a row */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Store autoinc value when the table is evicted.
- @param[in]	table	table evicted */
-@@ -333,7 +333,7 @@ ib_uint64_t
- dict_table_autoinc_read(
- /*====================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Updates the autoinc counter if the value supplied is greater than the
- current value. */
-@@ -344,7 +344,7 @@ dict_table_autoinc_update_if_greater(
- 
- 	dict_table_t*	table,	/*!< in/out: table */
- 	ib_uint64_t	value)	/*!< in: value which was assigned to a row */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Release the autoinc lock. */
- UNIV_INTERN
-@@ -352,7 +352,7 @@ void
- dict_table_autoinc_unlock(
- /*======================*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /**********************************************************************//**
- Adds system columns to a table object. */
-@@ -362,7 +362,7 @@ dict_table_add_system_columns(
- /*==========================*/
- 	dict_table_t*	table,	/*!< in/out: table */
- 	mem_heap_t*	heap)	/*!< in: temporary heap */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /**********************************************************************//**
- Adds a table object to the dictionary cache. */
-@@ -373,7 +373,7 @@ dict_table_add_to_cache(
- 	dict_table_t*	table,		/*!< in: table */
- 	ibool		can_be_evicted,	/*!< in: TRUE if can be evicted*/
- 	mem_heap_t*	heap)		/*!< in: temporary heap */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Removes a table object from the dictionary cache. */
- UNIV_INTERN
-@@ -381,7 +381,7 @@ void
- dict_table_remove_from_cache(
- /*=========================*/
- 	dict_table_t*	table)	/*!< in, own: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Removes a table object from the dictionary cache. */
- UNIV_INTERN
-@@ -404,7 +404,7 @@ dict_table_rename_in_cache(
- 					/*!< in: in ALTER TABLE we want
- 					to preserve the original table name
- 					in constraints which reference it */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Removes an index from the dictionary cache. */
- UNIV_INTERN
-@@ -413,7 +413,7 @@ dict_index_remove_from_cache(
- /*=========================*/
- 	dict_table_t*	table,	/*!< in/out: table */
- 	dict_index_t*	index)	/*!< in, own: index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Change the id of a table object in the dictionary cache. This is used in
- DISCARD TABLESPACE. */
-@@ -423,7 +423,7 @@ dict_table_change_id_in_cache(
- /*==========================*/
- 	dict_table_t*	table,	/*!< in/out: table object already in cache */
- 	table_id_t	new_id)	/*!< in: new id to set */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Removes a foreign constraint struct from the dictionary cache. */
- UNIV_INTERN
-@@ -431,7 +431,7 @@ void
- dict_foreign_remove_from_cache(
- /*===========================*/
- 	dict_foreign_t*	foreign)	/*!< in, own: foreign constraint */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Adds a foreign key constraint object to the dictionary cache. May free
- the object if there already is an object with the same identifier in.
-@@ -452,7 +452,7 @@ dict_foreign_add_to_cache(
- 				compatibility */
- 	dict_err_ignore_t	ignore_err)
- 				/*!< in: error to be ignored */
--	__attribute__((nonnull(1), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1), warn_unused_result));
- /*********************************************************************//**
- Checks if a table is referenced by foreign keys.
- @return	TRUE if table is referenced by a foreign key */
-@@ -461,7 +461,7 @@ ibool
- dict_table_is_referenced_by_foreign_key(
- /*====================================*/
- 	const dict_table_t*	table)	/*!< in: InnoDB table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Replace the index passed in with another equivalent index in the
- foreign key lists of the table.
-@@ -475,7 +475,7 @@ dict_foreign_replace_index(
- 					/*!< in: column names, or NULL
- 					to use table->col_names */
- 	const dict_index_t*	index)	/*!< in: index to be replaced */
--	__attribute__((nonnull(1,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,3), warn_unused_result));
- /**********************************************************************//**
- Determines whether a string starts with the specified keyword.
- @return TRUE if str starts with keyword */
-@@ -486,7 +486,7 @@ dict_str_starts_with_keyword(
- 	THD*		thd,		/*!< in: MySQL thread handle */
- 	const char*	str,		/*!< in: string to scan for keyword */
- 	const char*	keyword)	/*!< in: keyword to look for */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Scans a table create SQL string and adds to the data dictionary
- the foreign key constraints declared in the string. This function
-@@ -515,7 +515,7 @@ dict_create_foreign_constraints(
- 	ibool		reject_fks)	/*!< in: if TRUE, fail with error
- 					code DB_CANNOT_ADD_CONSTRAINT if
- 					any foreign keys are found. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Parses the CONSTRAINT id's to be dropped in an ALTER TABLE statement.
- @return DB_SUCCESS or DB_CANNOT_DROP_CONSTRAINT if syntax error or the
-@@ -532,7 +532,7 @@ dict_foreign_parse_drop_constraints(
- 						to drop */
- 	const char***	constraints_to_drop)	/*!< out: id's of the
- 						constraints to drop */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Returns a table object and increments its open handle count.
- NOTE! This is a high-level function to be used mainly from outside the
-@@ -551,7 +551,7 @@ dict_table_open_on_name(
- 	dict_err_ignore_t
- 			ignore_err)	/*!< in: error to be ignored when
- 					loading the table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Tries to find an index whose first fields are the columns in the array,
-@@ -580,7 +580,7 @@ dict_foreign_find_index(
- 					/*!< in: nonzero if none of
- 					the columns must be declared
- 					NOT NULL */
--	__attribute__((nonnull(1,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,3), warn_unused_result));
- /**********************************************************************//**
- Returns a column's name.
- @return column name. NOTE: not guaranteed to stay valid if table is
-@@ -591,7 +591,7 @@ dict_table_get_col_name(
- /*====================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			col_nr)	/*!< in: column number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Prints a table data. */
- UNIV_INTERN
-@@ -599,7 +599,7 @@ void
- dict_table_print(
- /*=============*/
- 	dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Outputs info on foreign keys of a table. */
- UNIV_INTERN
-@@ -613,7 +613,7 @@ dict_print_info_on_foreign_keys(
- 	FILE*		file,	/*!< in: file where to print */
- 	trx_t*		trx,	/*!< in: transaction */
- 	dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Outputs info on a foreign key of a table in a format suitable for
- CREATE TABLE. */
-@@ -625,7 +625,7 @@ dict_print_info_on_foreign_key_in_create_format(
- 	trx_t*		trx,		/*!< in: transaction */
- 	dict_foreign_t*	foreign,	/*!< in: foreign key constraint */
- 	ibool		add_newline)	/*!< in: whether to add a newline */
--	__attribute__((nonnull(1,3)));
-+	MY_ATTRIBUTE((nonnull(1,3)));
- /********************************************************************//**
- Displays the names of the index and the table. */
- UNIV_INTERN
-@@ -635,7 +635,7 @@ dict_index_name_print(
- 	FILE*			file,	/*!< in: output stream */
- 	const trx_t*		trx,	/*!< in: transaction */
- 	const dict_index_t*	index)	/*!< in: index to print */
--	__attribute__((nonnull(1,3)));
-+	MY_ATTRIBUTE((nonnull(1,3)));
- /*********************************************************************//**
- Tries to find an index whose first fields are the columns in the array,
- in the same order and is not marked for deletion and is not the same
-@@ -664,7 +664,7 @@ dict_foreign_qualify_index(
- 					/*!< in: nonzero if none of
- 					the columns must be declared
- 					NOT NULL */
--	__attribute__((nonnull(1,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,3), warn_unused_result));
- #ifdef UNIV_DEBUG
- /********************************************************************//**
- Gets the first index on the table (the clustered index).
-@@ -674,7 +674,7 @@ dict_index_t*
- dict_table_get_first_index(
- /*=======================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the last index on the table.
- @return	index, NULL if none exists */
-@@ -683,7 +683,7 @@ dict_index_t*
- dict_table_get_last_index(
- /*=======================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the next index on the table.
- @return	index, NULL if none left */
-@@ -692,7 +692,7 @@ dict_index_t*
- dict_table_get_next_index(
- /*======================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #else /* UNIV_DEBUG */
- # define dict_table_get_first_index(table) UT_LIST_GET_FIRST((table)->indexes)
- # define dict_table_get_last_index(table) UT_LIST_GET_LAST((table)->indexes)
-@@ -721,7 +721,7 @@ ulint
- dict_index_is_clust(
- /*================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Check whether the index is unique.
- @return	nonzero for unique index, zero for other indexes */
-@@ -730,7 +730,7 @@ ulint
- dict_index_is_unique(
- /*=================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Check whether the index is the insert buffer tree.
- @return	nonzero for insert buffer, zero for other indexes */
-@@ -739,7 +739,7 @@ ulint
- dict_index_is_ibuf(
- /*===============*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Check whether the index is a secondary index or the insert buffer tree.
- @return	nonzero for insert buffer, zero for other indexes */
-@@ -748,7 +748,7 @@ ulint
- dict_index_is_sec_or_ibuf(
- /*======================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /************************************************************************
- Gets the all the FTS indexes for the table. NOTE: must not be called for
-@@ -760,7 +760,7 @@ dict_table_get_all_fts_indexes(
- 				/* out: number of indexes collected */
- 	dict_table_t*	table,	/* in: table */
- 	ib_vector_t*	indexes)/* out: vector for collecting FTS indexes */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Gets the number of user-defined columns in a table in the dictionary
- cache.
-@@ -770,7 +770,7 @@ ulint
- dict_table_get_n_user_cols(
- /*=======================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Gets the number of system columns in a table in the dictionary cache.
- @return	number of system (e.g., ROW_ID) columns of a table */
-@@ -779,7 +779,7 @@ ulint
- dict_table_get_n_sys_cols(
- /*======================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Gets the number of all columns (also system) in a table in the dictionary
- cache.
-@@ -789,7 +789,7 @@ ulint
- dict_table_get_n_cols(
- /*==================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /********************************************************************//**
- Gets the approximately estimated number of rows in the table.
- @return	estimated number of rows */
-@@ -798,7 +798,7 @@ ib_uint64_t
- dict_table_get_n_rows(
- /*==================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Increment the number of rows in the table by one.
- Notice that this operation is not protected by any latch, the number is
-@@ -808,7 +808,7 @@ void
- dict_table_n_rows_inc(
- /*==================*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Decrement the number of rows in the table by one.
- Notice that this operation is not protected by any latch, the number is
-@@ -818,7 +818,7 @@ void
- dict_table_n_rows_dec(
- /*==================*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- /********************************************************************//**
- Gets the nth column of a table.
-@@ -829,7 +829,7 @@ dict_table_get_nth_col(
- /*===================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			pos)	/*!< in: position of column */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the given system column of a table.
- @return	pointer to column object */
-@@ -839,7 +839,7 @@ dict_table_get_sys_col(
- /*===================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			sys)	/*!< in: DATA_ROW_ID, ... */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #else /* UNIV_DEBUG */
- #define dict_table_get_nth_col(table, pos) \
- ((table)->cols + (pos))
-@@ -855,7 +855,7 @@ dict_table_get_sys_col_no(
- /*======================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			sys)	/*!< in: DATA_ROW_ID, ... */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /********************************************************************//**
- Returns the minimum data size of an index record.
-@@ -865,7 +865,7 @@ ulint
- dict_index_get_min_size(
- /*====================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /********************************************************************//**
- Check whether the table uses the compact page format.
-@@ -875,7 +875,7 @@ ibool
- dict_table_is_comp(
- /*===============*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Determine the file format of a table.
- @return	file format version */
-@@ -884,7 +884,7 @@ ulint
- dict_table_get_format(
- /*==================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Determine the file format from a dict_table_t::flags.
- @return	file format version */
-@@ -893,7 +893,7 @@ ulint
- dict_tf_get_format(
- /*===============*/
- 	ulint		flags)		/*!< in: dict_table_t::flags */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /********************************************************************//**
- Set the various values in a dict_table_t::flags pointer. */
- UNIV_INLINE
-@@ -904,7 +904,7 @@ dict_tf_set(
- 	rec_format_t	format,		/*!< in: file format */
- 	ulint		zip_ssize,	/*!< in: zip shift size */
- 	bool		remote_path)	/*!< in: table uses DATA DIRECTORY */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Convert a 32 bit integer table flags to the 32 bit integer that is
- written into the tablespace header at the offset FSP_SPACE_FLAGS and is
-@@ -921,7 +921,7 @@ ulint
- dict_tf_to_fsp_flags(
- /*=================*/
- 	ulint	flags)	/*!< in: dict_table_t::flags */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /********************************************************************//**
- Extract the compressed page size from table flags.
- @return	compressed page size, or 0 if not compressed */
-@@ -930,7 +930,7 @@ ulint
- dict_tf_get_zip_size(
- /*=================*/
- 	ulint	flags)			/*!< in: flags */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /********************************************************************//**
- Check whether the table uses the compressed compact page format.
- @return	compressed page size, or 0 if not compressed */
-@@ -939,7 +939,7 @@ ulint
- dict_table_zip_size(
- /*================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /*********************************************************************//**
- Obtain exclusive locks on all index trees of the table. This is to prevent
-@@ -950,7 +950,7 @@ void
- dict_table_x_lock_indexes(
- /*======================*/
- 	dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Release the exclusive locks on all index tree. */
- UNIV_INLINE
-@@ -958,7 +958,7 @@ void
- dict_table_x_unlock_indexes(
- /*========================*/
- 	dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Checks if a column is in the ordering columns of the clustered index of a
- table. Column prefixes are treated like whole columns.
-@@ -969,7 +969,7 @@ dict_table_col_in_clustered_key(
- /*============================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			n)	/*!< in: column number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Check if the table has an FTS index.
- @return TRUE if table has an FTS index */
-@@ -978,7 +978,7 @@ ibool
- dict_table_has_fts_index(
- /*=====================*/
- 	dict_table_t*   table)		/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Copies types of columns contained in table to tuple and sets all
- fields of the tuple to the SQL NULL value.  This function should
-@@ -989,7 +989,7 @@ dict_table_copy_types(
- /*==================*/
- 	dtuple_t*		tuple,	/*!< in/out: data tuple */
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************
- Wait until all the background threads of the given table have exited, i.e.,
- bg_threads == 0. Note: bg_threads_mutex must be reserved when
-@@ -1001,7 +1001,7 @@ dict_table_wait_for_bg_threads_to_exit(
- 	dict_table_t*	table,	/* in: table */
- 	ulint		delay)	/* in: time in microseconds to wait between
- 				checks of bg_threads. */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Looks for an index with the given id. NOTE that we do not reserve
- the dictionary mutex: this function is for emergency purposes like
-@@ -1012,7 +1012,7 @@ dict_index_t*
- dict_index_find_on_id_low(
- /*======================*/
- 	index_id_t	id)	/*!< in: index id */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /**********************************************************************//**
- Make room in the table cache by evicting an unused table. The unused table
- should not be part of FK relationship and currently not used in any user
-@@ -1038,7 +1038,7 @@ dict_index_add_to_cache(
- 	ibool		strict)	/*!< in: TRUE=refuse to create the index
- 				if records could be too big to fit in
- 				an B-tree page */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Removes an index from the dictionary cache. */
- UNIV_INTERN
-@@ -1047,7 +1047,7 @@ dict_index_remove_from_cache(
- /*=========================*/
- 	dict_table_t*	table,	/*!< in/out: table */
- 	dict_index_t*	index)	/*!< in, own: index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /********************************************************************//**
- Gets the number of fields in the internal representation of an index,
-@@ -1060,7 +1060,7 @@ dict_index_get_n_fields(
- 	const dict_index_t*	index)	/*!< in: an internal
- 					representation of index (in
- 					the dictionary cache) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the number of fields in the internal representation of an index
- that uniquely determine the position of an index entry in the index, if
-@@ -1073,7 +1073,7 @@ dict_index_get_n_unique(
- /*====================*/
- 	const dict_index_t*	index)	/*!< in: an internal representation
- 					of index (in the dictionary cache) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the number of fields in the internal representation of an index
- which uniquely determine the position of an index entry in the index, if
-@@ -1085,7 +1085,7 @@ dict_index_get_n_unique_in_tree(
- /*============================*/
- 	const dict_index_t*	index)	/*!< in: an internal representation
- 					of index (in the dictionary cache) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the number of user-defined ordering fields in the index. In the internal
- representation we add the row id to the ordering fields to make all indexes
-@@ -1098,7 +1098,7 @@ dict_index_get_n_ordering_defined_by_user(
- /*======================================*/
- 	const dict_index_t*	index)	/*!< in: an internal representation
- 					of index (in the dictionary cache) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifdef UNIV_DEBUG
- /********************************************************************//**
- Gets the nth field of an index.
-@@ -1109,7 +1109,7 @@ dict_index_get_nth_field(
- /*=====================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			pos)	/*!< in: position of field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #else /* UNIV_DEBUG */
- # define dict_index_get_nth_field(index, pos) ((index)->fields + (pos))
- #endif /* UNIV_DEBUG */
-@@ -1122,7 +1122,7 @@ dict_index_get_nth_col(
- /*===================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			pos)	/*!< in: position of the field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Gets the column number of the nth field in an index.
- @return	column number */
-@@ -1132,7 +1132,7 @@ dict_index_get_nth_col_no(
- /*======================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			pos)	/*!< in: position of the field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Looks for column n in an index.
- @return position in internal representation of the index;
-@@ -1143,7 +1143,7 @@ dict_index_get_nth_col_pos(
- /*=======================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			n)	/*!< in: column number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Looks for column n in an index.
- @return position in internal representation of the index;
-@@ -1156,7 +1156,7 @@ dict_index_get_nth_col_or_prefix_pos(
- 	ulint			n,		/*!< in: column number */
- 	ibool			inc_prefix)	/*!< in: TRUE=consider
- 						column prefixes too */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Returns TRUE if the index contains a column or a prefix of that column.
- @return	TRUE if contains the column or its prefix */
-@@ -1166,7 +1166,7 @@ dict_index_contains_col_or_prefix(
- /*==============================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			n)	/*!< in: column number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Looks for a matching field in an index. The column has to be the same. The
- column in index must be complete, or must contain a prefix longer than the
-@@ -1181,7 +1181,7 @@ dict_index_get_nth_field_pos(
- 	const dict_index_t*	index,	/*!< in: index from which to search */
- 	const dict_index_t*	index2,	/*!< in: index */
- 	ulint			n)	/*!< in: field number in index2 */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Looks for column n position in the clustered index.
- @return	position in internal representation of the clustered index */
-@@ -1191,7 +1191,7 @@ dict_table_get_nth_col_pos(
- /*=======================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	ulint			n)	/*!< in: column number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Returns the position of a system column in an index.
- @return	position, ULINT_UNDEFINED if not contained */
-@@ -1201,7 +1201,7 @@ dict_index_get_sys_col_pos(
- /*=======================*/
- 	const dict_index_t*	index,	/*!< in: index */
- 	ulint			type)	/*!< in: DATA_ROW_ID, ... */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Adds a column to index. */
- UNIV_INTERN
-@@ -1212,7 +1212,7 @@ dict_index_add_col(
- 	const dict_table_t*	table,		/*!< in: table */
- 	dict_col_t*		col,		/*!< in: column */
- 	ulint			prefix_len)	/*!< in: column prefix length */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /*******************************************************************//**
- Copies types of fields contained in index to tuple. */
-@@ -1224,7 +1224,7 @@ dict_index_copy_types(
- 	const dict_index_t*	index,		/*!< in: index */
- 	ulint			n_fields)	/*!< in: number of
- 						field types to copy */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /*********************************************************************//**
- Gets the field column.
-@@ -1234,7 +1234,7 @@ const dict_col_t*
- dict_field_get_col(
- /*===============*/
- 	const dict_field_t*	field)	/*!< in: index field */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /**********************************************************************//**
- Returns an index object if it is found in the dictionary cache.
-@@ -1245,7 +1245,7 @@ dict_index_t*
- dict_index_get_if_in_cache_low(
- /*===========================*/
- 	index_id_t	index_id)	/*!< in: index id */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
- /**********************************************************************//**
- Returns an index object if it is found in the dictionary cache.
-@@ -1255,7 +1255,7 @@ dict_index_t*
- dict_index_get_if_in_cache(
- /*=======================*/
- 	index_id_t	index_id)	/*!< in: index id */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #endif /* UNIV_DEBUG || UNIV_BUF_DEBUG */
- #ifdef UNIV_DEBUG
- /**********************************************************************//**
-@@ -1268,7 +1268,7 @@ dict_index_check_search_tuple(
- /*==========================*/
- 	const dict_index_t*	index,	/*!< in: index tree */
- 	const dtuple_t*		tuple)	/*!< in: tuple used in a search */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /** Whether and when to allow temporary index names */
- enum check_name {
- 	/** Require all indexes to be complete. */
-@@ -1288,7 +1288,7 @@ dict_table_check_for_dup_indexes(
- 					in this table */
- 	enum check_name		check)	/*!< in: whether and when to allow
- 					temporary index names */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* UNIV_DEBUG */
- /**********************************************************************//**
- Builds a node pointer out of a physical record and a page number.
-@@ -1306,7 +1306,7 @@ dict_index_build_node_ptr(
- 					created */
- 	ulint			level)	/*!< in: level of rec in tree:
- 					0 means leaf level */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Copies an initial segment of a physical record, long enough to specify an
- index entry uniquely.
-@@ -1322,7 +1322,7 @@ dict_index_copy_rec_order_prefix(
- 	byte**			buf,	/*!< in/out: memory buffer for the
- 					copied prefix, or NULL */
- 	ulint*			buf_size)/*!< in/out: buffer size */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Builds a typed data tuple out of a physical record.
- @return	own: data tuple */
-@@ -1334,7 +1334,7 @@ dict_index_build_data_tuple(
- 	rec_t*		rec,	/*!< in: record for which to build data tuple */
- 	ulint		n_fields,/*!< in: number of data fields */
- 	mem_heap_t*	heap)	/*!< in: memory heap where tuple created */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets the space id of the root of the index tree.
- @return	space id */
-@@ -1343,7 +1343,7 @@ ulint
- dict_index_get_space(
- /*=================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets the space id of the root of the index tree. */
- UNIV_INLINE
-@@ -1352,7 +1352,7 @@ dict_index_set_space(
- /*=================*/
- 	dict_index_t*	index,	/*!< in/out: index */
- 	ulint		space)	/*!< in: space id */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Gets the page number of the root of the index tree.
- @return	page number */
-@@ -1361,7 +1361,7 @@ ulint
- dict_index_get_page(
- /*================*/
- 	const dict_index_t*	tree)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Gets the read-write lock of the index tree.
- @return	read-write lock */
-@@ -1370,7 +1370,7 @@ rw_lock_t*
- dict_index_get_lock(
- /*================*/
- 	dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Returns free space reserved for future updates of records. This is
- relevant only in the case of many consecutive inserts, as updates
-@@ -1390,7 +1390,7 @@ enum online_index_status
- dict_index_get_online_status(
- /*=========================*/
- 	const dict_index_t*	index)	/*!< in: secondary index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Sets the status of online index creation. */
- UNIV_INLINE
-@@ -1399,7 +1399,7 @@ dict_index_set_online_status(
- /*=========================*/
- 	dict_index_t*			index,	/*!< in/out: index */
- 	enum online_index_status	status)	/*!< in: status */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Determines if a secondary index is being or has been created online,
- or if the table is being rebuilt online, allowing concurrent modifications
-@@ -1413,7 +1413,7 @@ bool
- dict_index_is_online_ddl(
- /*=====================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Calculates the minimum record length in an index. */
- UNIV_INTERN
-@@ -1421,7 +1421,7 @@ ulint
- dict_index_calc_min_rec_len(
- /*========================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Reserves the dictionary system mutex for MySQL. */
- UNIV_INTERN
-@@ -1485,7 +1485,7 @@ dict_tables_have_same_db(
- 				dbname '/' tablename */
- 	const char*	name2)	/*!< in: table name in the form
- 				dbname '/' tablename */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Removes an index from the cache */
- UNIV_INTERN
-@@ -1494,7 +1494,7 @@ dict_index_remove_from_cache(
- /*=========================*/
- 	dict_table_t*	table,	/*!< in/out: table */
- 	dict_index_t*	index)	/*!< in, own: index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Get index by name
- @return	index, NULL if does not exist */
-@@ -1504,7 +1504,7 @@ dict_table_get_index_on_name(
- /*=========================*/
- 	dict_table_t*	table,	/*!< in: table */
- 	const char*	name)	/*!< in: name of the index to find */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- In case there is more than one index with the same name return the index
- with the min(id).
-@@ -1515,7 +1515,7 @@ dict_table_get_index_on_name_and_min_id(
- /*====================================*/
- 	dict_table_t*	table,	/*!< in: table */
- 	const char*	name)	/*!< in: name of the index to find */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***************************************************************
- Check whether a column exists in an FTS index. */
- UNIV_INLINE
-@@ -1526,7 +1526,7 @@ dict_table_is_fts_column(
- 				the offset within the vector */
- 	ib_vector_t*	indexes,/* in: vector containing only FTS indexes */
- 	ulint		col_no)	/* in: col number to search for */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Move a table to the non LRU end of the LRU list. */
- UNIV_INTERN
-@@ -1534,7 +1534,7 @@ void
- dict_table_move_from_lru_to_non_lru(
- /*================================*/
- 	dict_table_t*	table)	/*!< in: table to move from LRU to non-LRU */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Move a table to the LRU list from the non-LRU list. */
- UNIV_INTERN
-@@ -1542,7 +1542,7 @@ void
- dict_table_move_from_non_lru_to_lru(
- /*================================*/
- 	dict_table_t*	table)	/*!< in: table to move from non-LRU to LRU */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Move to the most recently used segment of the LRU list. */
- UNIV_INTERN
-@@ -1550,7 +1550,7 @@ void
- dict_move_to_mru(
- /*=============*/
- 	dict_table_t*	table)	/*!< in: table to move to MRU */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Maximum number of columns in a foreign key constraint. Please Note MySQL
- has a much lower limit on the number of columns allowed in a foreign key
-@@ -1674,7 +1674,7 @@ dict_table_schema_check(
- 						!= DB_TABLE_NOT_FOUND is
- 						returned */
- 	size_t			errstr_sz)	/*!< in: errstr size */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /* @} */
- 
- /*********************************************************************//**
-@@ -1692,7 +1692,7 @@ dict_fs2utf8(
- 	size_t		db_utf8_size,	/*!< in: dbname_utf8 size */
- 	char*		table_utf8,	/*!< out: table name, e.g. aюbØc */
- 	size_t		table_utf8_size)/*!< in: table_utf8 size */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Closes the data dictionary module. */
-@@ -1709,7 +1709,7 @@ ulint
- dict_table_is_corrupted(
- /*====================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /**********************************************************************//**
- Check whether the index is corrupted.
-@@ -1719,7 +1719,7 @@ ulint
- dict_index_is_corrupted(
- /*====================*/
- 	const dict_index_t*	index)	/*!< in: index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #endif /* !UNIV_HOTBACKUP */
- /**********************************************************************//**
-@@ -1732,7 +1732,7 @@ dict_set_corrupted(
- 	dict_index_t*	index,	/*!< in/out: index */
- 	trx_t*		trx,	/*!< in/out: transaction */
- 	const char*	ctx)	/*!< in: context */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Flags an index corrupted in the data dictionary cache only. This
-@@ -1744,7 +1744,7 @@ dict_set_corrupted_index_cache_only(
- /*================================*/
- 	dict_index_t*	index,		/*!< in/out: index */
- 	dict_table_t*	table)		/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Flags a table with specified space_id corrupted in the table dictionary
-@@ -1764,7 +1764,7 @@ bool
- dict_tf_is_valid(
- /*=============*/
- 	ulint		flags)		/*!< in: table flags */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /********************************************************************//**
- Check if the tablespace for the table has been discarded.
-@@ -1774,7 +1774,7 @@ bool
- dict_table_is_discarded(
- /*====================*/
- 	const dict_table_t*	table)	/*!< in: table to check */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /********************************************************************//**
- Check if it is a temporary table.
-@@ -1784,7 +1784,7 @@ bool
- dict_table_is_temporary(
- /*====================*/
- 	const dict_table_t*	table)	/*!< in: table to check */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- #ifndef UNIV_HOTBACKUP
- /*********************************************************************//**
-@@ -1795,7 +1795,7 @@ void
- dict_index_zip_success(
- /*===================*/
- 	dict_index_t*	index)	/*!< in/out: index to be updated. */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- This function should be called whenever a page compression attempt
- fails. Updates the compression padding information. */
-@@ -1804,7 +1804,7 @@ void
- dict_index_zip_failure(
- /*===================*/
- 	dict_index_t*	index)	/*!< in/out: index to be updated. */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Return the optimal page size, for which page will likely compress.
- @return page size beyond which page may not compress*/
-@@ -1814,7 +1814,7 @@ dict_index_zip_pad_optimal_page_size(
- /*=================================*/
- 	dict_index_t*	index)	/*!< in: index for which page size
- 				is requested */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Convert table flag to row format string.
- @return row format name */
---- a/storage/innobase/include/dict0dict.ic
-+++ b/storage/innobase/include/dict0dict.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -357,7 +357,7 @@ UNIV_INLINE
- ulint
- dict_table_get_n_sys_cols(
- /*======================*/
--	const dict_table_t*	table __attribute__((unused)))	/*!< in: table */
-+	const dict_table_t*	table MY_ATTRIBUTE((unused)))	/*!< in: table */
- {
- 	ut_ad(table);
- 	ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
---- a/storage/innobase/include/dict0load.h
-+++ b/storage/innobase/include/dict0load.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -243,7 +243,7 @@ dict_load_foreigns(
- 	bool			check_charsets,	/*!< in: whether to check
- 						charset compatibility */
- 	dict_err_ignore_t	ignore_err)	/*!< in: error to be ignored */
--	__attribute__((nonnull(1), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1), warn_unused_result));
- /********************************************************************//**
- Prints to the standard output information on all tables found in the data
- dictionary system table. */
---- a/storage/innobase/include/dict0mem.h
-+++ b/storage/innobase/include/dict0mem.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -276,7 +276,7 @@ dict_mem_table_add_col(
- 	ulint		mtype,	/*!< in: main datatype */
- 	ulint		prtype,	/*!< in: precise type */
- 	ulint		len)	/*!< in: precision */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /**********************************************************************//**
- Renames a column of a table in the data dictionary cache. */
- UNIV_INTERN
-@@ -287,7 +287,7 @@ dict_mem_table_col_rename(
- 	unsigned	nth_col,/*!< in: column index */
- 	const char*	from,	/*!< in: old column name */
- 	const char*	to)	/*!< in: new column name */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- This function populates a dict_col_t memory structure with
- supplied information. */
---- a/storage/innobase/include/dict0stats.h
-+++ b/storage/innobase/include/dict0stats.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2009, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2009, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -77,7 +77,7 @@ dict_stats_set_persistent(
- 	dict_table_t*	table,	/*!< in/out: table */
- 	ibool		ps_on,	/*!< in: persistent stats explicitly enabled */
- 	ibool		ps_off)	/*!< in: persistent stats explicitly disabled */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*********************************************************************//**
- Check whether persistent statistics is enabled for a given table.
-@@ -87,7 +87,7 @@ ibool
- dict_stats_is_persistent_enabled(
- /*=============================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Set the auto recalc flag for a given table (only honored for a persistent
-@@ -127,7 +127,7 @@ void
- dict_stats_deinit(
- /*==============*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*********************************************************************//**
- Calculates new estimates for table and index statistics. The statistics
-@@ -179,7 +179,7 @@ void
- dict_stats_update_for_index(
- /*========================*/
- 	dict_index_t*	index)	/*!< in/out: index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*********************************************************************//**
- Renames a table in InnoDB persistent stats storage.
---- a/storage/innobase/include/dict0stats_bg.h
-+++ b/storage/innobase/include/dict0stats_bg.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -74,7 +74,7 @@ bool
- dict_stats_stop_bg(
- /*===============*/
- 	dict_table_t*	table)	/*!< in/out: table */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*****************************************************************//**
- Wait until background stats thread has stopped using the specified table.
---- a/storage/innobase/include/dyn0dyn.h
-+++ b/storage/innobase/include/dyn0dyn.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -48,7 +48,7 @@ dyn_array_create(
- /*=============*/
- 	dyn_array_t*	arr)	/*!< in/out memory buffer of
- 				size sizeof(dyn_array_t) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /************************************************************//**
- Frees a dynamic array. */
- UNIV_INLINE
-@@ -56,7 +56,7 @@ void
- dyn_array_free(
- /*===========*/
- 	dyn_array_t*	arr)	/*!< in,own: dyn array */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Makes room on top of a dyn array and returns a pointer to a buffer in it.
- After copying the elements, the caller must close the buffer using
-@@ -69,7 +69,7 @@ dyn_array_open(
- 	dyn_array_t*	arr,	/*!< in: dynamic array */
- 	ulint		size)	/*!< in: size in bytes of the buffer; MUST be
- 				smaller than DYN_ARRAY_DATA_SIZE! */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Closes the buffer returned by dyn_array_open. */
- UNIV_INLINE
-@@ -78,7 +78,7 @@ dyn_array_close(
- /*============*/
- 	dyn_array_t*	arr,	/*!< in: dynamic array */
- 	const byte*	ptr)	/*!< in: end of used space */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Makes room on top of a dyn array and returns a pointer to
- the added element. The caller must copy the element to
-@@ -90,7 +90,7 @@ dyn_array_push(
- /*===========*/
- 	dyn_array_t*	arr,	/*!< in/out: dynamic array */
- 	ulint		size)	/*!< in: size in bytes of the element */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /************************************************************//**
- Returns pointer to an element in dyn array.
- @return	pointer to element */
-@@ -101,7 +101,7 @@ dyn_array_get_element(
- 	const dyn_array_t*	arr,	/*!< in: dyn array */
- 	ulint			pos)	/*!< in: position of element
- 					in bytes from array start */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /************************************************************//**
- Returns the size of stored data in a dyn array.
- @return	data size in bytes */
-@@ -110,7 +110,7 @@ ulint
- dyn_array_get_data_size(
- /*====================*/
- 	const dyn_array_t*	arr)	/*!< in: dyn array */
--	__attribute__((nonnull, warn_unused_result, pure));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
- /************************************************************//**
- Gets the first block in a dyn array.
- @param arr	dyn array
-@@ -144,7 +144,7 @@ ulint
- dyn_block_get_used(
- /*===============*/
- 	const dyn_block_t*	block)	/*!< in: dyn array block */
--	__attribute__((nonnull, warn_unused_result, pure));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
- /********************************************************************//**
- Gets pointer to the start of data in a dyn array block.
- @return	pointer to data */
-@@ -153,7 +153,7 @@ byte*
- dyn_block_get_data(
- /*===============*/
- 	const dyn_block_t*	block)	/*!< in: dyn array block */
--	__attribute__((nonnull, warn_unused_result, pure));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result, pure));
- /********************************************************//**
- Pushes n bytes to a dyn array. */
- UNIV_INLINE
-@@ -163,7 +163,7 @@ dyn_push_string(
- 	dyn_array_t*	arr,	/*!< in/out: dyn array */
- 	const byte*	str,	/*!< in: string to write */
- 	ulint		len)	/*!< in: string length */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*#################################################################*/
- 
---- a/storage/innobase/include/dyn0dyn.ic
-+++ b/storage/innobase/include/dyn0dyn.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -36,7 +36,7 @@ dyn_block_t*
- dyn_array_add_block(
- /*================*/
- 	dyn_array_t*	arr)	/*!< in/out: dyn array */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /********************************************************************//**
- Gets the number of used bytes in a dyn array block.
---- a/storage/innobase/include/fil0fil.h
-+++ b/storage/innobase/include/fil0fil.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -233,7 +233,7 @@ fil_node_create(
- 	ulint		id,	/*!< in: space id where to append */
- 	ibool		is_raw)	/*!< in: TRUE if a raw device or
- 				a raw disk partition */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifdef UNIV_LOG_ARCHIVE
- /****************************************************************//**
- Drops files from the start of a file space, so that its size is cut by
-@@ -400,7 +400,7 @@ fil_read_first_page(
- 						lsn values in data files */
- 	lsn_t*		max_flushed_lsn)	/*!< out: max of flushed
- 						lsn values in data files */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /*******************************************************************//**
- Increments the count of pending operation, if space is not being deleted.
- @return	TRUE if being deleted, and operation should be skipped */
-@@ -488,7 +488,7 @@ dberr_t
- fil_discard_tablespace(
- /*===================*/
- 	ulint	id)	/*!< in: space id */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- 
- /** Test if a tablespace file can be renamed to a new filepath by checking
-@@ -597,7 +597,7 @@ fil_create_new_single_table_tablespace(
- 	ulint		size)		/*!< in: the initial size of the
- 					tablespace file in pages,
- 					must be >= FIL_IBD_FILE_INITIAL_SIZE */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_HOTBACKUP
- /********************************************************************//**
- Tries to open a single-table tablespace and optionally checks the space id is
-@@ -631,7 +631,7 @@ fil_open_single_table_tablespace(
- 	const char*	tablename,	/*!< in: table name in the
- 					databasename/tablename format */
- 	const char*	filepath)	/*!< in: tablespace filepath */
--	__attribute__((nonnull(5), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(5), warn_unused_result));
- 
- #endif /* !UNIV_HOTBACKUP */
- /********************************************************************//**
-@@ -780,7 +780,7 @@ fil_io(
- 				appropriately aligned */
- 	void*	message)	/*!< in: message for aio handler if non-sync
- 				aio used, else ignored */
--	__attribute__((nonnull(8)));
-+	MY_ATTRIBUTE((nonnull(8)));
- /**********************************************************************//**
- Waits for an aio operation to complete. This function is used to write the
- handler for completed requests. The aio array of pending requests is divided
-@@ -975,7 +975,7 @@ fil_tablespace_iterate(
- 	dict_table_t*		table,
- 	ulint			n_io_buffers,
- 	PageCallback&		callback)
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*******************************************************************//**
- Checks if a single-table tablespace for a given table name exists in the
-@@ -999,7 +999,7 @@ fil_get_space_names(
- /*================*/
- 	space_name_list_t&	space_name_list)
- 				/*!< in/out: Vector for collecting the names. */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /** Generate redo log for swapping two .ibd files
- @param[in]	old_table	old table
-@@ -1014,7 +1014,7 @@ fil_mtr_rename_log(
- 	const dict_table_t*	new_table,
- 	const char*		tmp_name,
- 	mtr_t*			mtr)
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*******************************************************************//**
- Finds the given page_no of the given space id from the double write buffer,
---- a/storage/innobase/include/fsp0fsp.h
-+++ b/storage/innobase/include/fsp0fsp.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -510,7 +510,7 @@ fseg_alloc_free_page_general(
- 				in which the page should be initialized.
- 				If init_mtr!=mtr, but the page is already
- 				latched in mtr, do not initialize the page. */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /**********************************************************************//**
- Reserves free pages from a tablespace. All mini-transactions which may
- use several pages from the tablespace should call this function beforehand
-@@ -579,7 +579,7 @@ fseg_page_is_free(
- 	fseg_header_t*	seg_header,	/*!< in: segment header */
- 	ulint		space,		/*!< in: space id */
- 	ulint		page)		/*!< in: page offset */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************************//**
- Frees part of a segment. This function can be used to free a segment
- by repeatedly calling this function in different mini-transactions.
-@@ -675,7 +675,7 @@ bool
- fsp_flags_is_valid(
- /*===============*/
- 	ulint	flags)		/*!< in: tablespace flags */
--	__attribute__((warn_unused_result, const));
-+	MY_ATTRIBUTE((warn_unused_result, const));
- /********************************************************************//**
- Determine if the tablespace is compressed from dict_table_t::flags.
- @return	TRUE if compressed, FALSE if not compressed */
---- a/storage/innobase/include/fts0ast.h
-+++ b/storage/innobase/include/fts0ast.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2007, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -200,7 +200,7 @@ fts_ast_visit(
- 						and ignored processing an
- 						operator, currently we only
- 						ignore FTS_IGNORE operator */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*****************************************************************//**
- Process (nested) sub-expression, create a new result set to store the
- sub-expression result by processing nodes under current sub-expression
-@@ -213,7 +213,7 @@ fts_ast_visit_sub_exp(
- 	fts_ast_node_t*		node,		/*!< in: instance to traverse*/
- 	fts_ast_callback	visitor,	/*!< in: callback */
- 	void*			arg)		/*!< in: callback arg */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************
- Create a lex instance.*/
- UNIV_INTERN
-@@ -223,7 +223,7 @@ fts_lexer_create(
- 	ibool		boolean_mode,		/*!< in: query type */
- 	const byte*	query,			/*!< in: query string */
- 	ulint		query_len)		/*!< in: query string len */
--	__attribute__((nonnull, malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
- /********************************************************************
- Free an fts_lexer_t instance.*/
- UNIV_INTERN
-@@ -232,7 +232,7 @@ fts_lexer_free(
- /*===========*/
- 	fts_lexer_t*	fts_lexer)		/*!< in: lexer instance to
- 						free */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**
- Create an ast string object, with NUL-terminator, so the string
---- a/storage/innobase/include/fts0fts.h
-+++ b/storage/innobase/include/fts0fts.h
-@@ -411,7 +411,7 @@ fts_get_next_doc_id(
- /*================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	doc_id_t*		doc_id)	/*!< out: new document id */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Update the next and last Doc ID in the CONFIG table to be the input
- "doc_id" value (+ 1). We would do so after each FTS index build or
-@@ -424,7 +424,7 @@ fts_update_next_doc_id(
- 	const dict_table_t*	table,		/*!< in: table */
- 	const char*		table_name,	/*!< in: table name, or NULL */
- 	doc_id_t		doc_id)		/*!< in: DOC ID to set */
--	__attribute__((nonnull(2)));
-+	MY_ATTRIBUTE((nonnull(2)));
- 
- /******************************************************************//**
- Create a new document id .
-@@ -440,7 +440,7 @@ fts_create_doc_id(
- 						current row that is being
- 						inserted. */
- 	mem_heap_t*	heap)			/*!< in: heap */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Create a new fts_doc_ids_t.
- @return new fts_doc_ids_t. */
-@@ -469,7 +469,7 @@ fts_trx_add_op(
- 	fts_row_state	state,			/*!< in: state of the row */
- 	ib_vector_t*	fts_indexes)		/*!< in: FTS indexes affected
- 						(NULL=all) */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /******************************************************************//**
- Free an FTS trx. */
-@@ -494,7 +494,7 @@ fts_create_common_tables(
- 						index */
- 	const char*	name,			/*!< in: table name */
- 	bool		skip_doc_id_index)	/*!< in: Skip index on doc id */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Wrapper function of fts_create_index_tables_low(), create auxiliary
- tables for an FTS index
-@@ -506,7 +506,7 @@ fts_create_index_tables(
- 	trx_t*			trx,		/*!< in: transaction handle */
- 	const dict_index_t*	index)		/*!< in: the FTS index
- 						instance */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Creates the column specific ancillary tables needed for supporting an
- FTS index on the given table. row_mysql_lock_data_dictionary must have
-@@ -522,7 +522,7 @@ fts_create_index_tables_low(
- 						instance */
- 	const char*	table_name,		/*!< in: the table name */
- 	table_id_t	table_id)		/*!< in: the table id */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Add the FTS document id hidden column. */
- UNIV_INTERN
-@@ -531,7 +531,7 @@ fts_add_doc_id_column(
- /*==================*/
- 	dict_table_t*	table,	/*!< in/out: Table with FTS index */
- 	mem_heap_t*	heap)	/*!< in: temporary memory heap, or NULL */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- 
- /*********************************************************************//**
- Drops the ancillary tables needed for supporting an FTS index on the
-@@ -545,7 +545,7 @@ fts_drop_tables(
- 	trx_t*		trx,			/*!< in: transaction */
- 	dict_table_t*	table)			/*!< in: table has the FTS
- 						index */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- The given transaction is about to be committed; do whatever is necessary
- from the FTS system's POV.
-@@ -555,7 +555,7 @@ dberr_t
- fts_commit(
- /*=======*/
- 	trx_t*		trx)			/*!< in: transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*******************************************************************//**
- FTS Query entry point.
-@@ -572,7 +572,7 @@ fts_query(
- 						in bytes */
- 	fts_result_t**	result)			/*!< out: query result, to be
- 						freed by the caller.*/
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************************//**
- Retrieve the FTS Relevance Ranking result for doc with doc_id
-@@ -690,7 +690,7 @@ dberr_t
- fts_optimize_table(
- /*===============*/
- 	dict_table_t*	table)			/*!< in: table to optimiza */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Startup the optimize thread and create the work queue. */
-@@ -716,7 +716,7 @@ fts_drop_index_tables(
- /*==================*/
- 	trx_t*		trx,			/*!< in: transaction */
- 	dict_index_t*	index)			/*!< in: Index to drop */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************************//**
- Remove the table from the OPTIMIZER's list. We do wait for
-@@ -757,7 +757,7 @@ fts_savepoint_take(
- 	trx_t*		trx,			/*!< in: transaction */
- 	fts_trx_t*	fts_trx,		/*!< in: fts transaction */
- 	const char*	name)			/*!< in: savepoint name */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Refresh last statement savepoint. */
- UNIV_INTERN
-@@ -765,7 +765,7 @@ void
- fts_savepoint_laststmt_refresh(
- /*===========================*/
- 	trx_t*		trx)			/*!< in: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Release the savepoint data identified by  name. */
- UNIV_INTERN
-@@ -834,7 +834,7 @@ fts_drop_index_split_tables(
- /*========================*/
- 	trx_t*		trx,			/*!< in: transaction */
- 	dict_index_t*	index)			/*!< in: fts instance */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /** Run SYNC on the table, i.e., write out data from the cache to the
- FTS auxiliary INDEX table and clear the cache at the end.
-@@ -1026,7 +1026,7 @@ fts_drop_index(
- 	dict_table_t*	table,	/*!< in: Table where indexes are dropped */
- 	dict_index_t*	index,	/*!< in: Index to be dropped */
- 	trx_t*		trx)	/*!< in: Transaction for the drop */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /****************************************************************//**
- Rename auxiliary tables for all fts index for a table
---- a/storage/innobase/include/fts0priv.h
-+++ b/storage/innobase/include/fts0priv.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -121,7 +121,7 @@ fts_parse_sql(
- 	fts_table_t*	fts_table,	/*!< in: FTS aux table */
- 	pars_info_t*	info,		/*!< in: info struct, or NULL */
- 	const char*	sql)		/*!< in: SQL string to evaluate */
--	__attribute__((nonnull(3), malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(3), malloc, warn_unused_result));
- /******************************************************************//**
- Evaluate a parsed SQL statement
- @return DB_SUCCESS or error code */
-@@ -131,7 +131,7 @@ fts_eval_sql(
- /*=========*/
- 	trx_t*		trx,		/*!< in: transaction */
- 	que_t*		graph)		/*!< in: Parsed statement */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Construct the name of an ancillary FTS table for the given table.
- @return own: table name, must be freed with mem_free() */
-@@ -141,7 +141,7 @@ fts_get_table_name(
- /*===============*/
- 	const fts_table_t*
- 			fts_table)	/*!< in: FTS aux table info */
--	__attribute__((nonnull, malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
- /******************************************************************//**
- Construct the column specification part of the SQL string for selecting the
- indexed FTS columns for the given table. Adds the necessary bound
-@@ -164,7 +164,7 @@ fts_get_select_columns_str(
- 	dict_index_t*	index,		/*!< in: FTS index */
- 	pars_info_t*	info,		/*!< in/out: parser info */
- 	mem_heap_t*	heap)		/*!< in: memory heap */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /** define for fts_doc_fetch_by_doc_id() "option" value, defines whether
- we want to get Doc whose ID is equal to or greater or smaller than supplied
-@@ -191,7 +191,7 @@ fts_doc_fetch_by_doc_id(
- 			callback,	/*!< in: callback to read
- 					records */
- 	void*		arg)		/*!< in: callback arg */
--	__attribute__((nonnull(6)));
-+	MY_ATTRIBUTE((nonnull(6)));
- 
- /*******************************************************************//**
- Callback function for fetch that stores the text of an FTS document,
-@@ -203,7 +203,7 @@ fts_query_expansion_fetch_doc(
- /*==========================*/
- 	void*		row,		/*!< in: sel_node_t* */
- 	void*		user_arg)	/*!< in: fts_doc_t* */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************
- Write out a single word's data as new entry/entries in the INDEX table.
- @return DB_SUCCESS if all OK. */
-@@ -216,7 +216,7 @@ fts_write_node(
- 	fts_table_t*	fts_table,	/*!< in: the FTS aux index */
- 	fts_string_t*	word,		/*!< in: word in UTF-8 */
- 	fts_node_t*	node)		/*!< in: node columns */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Tokenize a document. */
- UNIV_INTERN
-@@ -227,7 +227,7 @@ fts_tokenize_document(
- 					tokenize */
- 	fts_doc_t*	result)		/*!< out: if provided, save
- 					result tokens here */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- 
- /*******************************************************************//**
- Continue to tokenize a document. */
-@@ -241,7 +241,7 @@ fts_tokenize_document_next(
- 					tokens from this tokenization */
- 	fts_doc_t*	result)		/*!< out: if provided, save
- 					result tokens here */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /******************************************************************//**
- Initialize a document. */
- UNIV_INTERN
-@@ -249,7 +249,7 @@ void
- fts_doc_init(
- /*=========*/
- 	fts_doc_t*	doc)		/*!< in: doc to initialize */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************************//**
- Do a binary search for a doc id in the array
-@@ -263,7 +263,7 @@ fts_bsearch(
- 	int		lower,		/*!< in: lower bound of array*/
- 	int		upper,		/*!< in: upper bound of array*/
- 	doc_id_t	doc_id)		/*!< in: doc id to lookup */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Free document. */
- UNIV_INTERN
-@@ -271,7 +271,7 @@ void
- fts_doc_free(
- /*=========*/
- 	fts_doc_t*	doc)		/*!< in: document */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Free fts_optimizer_word_t instanace.*/
- UNIV_INTERN
-@@ -279,7 +279,7 @@ void
- fts_word_free(
- /*==========*/
- 	fts_word_t*	word)		/*!< in: instance to free.*/
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Read the rows from the FTS inde
- @return DB_SUCCESS or error code */
-@@ -293,7 +293,7 @@ fts_index_fetch_nodes(
- 	const fts_string_t*
- 			word,		/*!< in: the word to fetch */
- 	fts_fetch_t*	fetch)		/*!< in: fetch callback.*/
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Create a fts_optimizer_word_t instance.
- @return new instance */
-@@ -304,7 +304,7 @@ fts_word_init(
- 	fts_word_t*	word,		/*!< in: word to initialize */
- 	byte*		utf8,		/*!< in: UTF-8 string */
- 	ulint		len)		/*!< in: length of string in bytes */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Compare two fts_trx_table_t instances, we actually compare the
- table id's here.
-@@ -315,7 +315,7 @@ fts_trx_table_cmp(
- /*==============*/
- 	const void*	v1,		/*!< in: id1 */
- 	const void*	v2)		/*!< in: id2 */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Compare a table id with a trx_table_t table id.
- @return < 0 if n1 < n2, 0 if n1 == n2, > 0 if n1 > n2 */
-@@ -325,7 +325,7 @@ fts_trx_table_id_cmp(
- /*=================*/
- 	const void*	p1,		/*!< in: id1 */
- 	const void*	p2)		/*!< in: id2 */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Commit a transaction.
- @return DB_SUCCESS if all OK */
-@@ -334,7 +334,7 @@ dberr_t
- fts_sql_commit(
- /*===========*/
- 	trx_t*		trx)		/*!< in: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Rollback a transaction.
- @return DB_SUCCESS if all OK */
-@@ -343,7 +343,7 @@ dberr_t
- fts_sql_rollback(
- /*=============*/
- 	trx_t*		trx)		/*!< in: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Parse an SQL string. %s is replaced with the table's id. Don't acquire
- the dict mutex
-@@ -355,7 +355,7 @@ fts_parse_sql_no_dict_lock(
- 	fts_table_t*	fts_table,	/*!< in: table with FTS index */
- 	pars_info_t*	info,		/*!< in: parser info */
- 	const char*	sql)		/*!< in: SQL string to evaluate */
--	__attribute__((nonnull(3), malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(3), malloc, warn_unused_result));
- /******************************************************************//**
- Get value from config table. The caller must ensure that enough
- space is allocated for value to hold the column contents
-@@ -370,7 +370,7 @@ fts_config_get_value(
- 					this parameter name */
- 	fts_string_t*	value)		/*!< out: value read from
- 					config table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Get value specific to an FTS index from the config table. The caller
- must ensure that enough space is allocated for value to hold the
-@@ -386,7 +386,7 @@ fts_config_get_index_value(
- 					this parameter name */
- 	fts_string_t*	value)		/*!< out: value read from
- 					config table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Set the value in the config table for name.
- @return DB_SUCCESS or error code */
-@@ -400,7 +400,7 @@ fts_config_set_value(
- 					this parameter name */
- 	const fts_string_t*
- 			value)		/*!< in: value to update */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /****************************************************************//**
- Set an ulint value in the config table.
- @return DB_SUCCESS if all OK else error code */
-@@ -412,7 +412,7 @@ fts_config_set_ulint(
- 	fts_table_t*	fts_table,	/*!< in: the indexed FTS table */
- 	const char*	name,		/*!< in: param name */
- 	ulint		int_value)	/*!< in: value */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Set the value specific to an FTS index in the config table.
- @return DB_SUCCESS or error code */
-@@ -426,7 +426,7 @@ fts_config_set_index_value(
- 					this parameter name */
- 	fts_string_t*	value)		/*!< out: value read from
- 					config table */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Increment the value in the config table for column name.
- @return DB_SUCCESS or error code */
-@@ -439,7 +439,7 @@ fts_config_increment_value(
- 	const char*	name,		/*!< in: increment config value
- 					for this parameter name */
- 	ulint		delta)		/*!< in: increment by this much */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Increment the per index value in the config table for column name.
- @return DB_SUCCESS or error code */
-@@ -452,7 +452,7 @@ fts_config_increment_index_value(
- 	const char*	name,		/*!< in: increment config value
- 					for this parameter name */
- 	ulint		delta)		/*!< in: increment by this much */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Get an ulint value from the config table.
- @return DB_SUCCESS or error code */
-@@ -464,7 +464,7 @@ fts_config_get_index_ulint(
- 	dict_index_t*	index,		/*!< in: FTS index */
- 	const char*	name,		/*!< in: param name */
- 	ulint*		int_value)	/*!< out: value */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Set an ulint value int the config table.
- @return DB_SUCCESS or error code */
-@@ -476,7 +476,7 @@ fts_config_set_index_ulint(
- 	dict_index_t*	index,		/*!< in: FTS index */
- 	const char*	name,		/*!< in: param name */
- 	ulint		int_value)	/*!< in: value */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Get an ulint value from the config table.
- @return DB_SUCCESS or error code */
-@@ -488,7 +488,7 @@ fts_config_get_ulint(
- 	fts_table_t*	fts_table,	/*!< in: the indexed FTS table */
- 	const char*	name,		/*!< in: param name */
- 	ulint*		int_value)	/*!< out: value */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Search cache for word.
- @return the word node vector if found else NULL */
-@@ -500,7 +500,7 @@ fts_cache_find_word(
- 			index_cache,	/*!< in: cache to search */
- 	const fts_string_t*
- 			text)		/*!< in: word to search for */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Check cache for deleted doc id.
- @return TRUE if deleted */
-@@ -511,7 +511,7 @@ fts_cache_is_deleted_doc_id(
- 	const fts_cache_t*
- 			cache,		/*!< in: cache ito search */
- 	doc_id_t	doc_id)		/*!< in: doc id to search for */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Append deleted doc ids to vector and sort the vector. */
- UNIV_INTERN
-@@ -546,7 +546,7 @@ fts_get_total_word_count(
- 	trx_t*		trx,		/*!< in: transaction */
- 	dict_index_t*	index,		/*!< in: for this index */
- 	ulint*		total)		/*!< out: total words */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif
- /******************************************************************//**
- Search the index specific cache for a particular FTS index.
-@@ -559,7 +559,7 @@ fts_find_index_cache(
- 			cache,		/*!< in: cache to search */
- 	const dict_index_t*
- 			index)		/*!< in: index to search for */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Write the table id to the given buffer (including final NUL). Buffer must be
- at least FTS_AUX_MIN_TABLE_ID_LENGTH bytes long.
-@@ -570,10 +570,10 @@ fts_write_object_id(
- /*================*/
- 	ib_id_t		id,		/*!< in: a table/index id */
- 	char*		str,		/*!< in: buffer to write the id to */
--	bool		hex_format __attribute__((unused)))
-+	bool		hex_format MY_ATTRIBUTE((unused)))
- 					/*!< in: true for fixed hex format,
- 					false for old ambiguous format */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Read the table id from the string generated by fts_write_object_id().
- @return TRUE if parse successful */
-@@ -583,7 +583,7 @@ fts_read_object_id(
- /*===============*/
- 	ib_id_t*	id,		/*!< out: a table id */
- 	const char*	str)		/*!< in: buffer to read from */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Get the table id.
- @return number of bytes written */
-@@ -596,7 +596,7 @@ fts_get_table_id(
- 	char*		table_id)	/*!< out: table id, must be at least
- 					FTS_AUX_MIN_TABLE_ID_LENGTH bytes
- 					long */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Add the table to add to the OPTIMIZER's list. */
- UNIV_INTERN
-@@ -604,7 +604,7 @@ void
- fts_optimize_add_table(
- /*===================*/
- 	dict_table_t*	table)		/*!< in: table to add */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Optimize a table. */
- UNIV_INTERN
-@@ -612,7 +612,7 @@ void
- fts_optimize_do_table(
- /*==================*/
- 	dict_table_t*	table)		/*!< in: table to optimize */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Construct the prefix name of an FTS table.
- @return own: table name, must be freed with mem_free() */
-@@ -622,7 +622,7 @@ fts_get_table_name_prefix(
- /*======================*/
- 	const fts_table_t*
- 			fts_table)	/*!< in: Auxiliary table type */
--	__attribute__((nonnull, malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
- /******************************************************************//**
- Add node positions. */
- UNIV_INTERN
-@@ -633,7 +633,7 @@ fts_cache_node_add_positions(
- 	fts_node_t*	node,		/*!< in: word node */
- 	doc_id_t	doc_id,		/*!< in: doc id */
- 	ib_vector_t*	positions)	/*!< in: fts_token_t::positions */
--	__attribute__((nonnull(2,4)));
-+	MY_ATTRIBUTE((nonnull(2,4)));
- 
- /******************************************************************//**
- Create the config table name for retrieving index specific value.
-@@ -644,7 +644,7 @@ fts_config_create_index_param_name(
- /*===============================*/
- 	const char*		param,		/*!< in: base name of param */
- 	const dict_index_t*	index)		/*!< in: index for config */
--	__attribute__((nonnull, malloc, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, malloc, warn_unused_result));
- 
- #ifndef UNIV_NONINL
- #include "fts0priv.ic"
---- a/storage/innobase/include/fts0priv.ic
-+++ b/storage/innobase/include/fts0priv.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -33,7 +33,7 @@ fts_write_object_id(
- /*================*/
- 	ib_id_t		id,		/* in: a table/index id */
- 	char*		str,		/* in: buffer to write the id to */
--	bool		hex_format __attribute__((unused)))
-+	bool		hex_format MY_ATTRIBUTE((unused)))
- 					/* in: true for fixed hex format,
- 					false for old ambiguous format */
- {
---- a/storage/innobase/include/ha_prototypes.h
-+++ b/storage/innobase/include/ha_prototypes.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2006, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2006, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -135,7 +135,7 @@ enum durability_properties
- thd_requested_durability(
- /*=====================*/
- 	const THD* thd)	/*!< in: thread handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************************//**
- Returns true if the transaction this thread is processing has edited
-@@ -176,7 +176,7 @@ innobase_mysql_cmp(
- 	const unsigned char* b,		/*!< in: data field */
- 	unsigned int	b_length)	/*!< in: data field length,
- 					not UNIV_SQL_NULL */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**************************************************************//**
- Converts a MySQL type to an InnoDB type. Note that this function returns
- the 'mtype' of InnoDB. InnoDB differentiates between MySQL's old <= 4.1
-@@ -192,7 +192,7 @@ get_innobase_type_from_mysql_type(
- 					and unsigned integer
- 					types are 'unsigned types' */
- 	const void*	field)		/*!< in: MySQL Field */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************************//**
- Get the variable length bounds of the given character set. */
-@@ -290,7 +290,7 @@ innobase_get_stmt(
- /*==============*/
- 	THD*	thd,		/*!< in: MySQL thread handle */
- 	size_t*	length)		/*!< out: length of the SQL statement */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- This function is used to find the storage length in bytes of the first n
- characters for prefix indexes using a multibyte character set. The function
-@@ -316,7 +316,7 @@ enum icp_result
- innobase_index_cond(
- /*================*/
- 	void*	file)	/*!< in/out: pointer to ha_innobase */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Returns true if the thread supports XA,
- global value of innodb_supports_xa if thd is NULL.
-@@ -452,7 +452,7 @@ innobase_format_name(
- 	const char*	name,		/*!< in: index or table name
- 					to format */
- 	ibool		is_index_name)	/*!< in: index name */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Corresponds to Sql_condition:enum_warning_level. */
- enum ib_log_level_t {
-@@ -482,7 +482,7 @@ ib_errf(
- 	ib_uint32_t	code,		/*!< MySQL error code */
- 	const char*	format,		/*!< printf format */
- 	...)				/*!< Args */
--	__attribute__((format(printf, 4, 5)));
-+	MY_ATTRIBUTE((format(printf, 4, 5)));
- 
- /******************************************************************//**
- Use this when the args are passed to the format string from
-@@ -513,7 +513,7 @@ ib_logf(
- 	ib_log_level_t	level,		/*!< in: warning level */
- 	const char*	format,		/*!< printf format */
- 	...)				/*!< Args */
--	__attribute__((format(printf, 2, 3)));
-+	MY_ATTRIBUTE((format(printf, 2, 3)));
- 
- /******************************************************************//**
- Returns the NUL terminated value of glob_hostname.
-@@ -559,7 +559,7 @@ innobase_next_autoinc(
- 	ulonglong	step,		/*!< in: AUTOINC increment step */
- 	ulonglong	offset,		/*!< in: AUTOINC offset */
- 	ulonglong	max_value)	/*!< in: max value for type */
--	__attribute__((pure, warn_unused_result));
-+	MY_ATTRIBUTE((pure, warn_unused_result));
- 
- /********************************************************************//**
- Get the upper limit of the MySQL integral and floating-point type.
-@@ -569,7 +569,7 @@ ulonglong
- innobase_get_int_col_max_value(
- /*===========================*/
- 	const Field*	field)	/*!< in: MySQL field */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /**********************************************************************
- Check if the length of the identifier exceeds the maximum allowed.
---- a/storage/innobase/include/handler0alter.h
-+++ b/storage/innobase/include/handler0alter.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -32,7 +32,7 @@ innobase_rec_to_mysql(
- 	const dict_index_t*	index,	/*!< in: index */
- 	const ulint*		offsets)/*!< in: rec_get_offsets(
- 					rec, index, ...) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*************************************************************//**
- Copies an InnoDB index entry to table->record[0]. */
-@@ -43,7 +43,7 @@ innobase_fields_to_mysql(
- 	struct TABLE*		table,	/*!< in/out: MySQL table */
- 	const dict_index_t*	index,	/*!< in: InnoDB index */
- 	const dfield_t*		fields)	/*!< in: InnoDB index fields */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*************************************************************//**
- Copies an InnoDB row to table->record[0]. */
-@@ -54,7 +54,7 @@ innobase_row_to_mysql(
- 	struct TABLE*		table,	/*!< in/out: MySQL table */
- 	const dict_table_t*	itab,	/*!< in: InnoDB table */
- 	const dtuple_t*		row)	/*!< in: InnoDB row */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*************************************************************//**
- Resets table->record[0]. */
-@@ -63,7 +63,7 @@ void
- innobase_rec_reset(
- /*===============*/
- 	struct TABLE*		table)		/*!< in/out: MySQL table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Generate the next autoinc based on a snapshot of the session
- auto_increment_increment and auto_increment_offset variables. */
---- a/storage/innobase/include/ibuf0ibuf.h
-+++ b/storage/innobase/include/ibuf0ibuf.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -118,7 +118,7 @@ void
- ibuf_mtr_start(
- /*===========*/
- 	mtr_t*	mtr)	/*!< out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***************************************************************//**
- Commits an insert buffer mini-transaction. */
- UNIV_INLINE
-@@ -126,7 +126,7 @@ void
- ibuf_mtr_commit(
- /*============*/
- 	mtr_t*	mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Initializes an ibuf bitmap page. */
- UNIV_INTERN
-@@ -252,7 +252,7 @@ ibool
- ibuf_inside(
- /*========*/
- 	const mtr_t*	mtr)	/*!< in: mini-transaction */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /***********************************************************************//**
- Checks if a page address is an ibuf bitmap page (level 3 page) address.
- @return	TRUE if a bitmap page */
-@@ -285,7 +285,7 @@ ibuf_page_low(
- 				is not one of the fixed address ibuf
- 				pages, or NULL, in which case a new
- 				transaction is created. */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #ifdef UNIV_DEBUG
- /** Checks if a page is a level 2 or 3 page in the ibuf hierarchy of
- pages.  Must not be called when recv_no_ibuf_operations==TRUE.
-@@ -445,7 +445,7 @@ ibuf_check_bitmap_on_import(
- /*========================*/
- 	const trx_t*	trx,		/*!< in: transaction */
- 	ulint		space_id)	/*!< in: tablespace identifier */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #define IBUF_HEADER_PAGE_NO	FSP_IBUF_HEADER_PAGE_NO
- #define IBUF_TREE_ROOT_PAGE_NO	FSP_IBUF_TREE_ROOT_PAGE_NO
---- a/storage/innobase/include/lock0lock.h
-+++ b/storage/innobase/include/lock0lock.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -266,7 +266,7 @@ lock_rec_expl_exist_on_page(
- /*========================*/
- 	ulint	space,	/*!< in: space id */
- 	ulint	page_no)/*!< in: page number */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /*********************************************************************//**
- Checks if locks of other transactions prevent an immediate insert of
- a record. If they do, first tests if the query thread should anyway
-@@ -289,7 +289,7 @@ lock_rec_insert_check_and_lock(
- 				inserted record maybe should inherit
- 				LOCK_GAP type locks from the successor
- 				record */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Checks if locks of other transactions prevent an immediate modify (update,
- delete mark, or delete unmark) of a clustered index record. If they do,
-@@ -310,7 +310,7 @@ lock_clust_rec_modify_check_and_lock(
- 	dict_index_t*		index,	/*!< in: clustered index */
- 	const ulint*		offsets,/*!< in: rec_get_offsets(rec, index) */
- 	que_thr_t*		thr)	/*!< in: query thread */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /*********************************************************************//**
- Checks if locks of other transactions prevent an immediate modify
- (delete mark or delete unmark) of a secondary index record.
-@@ -331,7 +331,7 @@ lock_sec_rec_modify_check_and_lock(
- 	que_thr_t*	thr,	/*!< in: query thread
- 				(can be NULL if BTR_NO_LOCKING_FLAG) */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((warn_unused_result, nonnull(2,3,4,6)));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull(2,3,4,6)));
- /*********************************************************************//**
- Like lock_clust_rec_read_check_and_lock(), but reads a
- secondary index record.
-@@ -418,7 +418,7 @@ lock_clust_rec_read_check_and_lock_alt(
- 	ulint			gap_mode,/*!< in: LOCK_ORDINARY, LOCK_GAP, or
- 					LOCK_REC_NOT_GAP */
- 	que_thr_t*		thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Checks that a record is seen in a consistent read.
- @return true if sees, or false if an earlier version of the record
-@@ -450,7 +450,7 @@ lock_sec_rec_cons_read_sees(
- 					should be read or passed over
- 					by a read cursor */
- 	const read_view_t*	view)	/*!< in: consistent read view */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Locks the specified database table in the mode given. If the lock cannot
- be granted immediately, the query thread is put to wait.
-@@ -465,7 +465,7 @@ lock_table(
- 				in dictionary cache */
- 	enum lock_mode	mode,	/*!< in: lock mode */
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Creates a table IX lock object for a resurrected transaction. */
- UNIV_INTERN
-@@ -520,7 +520,7 @@ lock_rec_fold(
- /*==========*/
- 	ulint	space,	/*!< in: space */
- 	ulint	page_no)/*!< in: page number */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*********************************************************************//**
- Calculates the hash value of a page file address: used in inserting or
- searching for a lock in the hash table.
-@@ -570,7 +570,7 @@ lock_is_table_exclusive(
- /*====================*/
- 	const dict_table_t*	table,	/*!< in: table */
- 	const trx_t*		trx)	/*!< in: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Checks if a lock request lock1 has to wait for request lock2.
- @return	TRUE if lock1 has to wait for lock2 to be removed */
-@@ -594,7 +594,7 @@ lock_report_trx_id_insanity(
- 	dict_index_t*	index,		/*!< in: index */
- 	const ulint*	offsets,	/*!< in: rec_get_offsets(rec, index) */
- 	trx_id_t	max_trx_id)	/*!< in: trx_sys_get_max_trx_id() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Prints info of a table lock. */
- UNIV_INTERN
-@@ -621,7 +621,7 @@ lock_print_info_summary(
- /*====================*/
- 	FILE*	file,	/*!< in: file where to print */
- 	ibool   nowait)	/*!< in: whether to wait for the lock mutex */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Prints info of locks for each transaction. This function assumes that the
- caller holds the lock mutex and more importantly it will release the lock
-@@ -641,7 +641,7 @@ ulint
- lock_number_of_rows_locked(
- /*=======================*/
- 	const trx_lock_t*	trx_lock)	/*!< in: transaction locks */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*******************************************************************//**
- Gets the type of a lock. Non-inline version for using outside of the
-@@ -799,7 +799,7 @@ dberr_t
- lock_trx_handle_wait(
- /*=================*/
- 	trx_t*	trx)	/*!< in/out: trx lock state */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Get the number of locks on a table.
- @return number of locks */
-@@ -808,7 +808,7 @@ ulint
- lock_table_get_n_locks(
- /*===================*/
- 	const dict_table_t*	table)	/*!< in: table */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- /*********************************************************************//**
- Checks that a transaction id is sensible, i.e., not in the future.
-@@ -821,7 +821,7 @@ lock_check_trx_id_sanity(
- 	const rec_t*	rec,		/*!< in: user record */
- 	dict_index_t*	index,		/*!< in: index */
- 	const ulint*	offsets)	/*!< in: rec_get_offsets(rec, index) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Check if the transaction holds any locks on the sys tables
- or its records.
-@@ -831,7 +831,7 @@ const lock_t*
- lock_trx_has_sys_table_locks(
- /*=========================*/
- 	const trx_t*	trx)	/*!< in: transaction to check */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /*******************************************************************//**
- Check if the transaction holds an exclusive lock on a record.
-@@ -844,7 +844,7 @@ lock_trx_has_rec_x_lock(
- 	const dict_table_t*	table,	/*!< in: table to check */
- 	const buf_block_t*	block,	/*!< in: buffer block of the record */
- 	ulint			heap_no)/*!< in: record heap number */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- 
- /** Lock modes and types */
---- a/storage/innobase/include/lock0priv.h
-+++ b/storage/innobase/include/lock0priv.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2007, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2007, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -117,7 +117,7 @@ lock_clust_rec_some_has_impl(
- 	const rec_t*		rec,	/*!< in: user record */
- 	const dict_index_t*	index,	/*!< in: clustered index */
- 	const ulint*		offsets)/*!< in: rec_get_offsets(rec, index) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #ifndef UNIV_NONINL
- #include "lock0priv.ic"
---- a/storage/innobase/include/log0recv.h
-+++ b/storage/innobase/include/log0recv.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -51,7 +51,7 @@ recv_read_checkpoint_info_for_backup(
- 	lsn_t*		first_header_lsn)
- 				/*!< out: lsn of of the start of the
- 				first log file */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************************//**
- Scans the log segment and n_bytes_scanned is set to the length of valid
- log scanned. */
---- a/storage/innobase/include/mach0data.h
-+++ b/storage/innobase/include/mach0data.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2009, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -53,7 +53,7 @@ ulint
- mach_read_from_1(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to byte */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*******************************************************//**
- The following function is used to store data in two consecutive
- bytes. We store the most significant byte to the lower address. */
-@@ -72,7 +72,7 @@ ulint
- mach_read_from_2(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to two bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- 
- /********************************************************//**
- The following function is used to convert a 16-bit data item
-@@ -84,7 +84,7 @@ uint16
- mach_encode_2(
- /*==========*/
- 	ulint	n)	/*!< in: integer in machine-dependent format */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /********************************************************//**
- The following function is used to convert a 16-bit data item
- from the canonical format, for fast bytewise equality test
-@@ -95,7 +95,7 @@ ulint
- mach_decode_2(
- /*==========*/
- 	uint16	n)	/*!< in: 16-bit integer in canonical format */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*******************************************************//**
- The following function is used to store data in 3 consecutive
- bytes. We store the most significant byte to the lowest address. */
-@@ -114,7 +114,7 @@ ulint
- mach_read_from_3(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to 3 bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*******************************************************//**
- The following function is used to store data in four consecutive
- bytes. We store the most significant byte to the lowest address. */
-@@ -133,7 +133,7 @@ ulint
- mach_read_from_4(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to four bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a ulint in a compressed form (1..5 bytes).
- @return	stored size in bytes */
-@@ -151,7 +151,7 @@ ulint
- mach_get_compressed_size(
- /*=====================*/
- 	ulint	n)	/*!< in: ulint integer to be stored */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*********************************************************//**
- Reads a ulint in a compressed form.
- @return	read integer */
-@@ -160,7 +160,7 @@ ulint
- mach_read_compressed(
- /*=================*/
- 	const byte*	b)	/*!< in: pointer to memory from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*******************************************************//**
- The following function is used to store data in 6 consecutive
- bytes. We store the most significant byte to the lowest address. */
-@@ -179,7 +179,7 @@ ib_uint64_t
- mach_read_from_6(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to 6 bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*******************************************************//**
- The following function is used to store data in 7 consecutive
- bytes. We store the most significant byte to the lowest address. */
-@@ -198,7 +198,7 @@ ib_uint64_t
- mach_read_from_7(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to 7 bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*******************************************************//**
- The following function is used to store data in 8 consecutive
- bytes. We store the most significant byte to the lowest address. */
-@@ -217,7 +217,7 @@ ib_uint64_t
- mach_read_from_8(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to 8 bytes */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a 64-bit integer in a compressed form (5..9 bytes).
- @return	size in bytes */
-@@ -243,7 +243,7 @@ ib_uint64_t
- mach_ull_read_compressed(
- /*=====================*/
- 	const byte*	b)	/*!< in: pointer to memory from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a 64-bit integer in a compressed form (1..11 bytes).
- @return	size in bytes */
-@@ -261,7 +261,7 @@ ulint
- mach_ull_get_much_compressed_size(
- /*==============================*/
- 	ib_uint64_t	n)	/*!< in: 64-bit integer to be stored */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*********************************************************//**
- Reads a 64-bit integer in a compressed form.
- @return	the value read */
-@@ -270,7 +270,7 @@ ib_uint64_t
- mach_ull_read_much_compressed(
- /*==========================*/
- 	const byte*	b)	/*!< in: pointer to memory from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Reads a ulint in a compressed form if the log record fully contains it.
- @return	pointer to end of the stored field, NULL if not complete */
-@@ -301,7 +301,7 @@ double
- mach_double_read(
- /*=============*/
- 	const byte*	b)	/*!< in: pointer to memory from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a double. It is stored in a little-endian format. */
- UNIV_INLINE
-@@ -318,7 +318,7 @@ float
- mach_float_read(
- /*============*/
- 	const byte*	b)	/*!< in: pointer to memory from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a float. It is stored in a little-endian format. */
- UNIV_INLINE
-@@ -336,7 +336,7 @@ mach_read_from_n_little_endian(
- /*===========================*/
- 	const byte*	buf,		/*!< in: from where to read */
- 	ulint		buf_size)	/*!< in: from how many bytes to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a ulint in the little-endian format. */
- UNIV_INLINE
-@@ -354,7 +354,7 @@ ulint
- mach_read_from_2_little_endian(
- /*===========================*/
- 	const byte*	buf)		/*!< in: from where to read */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************//**
- Writes a ulint in the little-endian format. */
- UNIV_INLINE
---- a/storage/innobase/include/mem0mem.h
-+++ b/storage/innobase/include/mem0mem.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2010, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -353,7 +353,7 @@ mem_heap_printf(
- /*============*/
- 	mem_heap_t*	heap,	/*!< in: memory heap */
- 	const char*	format,	/*!< in: format string */
--	...) __attribute__ ((format (printf, 2, 3)));
-+	...) MY_ATTRIBUTE ((format (printf, 2, 3)));
- 
- #ifdef MEM_PERIODIC_CHECK
- /******************************************************************//**
---- a/storage/innobase/include/mem0mem.ic
-+++ b/storage/innobase/include/mem0mem.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2010, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -476,9 +476,9 @@ void
- mem_heap_free_func(
- /*===============*/
- 	mem_heap_t*	heap,		/*!< in, own: heap to be freed */
--	const char*	file_name __attribute__((unused)),
-+	const char*	file_name MY_ATTRIBUTE((unused)),
- 					/*!< in: file name where freed */
--	ulint		line  __attribute__((unused)))
-+	ulint		line  MY_ATTRIBUTE((unused)))
- {
- 	mem_block_t*	block;
- 	mem_block_t*	prev_block;
---- a/storage/innobase/include/mtr0mtr.h
-+++ b/storage/innobase/include/mtr0mtr.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -207,7 +207,7 @@ void
- mtr_start(
- /*======*/
- 	mtr_t*	mtr)	/*!< out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***************************************************************//**
- Commits a mini-transaction. */
- UNIV_INTERN
-@@ -215,7 +215,7 @@ void
- mtr_commit(
- /*=======*/
- 	mtr_t*	mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************//**
- Sets and returns a savepoint in mtr.
- @return	savepoint */
-@@ -308,7 +308,7 @@ mtr_memo_release(
- 	mtr_t*	mtr,	/*!< in/out: mini-transaction */
- 	void*	object,	/*!< in: object */
- 	ulint	type)	/*!< in: object type: MTR_MEMO_S_LOCK, ... */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- # ifndef UNIV_HOTBACKUP
- /**********************************************************//**
-@@ -321,7 +321,7 @@ mtr_memo_contains(
- 	mtr_t*		mtr,	/*!< in: mtr */
- 	const void*	object,	/*!< in: object to search */
- 	ulint		type)	/*!< in: type of object */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- 
- /**********************************************************//**
- Checks if memo contains the given page.
---- a/storage/innobase/include/mtr0mtr.ic
-+++ b/storage/innobase/include/mtr0mtr.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -37,7 +37,7 @@ ibool
- mtr_block_dirtied(
- /*==============*/
- 	const buf_block_t*	block)	/*!< in: block being x-fixed */
--	__attribute__((nonnull,warn_unused_result));
-+	MY_ATTRIBUTE((nonnull,warn_unused_result));
- 
- /***************************************************************//**
- Starts a mini-transaction. */
---- a/storage/innobase/include/os0file.h
-+++ b/storage/innobase/include/os0file.h
-@@ -1,6 +1,6 @@
- /***********************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2009, Percona Inc.
- 
- Portions of this file contain modifications contributed and copyrighted
-@@ -529,7 +529,7 @@ os_file_create_simple_no_error_handling_func(
- 				OS_FILE_READ_ALLOW_DELETE; the last option is
- 				used by a backup program reading the file */
- 	ibool*		success)/*!< out: TRUE if succeed, FALSE if error */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /****************************************************************//**
- Tries to disable OS caching on an opened file descriptor. */
- UNIV_INTERN
-@@ -563,7 +563,7 @@ os_file_create_func(
- 				function source code for the exact rules */
- 	ulint		type,	/*!< in: OS_DATA_FILE or OS_LOG_FILE */
- 	ibool*		success)/*!< out: TRUE if succeed, FALSE if error */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Deletes a file. The file has to be closed before calling this.
- @return	TRUE if success */
-@@ -629,7 +629,7 @@ pfs_os_file_create_simple_func(
- 	ibool*		success,/*!< out: TRUE if succeed, FALSE if error */
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line)/*!< in: line where the func invoked */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /****************************************************************//**
- NOTE! Please use the corresponding macro
-@@ -654,7 +654,7 @@ pfs_os_file_create_simple_no_error_handling_func(
- 	ibool*		success,/*!< out: TRUE if succeed, FALSE if error */
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line)/*!< in: line where the func invoked */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /****************************************************************//**
- NOTE! Please use the corresponding macro os_file_create(), not directly
-@@ -682,7 +682,7 @@ pfs_os_file_create_func(
- 	ibool*		success,/*!< out: TRUE if succeed, FALSE if error */
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line)/*!< in: line where the func invoked */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /***********************************************************************//**
- NOTE! Please use the corresponding macro os_file_close(), not directly
-@@ -861,7 +861,7 @@ os_offset_t
- os_file_get_size(
- /*=============*/
- 	os_file_t	file)	/*!< in: handle to a file */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /***********************************************************************//**
- Write the specified number of zeros to a newly created file.
- @return	TRUE if success */
-@@ -873,7 +873,7 @@ os_file_set_size(
- 				null-terminated string */
- 	os_file_t	file,	/*!< in: handle to a file */
- 	os_offset_t	size)	/*!< in: file size */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Truncates a file at its current position.
- @return	TRUE if success */
---- a/storage/innobase/include/os0thread.h
-+++ b/storage/innobase/include/os0thread.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -125,7 +125,7 @@ os_thread_exit(
- /*===========*/
- 	void*	exit_value)	/*!< in: exit value; in Windows this void*
- 				is cast as a DWORD */
--	UNIV_COLD __attribute__((noreturn));
-+	UNIV_COLD MY_ATTRIBUTE((noreturn));
- /*****************************************************************//**
- Returns the thread identifier of current thread.
- @return	current thread identifier */
---- a/storage/innobase/include/page0cur.h
-+++ b/storage/innobase/include/page0cur.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -180,7 +180,7 @@ page_cur_tuple_insert(
- 	mem_heap_t**	heap,	/*!< in/out: pointer to memory heap, or NULL */
- 	ulint		n_ext,	/*!< in: number of externally stored columns */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle, or NULL */
--	__attribute__((nonnull(1,2,3,4,5), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4,5), warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /***********************************************************//**
- Inserts a record next to page cursor. Returns pointer to inserted record if
-@@ -218,7 +218,7 @@ page_cur_insert_rec_low(
- 	const rec_t*	rec,	/*!< in: pointer to a physical record */
- 	ulint*		offsets,/*!< in/out: rec_get_offsets(rec, index) */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle, or NULL */
--	__attribute__((nonnull(1,2,3,4), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
- /***********************************************************//**
- Inserts a record next to page cursor on a compressed and uncompressed
- page. Returns pointer to inserted record if succeed, i.e.,
-@@ -240,7 +240,7 @@ page_cur_insert_rec_zip(
- 	const rec_t*	rec,	/*!< in: pointer to a physical record */
- 	ulint*		offsets,/*!< in/out: rec_get_offsets(rec, index) */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle, or NULL */
--	__attribute__((nonnull(1,2,3,4), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
- /*************************************************************//**
- Copies records from page to a newly created page, from a given record onward,
- including that record. Infimum and supremum records are not copied.
---- a/storage/innobase/include/page0page.h
-+++ b/storage/innobase/include/page0page.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -165,7 +165,7 @@ page_t*
- page_align(
- /*=======*/
- 	const void*	ptr)	/*!< in: pointer to page frame */
--		__attribute__((const));
-+		MY_ATTRIBUTE((const));
- /************************************************************//**
- Gets the offset within a page.
- @return	offset from the start of the page */
-@@ -174,7 +174,7 @@ ulint
- page_offset(
- /*========*/
- 	const void*	ptr)	/*!< in: pointer to page frame */
--		__attribute__((const));
-+		MY_ATTRIBUTE((const));
- /*************************************************************//**
- Returns the max trx id field value. */
- UNIV_INLINE
-@@ -232,7 +232,7 @@ page_header_get_offs(
- /*=================*/
- 	const page_t*	page,	/*!< in: page */
- 	ulint		field)	/*!< in: PAGE_FREE, ... */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- 
- /*************************************************************//**
- Returns the pointer stored in the given header field, or NULL. */
-@@ -292,7 +292,7 @@ page_rec_get_nth_const(
- /*===================*/
- 	const page_t*	page,	/*!< in: page */
- 	ulint		nth)	/*!< in: nth record */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /************************************************************//**
- Returns the nth record of the record list.
- This is the inverse function of page_rec_get_n_recs_before().
-@@ -303,7 +303,7 @@ page_rec_get_nth(
- /*=============*/
- 	page_t*	page,	/*< in: page */
- 	ulint	nth)	/*!< in: nth record */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #ifndef UNIV_HOTBACKUP
- /************************************************************//**
-@@ -316,7 +316,7 @@ rec_t*
- page_get_middle_rec(
- /*================*/
- 	page_t*	page)	/*!< in: page */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*************************************************************//**
- Compares a data tuple to a physical record. Differs from the function
- cmp_dtuple_rec_with_match in the way that the record must reside on an
-@@ -524,7 +524,7 @@ bool
- page_is_leaf(
- /*=========*/
- 	const page_t*	page)	/*!< in: page */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /************************************************************//**
- Determine whether the page is empty.
- @return	true if the page is empty (PAGE_N_RECS = 0) */
-@@ -533,7 +533,7 @@ bool
- page_is_empty(
- /*==========*/
- 	const page_t*	page)	/*!< in: page */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /************************************************************//**
- Determine whether the page contains garbage.
- @return	true if the page contains garbage (PAGE_GARBAGE is not 0) */
-@@ -542,7 +542,7 @@ bool
- page_has_garbage(
- /*=============*/
- 	const page_t*	page)	/*!< in: page */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /************************************************************//**
- Gets the pointer to the next record on the page.
- @return	pointer to next record */
-@@ -614,7 +614,7 @@ ibool
- page_rec_is_user_rec_low(
- /*=====================*/
- 	ulint	offset)	/*!< in: record offset on page */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /************************************************************//**
- TRUE if the record is the supremum record on a page.
- @return	TRUE if the supremum record */
-@@ -623,7 +623,7 @@ ibool
- page_rec_is_supremum_low(
- /*=====================*/
- 	ulint	offset)	/*!< in: record offset on page */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /************************************************************//**
- TRUE if the record is the infimum record on a page.
- @return	TRUE if the infimum record */
-@@ -632,7 +632,7 @@ ibool
- page_rec_is_infimum_low(
- /*====================*/
- 	ulint	offset)	/*!< in: record offset on page */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /************************************************************//**
- TRUE if the record is a user record on the page.
-@@ -642,7 +642,7 @@ ibool
- page_rec_is_user_rec(
- /*=================*/
- 	const rec_t*	rec)	/*!< in: record */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /************************************************************//**
- TRUE if the record is the supremum record on a page.
- @return	TRUE if the supremum record */
-@@ -651,7 +651,7 @@ ibool
- page_rec_is_supremum(
- /*=================*/
- 	const rec_t*	rec)	/*!< in: record */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /************************************************************//**
- TRUE if the record is the infimum record on a page.
-@@ -661,7 +661,7 @@ ibool
- page_rec_is_infimum(
- /*================*/
- 	const rec_t*	rec)	/*!< in: record */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /***************************************************************//**
- Looks for the record which owns the given record.
- @return	the owner record */
-@@ -681,7 +681,7 @@ page_rec_write_field(
- 	ulint	i,	/*!< in: index of the field to update */
- 	ulint	val,	/*!< in: value to write */
- 	mtr_t*	mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /************************************************************//**
- Returns the maximum combined size of records which can be inserted on top
-@@ -711,7 +711,7 @@ ulint
- page_get_free_space_of_empty(
- /*=========================*/
- 	ulint	comp)	/*!< in: nonzero=compact page format */
--		__attribute__((const));
-+		MY_ATTRIBUTE((const));
- /**********************************************************//**
- Returns the base extra size of a physical record.  This is the
- size of the fixed header, independent of the record size.
-@@ -797,7 +797,7 @@ page_create_zip(
- 	ulint		level,		/*!< in: the B-tree level of the page */
- 	trx_id_t	max_trx_id,	/*!< in: PAGE_MAX_TRX_ID */
- 	mtr_t*		mtr)		/*!< in/out: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************//**
- Empty a previously created B-tree index page. */
- UNIV_INTERN
-@@ -807,7 +807,7 @@ page_create_empty(
- 	buf_block_t*	block,	/*!< in/out: B-tree block */
- 	dict_index_t*	index,	/*!< in: the index of the page */
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- /*************************************************************//**
- Differs from page_copy_rec_list_end, because this function does not
- touch the lock table and max trx id on page or compress the page.
-@@ -846,7 +846,7 @@ page_copy_rec_list_end(
- 	rec_t*		rec,		/*!< in: record on page */
- 	dict_index_t*	index,		/*!< in: record descriptor */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Copies records from page to new_page, up to the given record, NOT
- including that record. Infimum and supremum records are not copied.
-@@ -868,7 +868,7 @@ page_copy_rec_list_start(
- 	rec_t*		rec,		/*!< in: record on page */
- 	dict_index_t*	index,		/*!< in: record descriptor */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Deletes records from a page from a given record onward, including that record.
- The infimum and supremum records are not deleted. */
-@@ -885,7 +885,7 @@ page_delete_rec_list_end(
- 				records in the end of the chain to
- 				delete, or ULINT_UNDEFINED if not known */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Deletes records from page, up to the given record, NOT including
- that record. Infimum and supremum records are not deleted. */
-@@ -897,7 +897,7 @@ page_delete_rec_list_start(
- 	buf_block_t*	block,	/*!< in: buffer block of the page */
- 	dict_index_t*	index,	/*!< in: record descriptor */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*************************************************************//**
- Moves record list end to another page. Moved records include
- split_rec.
-@@ -918,7 +918,7 @@ page_move_rec_list_end(
- 	rec_t*		split_rec,	/*!< in: first record to move */
- 	dict_index_t*	index,		/*!< in: record descriptor */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull(1, 2, 4, 5)));
-+	MY_ATTRIBUTE((nonnull(1, 2, 4, 5)));
- /*************************************************************//**
- Moves record list start to another page. Moved records do not include
- split_rec.
-@@ -938,7 +938,7 @@ page_move_rec_list_start(
- 	rec_t*		split_rec,	/*!< in: first record not to move */
- 	dict_index_t*	index,		/*!< in: record descriptor */
- 	mtr_t*		mtr)		/*!< in: mtr */
--	__attribute__((nonnull(1, 2, 4, 5)));
-+	MY_ATTRIBUTE((nonnull(1, 2, 4, 5)));
- /****************************************************************//**
- Splits a directory slot which owns too many records. */
- UNIV_INTERN
-@@ -949,7 +949,7 @@ page_dir_split_slot(
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page whose
- 				uncompressed part will be written, or NULL */
- 	ulint		slot_no)/*!< in: the directory slot */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /*************************************************************//**
- Tries to balance the given directory slot with too few records
- with the upper neighbor, so that there are at least the minimum number
-@@ -962,7 +962,7 @@ page_dir_balance_slot(
- 	page_t*		page,	/*!< in/out: index page */
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page, or NULL */
- 	ulint		slot_no)/*!< in: the directory slot */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /**********************************************************//**
- Parses a log record of a record list end or start deletion.
- @return	end of log record or NULL */
---- a/storage/innobase/include/page0types.h
-+++ b/storage/innobase/include/page0types.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -129,7 +129,7 @@ page_zip_rec_set_deleted(
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page */
- 	const byte*	rec,	/*!< in: record on the uncompressed page */
- 	ulint		flag)	/*!< in: the deleted flag (nonzero=TRUE) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Write the "owned" flag of a record on a compressed page.  The n_owned field
-@@ -141,7 +141,7 @@ page_zip_rec_set_owned(
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page */
- 	const byte*	rec,	/*!< in: record on the uncompressed page */
- 	ulint		flag)	/*!< in: the owned flag (nonzero=TRUE) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Shift the dense page directory when a record is deleted. */
-@@ -154,7 +154,7 @@ page_zip_dir_delete(
- 	dict_index_t*	index,	/*!< in: index of rec */
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec) */
- 	const byte*	free)	/*!< in: previous start of the free list */
--	__attribute__((nonnull(1,2,3,4)));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4)));
- 
- /**********************************************************************//**
- Add a slot to the dense page directory. */
-@@ -165,5 +165,5 @@ page_zip_dir_add_slot(
- 	page_zip_des_t*	page_zip,	/*!< in/out: compressed page */
- 	ulint		is_clustered)	/*!< in: nonzero for clustered index,
- 					zero for others */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif
---- a/storage/innobase/include/page0zip.h
-+++ b/storage/innobase/include/page0zip.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -58,7 +58,7 @@ ulint
- page_zip_get_size(
- /*==============*/
- 	const page_zip_des_t*	page_zip)	/*!< in: compressed page */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /**********************************************************************//**
- Set the size of a compressed page in bytes. */
- UNIV_INLINE
-@@ -81,7 +81,7 @@ page_zip_rec_needs_ext(
- 	ulint	n_fields,	/*!< in: number of fields in the record;
- 				ignored if zip_size == 0 */
- 	ulint	zip_size)	/*!< in: compressed page size in bytes, or 0 */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /**********************************************************************//**
- Determine the guaranteed free space on an empty page.
-@@ -92,7 +92,7 @@ page_zip_empty_size(
- /*================*/
- 	ulint	n_fields,	/*!< in: number of columns in the index */
- 	ulint	zip_size)	/*!< in: compressed page size in bytes */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- #endif /* !UNIV_HOTBACKUP */
- 
- /**********************************************************************//**
-@@ -127,7 +127,7 @@ page_zip_compress(
- 	dict_index_t*	index,	/*!< in: index of the B-tree node */
- 	ulint		level,	/*!< in: compression level */
- 	mtr_t*		mtr)	/*!< in: mini-transaction, or NULL */
--	__attribute__((nonnull(1,2,3)));
-+	MY_ATTRIBUTE((nonnull(1,2,3)));
- 
- /**********************************************************************//**
- Decompress a page.  This function should tolerate errors on the compressed
-@@ -145,7 +145,7 @@ page_zip_decompress(
- 				FALSE=verify but do not copy some
- 				page header fields that should not change
- 				after page creation */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- #ifdef UNIV_DEBUG
- /**********************************************************************//**
-@@ -172,7 +172,7 @@ page_zip_validate_low(
- 	const dict_index_t*	index,	/*!< in: index of the page, if known */
- 	ibool			sloppy)	/*!< in: FALSE=strict,
- 					TRUE=ignore the MIN_REC_FLAG */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- /**********************************************************************//**
- Check that the compressed and decompressed pages match. */
- UNIV_INTERN
-@@ -182,7 +182,7 @@ page_zip_validate(
- 	const page_zip_des_t*	page_zip,/*!< in: compressed page */
- 	const page_t*		page,	/*!< in: uncompressed page */
- 	const dict_index_t*	index)	/*!< in: index of the page, if known */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- #endif /* UNIV_ZIP_DEBUG */
- 
- /**********************************************************************//**
-@@ -195,7 +195,7 @@ page_zip_max_ins_size(
- /*==================*/
- 	const page_zip_des_t*	page_zip,/*!< in: compressed page */
- 	ibool			is_clust)/*!< in: TRUE if clustered index */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- 
- /**********************************************************************//**
- Determine if enough space is available in the modification log.
-@@ -209,7 +209,7 @@ page_zip_available(
- 	ulint			length,	/*!< in: combined size of the record */
- 	ulint			create)	/*!< in: nonzero=add the record to
- 					the heap */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- 
- /**********************************************************************//**
- Write data to the uncompressed header portion of a page.  The data must
-@@ -222,7 +222,7 @@ page_zip_write_header(
- 	const byte*	str,	/*!< in: address on the uncompressed page */
- 	ulint		length,	/*!< in: length of the data */
- 	mtr_t*		mtr)	/*!< in: mini-transaction, or NULL */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /**********************************************************************//**
- Write an entire record on the compressed page.  The data must already
-@@ -236,7 +236,7 @@ page_zip_write_rec(
- 	dict_index_t*	index,	/*!< in: the index the record belongs to */
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec, index) */
- 	ulint		create)	/*!< in: nonzero=insert, zero=update */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /***********************************************************//**
- Parses a log record of writing a BLOB pointer of a record.
-@@ -265,7 +265,7 @@ page_zip_write_blob_ptr(
- 	ulint		n,	/*!< in: column index */
- 	mtr_t*		mtr)	/*!< in: mini-transaction handle,
- 				or NULL if no logging is needed */
--	__attribute__((nonnull(1,2,3,4)));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4)));
- 
- /***********************************************************//**
- Parses a log record of writing the node pointer of a record.
-@@ -290,7 +290,7 @@ page_zip_write_node_ptr(
- 	ulint		size,	/*!< in: data size of rec */
- 	ulint		ptr,	/*!< in: node pointer */
- 	mtr_t*		mtr)	/*!< in: mini-transaction, or NULL */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /**********************************************************************//**
- Write the trx_id and roll_ptr of a record on a B-tree leaf node page. */
-@@ -304,7 +304,7 @@ page_zip_write_trx_id_and_roll_ptr(
- 	ulint		trx_id_col,/*!< in: column number of TRX_ID in rec */
- 	trx_id_t	trx_id,	/*!< in: transaction identifier */
- 	roll_ptr_t	roll_ptr)/*!< in: roll_ptr */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Write the "deleted" flag of a record on a compressed page.  The flag must
-@@ -316,7 +316,7 @@ page_zip_rec_set_deleted(
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page */
- 	const byte*	rec,	/*!< in: record on the uncompressed page */
- 	ulint		flag)	/*!< in: the deleted flag (nonzero=TRUE) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Write the "owned" flag of a record on a compressed page.  The n_owned field
-@@ -328,7 +328,7 @@ page_zip_rec_set_owned(
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page */
- 	const byte*	rec,	/*!< in: record on the uncompressed page */
- 	ulint		flag)	/*!< in: the owned flag (nonzero=TRUE) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Insert a record to the dense page directory. */
-@@ -355,7 +355,7 @@ page_zip_dir_delete(
- 	const ulint*		offsets,	/*!< in: rec_get_offsets(rec) */
- 	const byte*		free)		/*!< in: previous start of
- 						the free list */
--	__attribute__((nonnull(1,2,3,4)));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4)));
- 
- /**********************************************************************//**
- Add a slot to the dense page directory. */
-@@ -366,7 +366,7 @@ page_zip_dir_add_slot(
- 	page_zip_des_t*	page_zip,	/*!< in/out: compressed page */
- 	ulint		is_clustered)	/*!< in: nonzero for clustered index,
- 					zero for others */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /***********************************************************//**
- Parses a log record of writing to the header of a page.
-@@ -394,7 +394,7 @@ page_zip_write_header(
- 	const byte*	str,	/*!< in: address on the uncompressed page */
- 	ulint		length,	/*!< in: length of the data */
- 	mtr_t*		mtr)	/*!< in: mini-transaction, or NULL */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /**********************************************************************//**
- Reorganize and compress a page.  This is a low-level operation for
-@@ -417,7 +417,7 @@ page_zip_reorganize(
- 				m_start, m_end, m_nonempty */
- 	dict_index_t*	index,	/*!< in: index of the B-tree node */
- 	mtr_t*		mtr)	/*!< in: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /**********************************************************************//**
- Copy the records of a page byte for byte.  Do not copy the page header
-@@ -436,7 +436,7 @@ page_zip_copy_recs(
- 	const page_t*		src,		/*!< in: page */
- 	dict_index_t*		index,		/*!< in: index of the B-tree */
- 	mtr_t*			mtr)		/*!< in: mini-transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- 
- /**********************************************************************//**
-@@ -450,7 +450,7 @@ page_zip_parse_compress(
- 	byte*		end_ptr,/*!< in: buffer end */
- 	page_t*		page,	/*!< out: uncompressed page */
- 	page_zip_des_t*	page_zip)/*!< out: compressed page */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /**********************************************************************//**
- Calculate the compressed page checksum.
-@@ -462,7 +462,7 @@ page_zip_calc_checksum(
-         const void*     data,   /*!< in: compressed page */
-         ulint           size,   /*!< in: size of compressed page */
- 	srv_checksum_algorithm_t algo) /*!< in: algorithm to use */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Verify a compressed page's checksum.
-@@ -496,7 +496,7 @@ page_zip_parse_compress_no_data(
- 	page_t*		page,		/*!< in: uncompressed page */
- 	page_zip_des_t*	page_zip,	/*!< out: compressed page */
- 	dict_index_t*	index)		/*!< in: index */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- 
- /**********************************************************************//**
- Reset the counters used for filling
---- a/storage/innobase/include/pars0pars.h
-+++ b/storage/innobase/include/pars0pars.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -472,7 +472,7 @@ pars_complete_graph_for_exec(
- 				query graph, or NULL for dummy graph */
- 	trx_t*		trx,	/*!< in: transaction handle */
- 	mem_heap_t*	heap)	/*!< in: memory heap from which allocated */
--	__attribute__((nonnull(2,3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(2,3), warn_unused_result));
- 
- /****************************************************************//**
- Create parser info struct.
-@@ -628,7 +628,7 @@ pars_info_bind_ull_literal(
- 	pars_info_t*		info,	/*!< in: info struct */
- 	const char*		name,	/*!< in: name */
- 	const ib_uint64_t*	val)	/*!< in: value */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /****************************************************************//**
- Add bound id. */
---- a/storage/innobase/include/read0read.h
-+++ b/storage/innobase/include/read0read.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -82,7 +82,7 @@ read_view_sees_trx_id(
- /*==================*/
- 	const read_view_t*	view,	/*!< in: read view */
- 	trx_id_t		trx_id)	/*!< in: trx id */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Prints a read view to stderr. */
- UNIV_INTERN
---- a/storage/innobase/include/rem0cmp.h
-+++ b/storage/innobase/include/rem0cmp.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -174,7 +174,7 @@ cmp_dtuple_rec_with_match_low(
- 				bytes within the first field not completely
- 				matched; when function returns, contains the
- 				value for current comparison */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #define cmp_dtuple_rec_with_match(tuple,rec,offsets,fields,bytes)	\
- 	cmp_dtuple_rec_with_match_low(					\
- 		tuple,rec,offsets,dtuple_get_n_fields_cmp(tuple),fields,bytes)
-@@ -218,7 +218,7 @@ cmp_rec_rec_simple(
- 	struct TABLE*		table)	/*!< in: MySQL table, for reporting
- 					duplicate key value if applicable,
- 					or NULL */
--	__attribute__((nonnull(1,2,3,4), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4), warn_unused_result));
- /*************************************************************//**
- This function is used to compare two physical records. Only the common
- first fields are compared, and if an externally stored field is
---- a/storage/innobase/include/rem0rec.h
-+++ b/storage/innobase/include/rem0rec.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -98,7 +98,7 @@ rec_get_next_ptr_const(
- /*===================*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	ulint		comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to get the pointer of the next chained record
- on the same page.
-@@ -109,7 +109,7 @@ rec_get_next_ptr(
- /*=============*/
- 	rec_t*	rec,	/*!< in: physical record */
- 	ulint	comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to get the offset of the
- next chained record on the same page.
-@@ -120,7 +120,7 @@ rec_get_next_offs(
- /*==============*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	ulint		comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the next record offset field
- of an old-style record. */
-@@ -130,7 +130,7 @@ rec_set_next_offs_old(
- /*==================*/
- 	rec_t*	rec,	/*!< in: old-style physical record */
- 	ulint	next)	/*!< in: offset of the next record */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to set the next record offset field
- of a new-style record. */
-@@ -140,7 +140,7 @@ rec_set_next_offs_new(
- /*==================*/
- 	rec_t*	rec,	/*!< in/out: new-style physical record */
- 	ulint	next)	/*!< in: offset of the next record */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to get the number of fields
- in an old-style record.
-@@ -150,7 +150,7 @@ ulint
- rec_get_n_fields_old(
- /*=================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to get the number of fields
- in a record.
-@@ -161,7 +161,7 @@ rec_get_n_fields(
- /*=============*/
- 	const rec_t*		rec,	/*!< in: physical record */
- 	const dict_index_t*	index)	/*!< in: record descriptor */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to get the number of records owned by the
- previous directory record.
-@@ -171,7 +171,7 @@ ulint
- rec_get_n_owned_old(
- /*================*/
- 	const rec_t*	rec)	/*!< in: old-style physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the number of owned records. */
- UNIV_INLINE
-@@ -180,7 +180,7 @@ rec_set_n_owned_old(
- /*================*/
- 	rec_t*	rec,		/*!< in: old-style physical record */
- 	ulint	n_owned)	/*!< in: the number of owned */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to get the number of records owned by the
- previous directory record.
-@@ -190,7 +190,7 @@ ulint
- rec_get_n_owned_new(
- /*================*/
- 	const rec_t*	rec)	/*!< in: new-style physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the number of owned records. */
- UNIV_INLINE
-@@ -200,7 +200,7 @@ rec_set_n_owned_new(
- 	rec_t*		rec,	/*!< in/out: new-style physical record */
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page, or NULL */
- 	ulint		n_owned)/*!< in: the number of owned */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /******************************************************//**
- The following function is used to retrieve the info bits of
- a record.
-@@ -211,7 +211,7 @@ rec_get_info_bits(
- /*==============*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	ulint		comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the info bits of a record. */
- UNIV_INLINE
-@@ -220,7 +220,7 @@ rec_set_info_bits_old(
- /*==================*/
- 	rec_t*	rec,	/*!< in: old-style physical record */
- 	ulint	bits)	/*!< in: info bits */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to set the info bits of a record. */
- UNIV_INLINE
-@@ -229,7 +229,7 @@ rec_set_info_bits_new(
- /*==================*/
- 	rec_t*	rec,	/*!< in/out: new-style physical record */
- 	ulint	bits)	/*!< in: info bits */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function retrieves the status bits of a new-style record.
- @return	status bits */
-@@ -238,7 +238,7 @@ ulint
- rec_get_status(
- /*===========*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- The following function is used to set the status bits of a new-style record. */
-@@ -248,7 +248,7 @@ rec_set_status(
- /*===========*/
- 	rec_t*	rec,	/*!< in/out: physical record */
- 	ulint	bits)	/*!< in: info bits */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- The following function is used to retrieve the info and status
-@@ -260,7 +260,7 @@ rec_get_info_and_status_bits(
- /*=========================*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	ulint		comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the info and status
- bits of a record.  (Only compact records have status bits.) */
-@@ -270,7 +270,7 @@ rec_set_info_and_status_bits(
- /*=========================*/
- 	rec_t*	rec,	/*!< in/out: compact physical record */
- 	ulint	bits)	/*!< in: info bits */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- The following function tells if record is delete marked.
-@@ -281,7 +281,7 @@ rec_get_deleted_flag(
- /*=================*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	ulint		comp)	/*!< in: nonzero=compact page format */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the deleted bit. */
- UNIV_INLINE
-@@ -290,7 +290,7 @@ rec_set_deleted_flag_old(
- /*=====================*/
- 	rec_t*	rec,	/*!< in: old-style physical record */
- 	ulint	flag)	/*!< in: nonzero if delete marked */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to set the deleted bit. */
- UNIV_INLINE
-@@ -300,7 +300,7 @@ rec_set_deleted_flag_new(
- 	rec_t*		rec,	/*!< in/out: new-style physical record */
- 	page_zip_des_t*	page_zip,/*!< in/out: compressed page, or NULL */
- 	ulint		flag)	/*!< in: nonzero if delete marked */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /******************************************************//**
- The following function tells if a new-style record is a node pointer.
- @return	TRUE if node pointer */
-@@ -309,7 +309,7 @@ ibool
- rec_get_node_ptr_flag(
- /*==================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to get the order number
- of an old-style record in the heap of the index page.
-@@ -319,7 +319,7 @@ ulint
- rec_get_heap_no_old(
- /*================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the heap number
- field in an old-style record. */
-@@ -329,7 +329,7 @@ rec_set_heap_no_old(
- /*================*/
- 	rec_t*	rec,	/*!< in: physical record */
- 	ulint	heap_no)/*!< in: the heap number */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to get the order number
- of a new-style record in the heap of the index page.
-@@ -339,7 +339,7 @@ ulint
- rec_get_heap_no_new(
- /*================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- The following function is used to set the heap number
- field in a new-style record. */
-@@ -349,7 +349,7 @@ rec_set_heap_no_new(
- /*================*/
- 	rec_t*	rec,	/*!< in/out: physical record */
- 	ulint	heap_no)/*!< in: the heap number */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- The following function is used to test whether the data offsets
- in the record are stored in one-byte or two-byte format.
-@@ -359,7 +359,7 @@ ibool
- rec_get_1byte_offs_flag(
- /*====================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- The following function is used to set the 1-byte offsets flag. */
-@@ -369,7 +369,7 @@ rec_set_1byte_offs_flag(
- /*====================*/
- 	rec_t*	rec,	/*!< in: physical record */
- 	ibool	flag)	/*!< in: TRUE if 1byte form */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- Returns the offset of nth field end if the record is stored in the 1-byte
-@@ -382,7 +382,7 @@ rec_1_get_field_end_info(
- /*=====================*/
- 	const rec_t*	rec,	/*!< in: record */
- 	ulint		n)	/*!< in: field index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- Returns the offset of nth field end if the record is stored in the 2-byte
-@@ -396,7 +396,7 @@ rec_2_get_field_end_info(
- /*=====================*/
- 	const rec_t*	rec,	/*!< in: record */
- 	ulint		n)	/*!< in: field index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- Returns nonzero if the field is stored off-page.
-@@ -408,7 +408,7 @@ rec_2_is_field_extern(
- /*==================*/
- 	const rec_t*	rec,	/*!< in: record */
- 	ulint		n)	/*!< in: field index */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- Determine how many of the first n columns in a compact
-@@ -421,7 +421,7 @@ rec_get_n_extern_new(
- 	const rec_t*		rec,	/*!< in: compact physical record */
- 	const dict_index_t*	index,	/*!< in: record descriptor */
- 	ulint			n)	/*!< in: number of columns to scan */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************//**
- The following function determines the offsets to each field
-@@ -446,9 +446,9 @@ rec_get_offsets_func(
- #endif /* UNIV_DEBUG */
- 	mem_heap_t**		heap)	/*!< in/out: memory heap */
- #ifdef UNIV_DEBUG
--	__attribute__((nonnull(1,2,5,7),warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,5,7),warn_unused_result));
- #else /* UNIV_DEBUG */
--	__attribute__((nonnull(1,2,5),warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,5),warn_unused_result));
- #endif /* UNIV_DEBUG */
- 
- #ifdef UNIV_DEBUG
-@@ -475,7 +475,7 @@ rec_get_offsets_reverse(
- 					0=leaf node */
- 	ulint*			offsets)/*!< in/out: array consisting of
- 					offsets[0] allocated elements */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- /************************************************************//**
- Validates offsets returned by rec_get_offsets().
-@@ -488,7 +488,7 @@ rec_offs_validate(
- 	const dict_index_t*	index,	/*!< in: record descriptor or NULL */
- 	const ulint*		offsets)/*!< in: array returned by
- 					rec_get_offsets() */
--	__attribute__((nonnull(3), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(3), warn_unused_result));
- /************************************************************//**
- Updates debug data in offsets, in order to avoid bogus
- rec_offs_validate() failures. */
-@@ -500,7 +500,7 @@ rec_offs_make_valid(
- 	const dict_index_t*	index,	/*!< in: record descriptor */
- 	ulint*			offsets)/*!< in: array returned by
- 					rec_get_offsets() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #else
- # define rec_offs_make_valid(rec, index, offsets) ((void) 0)
- #endif /* UNIV_DEBUG */
-@@ -517,7 +517,7 @@ rec_get_nth_field_offs_old(
- 	ulint		n,	/*!< in: index of the field */
- 	ulint*		len)	/*!< out: length of the field; UNIV_SQL_NULL
- 				if SQL null */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #define rec_get_nth_field_old(rec, n, len) \
- ((rec) + rec_get_nth_field_offs_old(rec, n, len))
- /************************************************************//**
-@@ -531,7 +531,7 @@ rec_get_nth_field_size(
- /*===================*/
- 	const rec_t*	rec,	/*!< in: record */
- 	ulint		n)	/*!< in: index of the field */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /************************************************************//**
- The following function is used to get an offset to the nth
- data field in a record.
-@@ -544,7 +544,7 @@ rec_get_nth_field_offs(
- 	ulint		n,	/*!< in: index of the field */
- 	ulint*		len)	/*!< out: length of the field; UNIV_SQL_NULL
- 				if SQL null */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #define rec_get_nth_field(rec, offsets, n, len) \
- ((rec) + rec_get_nth_field_offs(offsets, n, len))
- /******************************************************//**
-@@ -556,7 +556,7 @@ ulint
- rec_offs_comp(
- /*==========*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- Determine if the offsets are for a record containing
- externally stored columns.
-@@ -566,7 +566,7 @@ ulint
- rec_offs_any_extern(
- /*================*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- Determine if the offsets are for a record containing null BLOB pointers.
- @return	first field containing a null BLOB pointer, or NULL if none found */
-@@ -576,7 +576,7 @@ rec_offs_any_null_extern(
- /*=====================*/
- 	const rec_t*	rec,		/*!< in: record */
- 	const ulint*	offsets)	/*!< in: rec_get_offsets(rec) */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- Returns nonzero if the extern bit is set in nth field of rec.
- @return	nonzero if externally stored */
-@@ -586,7 +586,7 @@ rec_offs_nth_extern(
- /*================*/
- 	const ulint*	offsets,/*!< in: array returned by rec_get_offsets() */
- 	ulint		n)	/*!< in: nth field */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- Returns nonzero if the SQL NULL bit is set in nth field of rec.
- @return	nonzero if SQL NULL */
-@@ -596,7 +596,7 @@ rec_offs_nth_sql_null(
- /*==================*/
- 	const ulint*	offsets,/*!< in: array returned by rec_get_offsets() */
- 	ulint		n)	/*!< in: nth field */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /******************************************************//**
- Gets the physical size of a field.
- @return	length of field */
-@@ -606,7 +606,7 @@ rec_offs_nth_size(
- /*==============*/
- 	const ulint*	offsets,/*!< in: array returned by rec_get_offsets() */
- 	ulint		n)	/*!< in: nth field */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- 
- /******************************************************//**
- Returns the number of extern bits set in a record.
-@@ -616,7 +616,7 @@ ulint
- rec_offs_n_extern(
- /*==============*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /***********************************************************//**
- This is used to modify the value of an already existing field in a record.
- The previous value must have exactly the same size as the new value. If len
-@@ -636,7 +636,7 @@ rec_set_nth_field(
- 				length as the previous value.
- 				If SQL null, previous value must be
- 				SQL null. */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- /**********************************************************//**
- The following function returns the data size of an old-style physical
- record, that is the sum of field lengths. SQL null fields
-@@ -648,7 +648,7 @@ ulint
- rec_get_data_size_old(
- /*==================*/
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- The following function returns the number of allocated elements
- for an array of offsets.
-@@ -658,7 +658,7 @@ ulint
- rec_offs_get_n_alloc(
- /*=================*/
- 	const ulint*	offsets)/*!< in: array for rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- The following function sets the number of allocated elements
- for an array of offsets. */
-@@ -669,7 +669,7 @@ rec_offs_set_n_alloc(
- 	ulint*	offsets,	/*!< out: array for rec_get_offsets(),
- 				must be allocated */
- 	ulint	n_alloc)	/*!< in: number of elements */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #define rec_offs_init(offsets) \
- 	rec_offs_set_n_alloc(offsets, (sizeof offsets) / sizeof *offsets)
- /**********************************************************//**
-@@ -680,7 +680,7 @@ ulint
- rec_offs_n_fields(
- /*==============*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- The following function returns the data size of a physical
- record, that is the sum of field lengths. SQL null fields
-@@ -692,7 +692,7 @@ ulint
- rec_offs_data_size(
- /*===============*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- Returns the total size of record minus data size of record.
- The value returned by the function is the distance from record
-@@ -703,7 +703,7 @@ ulint
- rec_offs_extra_size(
- /*================*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- Returns the total size of a physical record.
- @return	size */
-@@ -712,7 +712,7 @@ ulint
- rec_offs_size(
- /*==========*/
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #ifdef UNIV_DEBUG
- /**********************************************************//**
- Returns a pointer to the start of the record.
-@@ -723,7 +723,7 @@ rec_get_start(
- /*==========*/
- 	const rec_t*	rec,	/*!< in: pointer to record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- /**********************************************************//**
- Returns a pointer to the end of the record.
- @return	pointer to end */
-@@ -733,7 +733,7 @@ rec_get_end(
- /*========*/
- 	const rec_t*	rec,	/*!< in: pointer to record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #else /* UNIV_DEBUG */
- # define rec_get_start(rec, offsets) ((rec) - rec_offs_extra_size(offsets))
- # define rec_get_end(rec, offsets) ((rec) + rec_offs_data_size(offsets))
-@@ -748,7 +748,7 @@ rec_copy(
- 	void*		buf,	/*!< in: buffer */
- 	const rec_t*	rec,	/*!< in: physical record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /**********************************************************//**
- Determines the size of a data tuple prefix in a temporary file.
-@@ -761,7 +761,7 @@ rec_get_converted_size_temp(
- 	const dfield_t*		fields,	/*!< in: array of data fields */
- 	ulint			n_fields,/*!< in: number of data fields */
- 	ulint*			extra)	/*!< out: extra size */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- 
- /******************************************************//**
- Determine the offset to each field in temporary file.
-@@ -774,7 +774,7 @@ rec_init_offsets_temp(
- 	const dict_index_t*	index,	/*!< in: record descriptor */
- 	ulint*			offsets)/*!< in/out: array of offsets;
- 					in: n=rec_offs_n_fields(offsets) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /*********************************************************//**
- Builds a temporary file record out of a data tuple.
-@@ -787,7 +787,7 @@ rec_convert_dtuple_to_temp(
- 	const dict_index_t*	index,		/*!< in: record descriptor */
- 	const dfield_t*		fields,		/*!< in: array of data fields */
- 	ulint			n_fields)	/*!< in: number of fields */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**************************************************************//**
- Copies the first n fields of a physical record to a new physical record in
-@@ -805,7 +805,7 @@ rec_copy_prefix_to_buf(
- 						for the copied prefix,
- 						or NULL */
- 	ulint*			buf_size)	/*!< in/out: buffer size */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /************************************************************//**
- Folds a prefix of a physical record to a ulint.
- @return	the folded value */
-@@ -821,7 +821,7 @@ rec_fold(
- 	ulint		n_bytes,	/*!< in: number of bytes to fold
- 					in an incomplete last field */
- 	index_id_t	tree_id)	/*!< in: index tree id */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /*********************************************************//**
- Builds a physical record out of a data tuple and
-@@ -837,7 +837,7 @@ rec_convert_dtuple_to_rec(
- 	const dtuple_t*		dtuple,	/*!< in: data tuple */
- 	ulint			n_ext)	/*!< in: number of
- 					externally stored columns */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /**********************************************************//**
- Returns the extra size of an old-style physical record if we know its
- data size and number of fields.
-@@ -849,7 +849,7 @@ rec_get_converted_extra_size(
- 	ulint	data_size,	/*!< in: data size */
- 	ulint	n_fields,	/*!< in: number of fields */
- 	ulint	n_ext)		/*!< in: number of externally stored columns */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /**********************************************************//**
- Determines the size of a data tuple prefix in ROW_FORMAT=COMPACT.
- @return	total size */
-@@ -861,7 +861,7 @@ rec_get_converted_size_comp_prefix(
- 	const dfield_t*		fields,	/*!< in: array of data fields */
- 	ulint			n_fields,/*!< in: number of data fields */
- 	ulint*			extra)	/*!< out: extra size */
--	__attribute__((warn_unused_result, nonnull(1,2)));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull(1,2)));
- /**********************************************************//**
- Determines the size of a data tuple in ROW_FORMAT=COMPACT.
- @return	total size */
-@@ -877,7 +877,7 @@ rec_get_converted_size_comp(
- 	const dfield_t*		fields,	/*!< in: array of data fields */
- 	ulint			n_fields,/*!< in: number of data fields */
- 	ulint*			extra)	/*!< out: extra size */
--	__attribute__((nonnull(1,3)));
-+	MY_ATTRIBUTE((nonnull(1,3)));
- /**********************************************************//**
- The following function returns the size of a data tuple when converted to
- a physical record.
-@@ -889,7 +889,7 @@ rec_get_converted_size(
- 	dict_index_t*	index,	/*!< in: record descriptor */
- 	const dtuple_t*	dtuple,	/*!< in: data tuple */
- 	ulint		n_ext)	/*!< in: number of externally stored columns */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- #ifndef UNIV_HOTBACKUP
- /**************************************************************//**
- Copies the first n fields of a physical record to a data tuple.
-@@ -904,7 +904,7 @@ rec_copy_prefix_to_dtuple(
- 	ulint			n_fields,	/*!< in: number of fields
- 						to copy */
- 	mem_heap_t*		heap)		/*!< in: memory heap */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /***************************************************************//**
- Validates the consistency of a physical record.
-@@ -915,7 +915,7 @@ rec_validate(
- /*=========*/
- 	const rec_t*	rec,	/*!< in: physical record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***************************************************************//**
- Prints an old-style physical record. */
- UNIV_INTERN
-@@ -924,7 +924,7 @@ rec_print_old(
- /*==========*/
- 	FILE*		file,	/*!< in: file where to print */
- 	const rec_t*	rec)	/*!< in: physical record */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifndef UNIV_HOTBACKUP
- /***************************************************************//**
- Prints a physical record in ROW_FORMAT=COMPACT.  Ignores the
-@@ -936,7 +936,7 @@ rec_print_comp(
- 	FILE*		file,	/*!< in: file where to print */
- 	const rec_t*	rec,	/*!< in: physical record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***************************************************************//**
- Prints a physical record. */
- UNIV_INTERN
-@@ -946,7 +946,7 @@ rec_print_new(
- 	FILE*		file,	/*!< in: file where to print */
- 	const rec_t*	rec,	/*!< in: physical record */
- 	const ulint*	offsets)/*!< in: array returned by rec_get_offsets() */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***************************************************************//**
- Prints a physical record. */
- UNIV_INTERN
-@@ -956,7 +956,7 @@ rec_print(
- 	FILE*			file,	/*!< in: file where to print */
- 	const rec_t*		rec,	/*!< in: physical record */
- 	const dict_index_t*	index)	/*!< in: record descriptor */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- # ifdef UNIV_DEBUG
- /************************************************************//**
-@@ -968,7 +968,7 @@ rec_get_trx_id(
- /*===========*/
- 	const rec_t*		rec,	/*!< in: record */
- 	const dict_index_t*	index)	/*!< in: clustered index */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- # endif /* UNIV_DEBUG */
- #endif /* UNIV_HOTBACKUP */
- 
---- a/storage/innobase/include/row0ftsort.h
-+++ b/storage/innobase/include/row0ftsort.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2010, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -187,7 +187,7 @@ row_fts_psort_info_init(
- 					instantiated */
- 	fts_psort_t**		merge)	/*!< out: parallel merge info
- 					to be instantiated */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Clean up and deallocate FTS parallel sort structures, and close
- temparary merge sort files */
-@@ -275,5 +275,5 @@ row_fts_merge_insert(
- 	fts_psort_t*	psort_info,	/*!< parallel sort info */
- 	ulint		id)		/* !< in: which auxiliary table's data
- 					to insert to */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* row0ftsort_h */
---- a/storage/innobase/include/row0import.h
-+++ b/storage/innobase/include/row0import.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -46,7 +46,7 @@ row_import_for_mysql(
- 	dict_table_t*	table,		/*!< in/out: table */
- 	row_prebuilt_t*	prebuilt)	/*!< in: prebuilt struct
- 						in MySQL */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*****************************************************************//**
- Update the DICT_TF2_DISCARDED flag in SYS_TABLES.
-@@ -64,7 +64,7 @@ row_import_update_discarded_flag(
- 	bool		dict_locked)		/*!< in: Set to true if the
- 						caller already owns the
- 						dict_sys_t:: mutex. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*****************************************************************//**
- Update the (space, root page) of a table's indexes from the values
-@@ -83,7 +83,7 @@ row_import_update_index_root(
- 	bool			dict_locked)	/*!< in: Set to true if the
- 						caller already owns the
- 						dict_sys_t:: mutex. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_NONINL
- #include "row0import.ic"
- #endif
---- a/storage/innobase/include/row0ins.h
-+++ b/storage/innobase/include/row0ins.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -53,7 +53,7 @@ row_ins_check_foreign_constraint(
- 				table, else the referenced table */
- 	dtuple_t*	entry,	/*!< in: index entry for index */
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Creates an insert node struct.
- @return	own: insert node struct */
-@@ -98,7 +98,7 @@ row_ins_clust_index_entry_low(
- 	dtuple_t*	entry,	/*!< in/out: index entry to insert */
- 	ulint		n_ext,	/*!< in: number of externally stored columns */
- 	que_thr_t*	thr)	/*!< in: query thread or NULL */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***************************************************************//**
- Tries to insert an entry into a secondary index. If a record with exactly the
- same fields is found, the other record is necessarily marked deleted.
-@@ -123,7 +123,7 @@ row_ins_sec_index_entry_low(
- 	trx_id_t	trx_id,	/*!< in: PAGE_MAX_TRX_ID during
- 				row_log_table_apply(), or 0 */
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***************************************************************//**
- Tries to insert the externally stored fields (off-page columns)
- of a clustered index entry.
-@@ -142,7 +142,7 @@ row_ins_index_entry_big_rec_func(
- 	const void*		thd,	/*!< in: connection, or NULL */
- #endif /* DBUG_OFF */
- 	ulint			line)	/*!< in: line number of caller */
--	__attribute__((nonnull(1,2,3,4,5,6), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4,5,6), warn_unused_result));
- #ifdef DBUG_OFF
- # define row_ins_index_entry_big_rec(e,big,ofs,heap,index,thd,file,line) \
- 	row_ins_index_entry_big_rec_func(e,big,ofs,heap,index,file,line)
-@@ -164,7 +164,7 @@ row_ins_clust_index_entry(
- 	dtuple_t*	entry,	/*!< in/out: index entry to insert */
- 	que_thr_t*	thr,	/*!< in: query thread */
- 	ulint		n_ext)	/*!< in: number of externally stored columns */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***************************************************************//**
- Inserts an entry into a secondary index. Tries first optimistic,
- then pessimistic descent down the tree. If the entry matches enough
-@@ -178,7 +178,7 @@ row_ins_sec_index_entry(
- 	dict_index_t*	index,	/*!< in: secondary index */
- 	dtuple_t*	entry,	/*!< in/out: index entry to insert */
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************//**
- Inserts a row to a table. This is a high-level function used in
- SQL execution graphs.
---- a/storage/innobase/include/row0log.h
-+++ b/storage/innobase/include/row0log.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -54,7 +54,7 @@ row_log_allocate(
- 	const ulint*	col_map,/*!< in: mapping of old column
- 				numbers to new ones, or NULL if !table */
- 	const char*	path)	/*!< in: where to create temporary file */
--	__attribute__((nonnull(1), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1), warn_unused_result));
- 
- /******************************************************//**
- Free the row log for an index that was being created online. */
-@@ -63,7 +63,7 @@ void
- row_log_free(
- /*=========*/
- 	row_log_t*&	log)	/*!< in,own: row log */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- Free the row log for an index on which online creation was aborted. */
-@@ -72,7 +72,7 @@ void
- row_log_abort_sec(
- /*==============*/
- 	dict_index_t*	index)	/*!< in/out: index (x-latched) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- Try to log an operation to a secondary index that is
-@@ -87,7 +87,7 @@ row_log_online_op_try(
- 	const dtuple_t* tuple,	/*!< in: index tuple */
- 	trx_id_t	trx_id)	/*!< in: transaction ID for insert,
- 				or 0 for delete */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************//**
- Logs an operation to a secondary index that is (or was) being created. */
- UNIV_INTERN
-@@ -98,7 +98,7 @@ row_log_online_op(
- 	const dtuple_t*	tuple,	/*!< in: index tuple */
- 	trx_id_t	trx_id)	/*!< in: transaction ID for insert,
- 				or 0 for delete */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- 
- /******************************************************//**
- Gets the error status of the online index rebuild log.
-@@ -109,7 +109,7 @@ row_log_table_get_error(
- /*====================*/
- 	const dict_index_t*	index)	/*!< in: clustered index of a table
- 					that is being rebuilt online */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************//**
- Logs a delete operation to a table that is being rebuilt.
-@@ -125,7 +125,7 @@ row_log_table_delete(
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec,index) */
- 	const byte*	sys)	/*!< in: DB_TRX_ID,DB_ROLL_PTR that should
- 				be logged, or NULL to use those in rec */
--	UNIV_COLD __attribute__((nonnull(1,2,3)));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,3)));
- 
- /******************************************************//**
- Logs an update operation to a table that is being rebuilt.
-@@ -141,7 +141,7 @@ row_log_table_update(
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec,index) */
- 	const dtuple_t*	old_pk)	/*!< in: row_log_table_get_pk()
- 				before the update */
--	UNIV_COLD __attribute__((nonnull(1,2,3)));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,3)));
- 
- /******************************************************//**
- Constructs the old PRIMARY KEY and DB_TRX_ID,DB_ROLL_PTR
-@@ -161,7 +161,7 @@ row_log_table_get_pk(
- 	byte*		sys,	/*!< out: DB_TRX_ID,DB_ROLL_PTR for
- 				row_log_table_delete(), or NULL */
- 	mem_heap_t**	heap)	/*!< in/out: memory heap where allocated */
--	UNIV_COLD __attribute__((nonnull(1,2,5), warn_unused_result));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull(1,2,5), warn_unused_result));
- 
- /******************************************************//**
- Logs an insert to a table that is being rebuilt.
-@@ -175,7 +175,7 @@ row_log_table_insert(
- 	dict_index_t*	index,	/*!< in/out: clustered index, S-latched
- 				or X-latched */
- 	const ulint*	offsets)/*!< in: rec_get_offsets(rec,index) */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- Notes that a BLOB is being freed during online ALTER TABLE. */
- UNIV_INTERN
-@@ -184,7 +184,7 @@ row_log_table_blob_free(
- /*====================*/
- 	dict_index_t*	index,	/*!< in/out: clustered index, X-latched */
- 	ulint		page_no)/*!< in: starting page number of the BLOB */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- Notes that a BLOB is being allocated during online ALTER TABLE. */
- UNIV_INTERN
-@@ -193,7 +193,7 @@ row_log_table_blob_alloc(
- /*=====================*/
- 	dict_index_t*	index,	/*!< in/out: clustered index, X-latched */
- 	ulint		page_no)/*!< in: starting page number of the BLOB */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /******************************************************//**
- Apply the row_log_table log to a table upon completing rebuild.
- @return DB_SUCCESS, or error code on failure */
-@@ -206,7 +206,7 @@ row_log_table_apply(
- 				/*!< in: old table */
- 	struct TABLE*	table)	/*!< in/out: MySQL table
- 				(for reporting duplicates) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************//**
- Get the latest transaction ID that has invoked row_log_online_op()
-@@ -217,7 +217,7 @@ trx_id_t
- row_log_get_max_trx(
- /*================*/
- 	dict_index_t*	index)	/*!< in: index, must be locked */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /******************************************************//**
- Merge the row log to the index upon completing index creation.
-@@ -231,7 +231,7 @@ row_log_apply(
- 	dict_index_t*	index,	/*!< in/out: secondary index */
- 	struct TABLE*	table)	/*!< in/out: MySQL table
- 				(for reporting duplicates) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #ifndef UNIV_NONINL
- #include "row0log.ic"
---- a/storage/innobase/include/row0merge.h
-+++ b/storage/innobase/include/row0merge.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -127,7 +127,7 @@ row_merge_dup_report(
- /*=================*/
- 	row_merge_dup_t*	dup,	/*!< in/out: for reporting duplicates */
- 	const dfield_t*		entry)	/*!< in: duplicate index entry */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Sets an exclusive lock on a table, for the duration of creating indexes.
- @return	error code or DB_SUCCESS */
-@@ -138,7 +138,7 @@ row_merge_lock_table(
- 	trx_t*		trx,		/*!< in/out: transaction */
- 	dict_table_t*	table,		/*!< in: table to lock */
- 	enum lock_mode	mode)		/*!< in: LOCK_X or LOCK_S */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Drop indexes that were created before an error occurred.
- The data dictionary must have been locked exclusively by the caller,
-@@ -149,7 +149,7 @@ row_merge_drop_indexes_dict(
- /*========================*/
- 	trx_t*		trx,	/*!< in/out: dictionary transaction */
- 	table_id_t	table_id)/*!< in: table identifier */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Drop those indexes which were created before an error occurred.
- The data dictionary must have been locked exclusively by the caller,
-@@ -162,7 +162,7 @@ row_merge_drop_indexes(
- 	dict_table_t*	table,	/*!< in/out: table containing the indexes */
- 	ibool		locked)	/*!< in: TRUE=table locked,
- 				FALSE=may need to do a lazy drop */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Drop all partially created indexes during crash recovery. */
- UNIV_INTERN
-@@ -178,7 +178,7 @@ UNIV_INTERN
- int
- row_merge_file_create_low(
- 	const char*	path)
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /*********************************************************************//**
- Destroy a merge file. And de-register the file from Performance Schema
- if UNIV_PFS_IO is defined. */
-@@ -214,7 +214,7 @@ row_merge_rename_tables_dict(
- 					old_table->name */
- 	const char*	tmp_name,	/*!< in: new name for old_table */
- 	trx_t*		trx)		/*!< in/out: dictionary transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Rename an index in the dictionary that was created. The data
-@@ -228,7 +228,7 @@ row_merge_rename_index_to_add(
- 	trx_t*		trx,		/*!< in/out: transaction */
- 	table_id_t	table_id,	/*!< in: table identifier */
- 	index_id_t	index_id)	/*!< in: index identifier */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Rename an index in the dictionary that is to be dropped. The data
- dictionary must have been locked exclusively by the caller, because
-@@ -241,7 +241,7 @@ row_merge_rename_index_to_drop(
- 	trx_t*		trx,		/*!< in/out: transaction */
- 	table_id_t	table_id,	/*!< in: table identifier */
- 	index_id_t	index_id)	/*!< in: index identifier */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Create the index and load in to the dictionary.
- @return	index, or NULL on error */
-@@ -274,7 +274,7 @@ row_merge_drop_table(
- /*=================*/
- 	trx_t*		trx,		/*!< in: transaction */
- 	dict_table_t*	table)		/*!< in: table instance to drop */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Build indexes on a table by reading a clustered index,
- creating a temporary file containing index entries, merge sorting
-@@ -307,7 +307,7 @@ row_merge_build_indexes(
- 					AUTO_INCREMENT column, or
- 					ULINT_UNDEFINED if none is added */
- 	ib_sequence_t&	sequence)	/*!< in/out: autoinc sequence */
--	__attribute__((nonnull(1,2,3,5,6,8), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,5,6,8), warn_unused_result));
- /********************************************************************//**
- Write a buffer to a block. */
- UNIV_INTERN
-@@ -317,7 +317,7 @@ row_merge_buf_write(
- 	const row_merge_buf_t*	buf,	/*!< in: sorted buffer */
- 	const merge_file_t*	of,	/*!< in: output file */
- 	row_merge_block_t*	block)	/*!< out: buffer for writing to file */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Sort a buffer. */
- UNIV_INTERN
-@@ -327,7 +327,7 @@ row_merge_buf_sort(
- 	row_merge_buf_t*	buf,	/*!< in/out: sort buffer */
- 	row_merge_dup_t*	dup)	/*!< in/out: reporter of duplicates
- 					(NULL if non-unique index) */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /********************************************************************//**
- Write a merge block to the file system.
- @return TRUE if request was successful, FALSE if fail */
-@@ -347,7 +347,7 @@ row_merge_buf_t*
- row_merge_buf_empty(
- /*================*/
- 	row_merge_buf_t*	buf)	/*!< in,own: sort buffer */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- 
- /** Create a merge file in the given location.
- @param[out]	merge_file	merge file structure
-@@ -373,7 +373,7 @@ row_merge_sort(
- 					index entries */
- 	row_merge_block_t*	block,	/*!< in/out: 3 buffers */
- 	int*			tmpfd)	/*!< in/out: temporary file handle */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Allocate a sort buffer.
- @return own: sort buffer */
-@@ -382,7 +382,7 @@ row_merge_buf_t*
- row_merge_buf_create(
- /*=================*/
- 	dict_index_t*	index)	/*!< in: secondary index */
--	__attribute__((warn_unused_result, nonnull, malloc));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull, malloc));
- /*********************************************************************//**
- Deallocate a sort buffer. */
- UNIV_INTERN
-@@ -390,7 +390,7 @@ void
- row_merge_buf_free(
- /*===============*/
- 	row_merge_buf_t*	buf)	/*!< in,own: sort buffer to be freed */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Destroy a merge file. */
- UNIV_INTERN
-@@ -398,7 +398,7 @@ void
- row_merge_file_destroy(
- /*===================*/
- 	merge_file_t*	merge_file)	/*!< in/out: merge file structure */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Read a merge block from the file system.
- @return TRUE if request was successful, FALSE if fail */
-@@ -428,5 +428,5 @@ row_merge_read_rec(
- 					or NULL on end of list
- 					(non-NULL on I/O error) */
- 	ulint*			offsets)/*!< out: offsets of mrec */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* row0merge.h */
---- a/storage/innobase/include/row0mysql.h
-+++ b/storage/innobase/include/row0mysql.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2000, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2000, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -167,7 +167,7 @@ row_mysql_handle_errors(
- 	trx_t*		trx,	/*!< in: transaction */
- 	que_thr_t*	thr,	/*!< in: query thread, or NULL */
- 	trx_savept_t*	savept)	/*!< in: savepoint, or NULL */
--	__attribute__((nonnull(1,2)));
-+	MY_ATTRIBUTE((nonnull(1,2)));
- /********************************************************************//**
- Create a prebuilt struct for a MySQL table handle.
- @return	own: a prebuilt struct */
-@@ -209,7 +209,7 @@ row_lock_table_autoinc_for_mysql(
- /*=============================*/
- 	row_prebuilt_t*	prebuilt)	/*!< in: prebuilt struct in the MySQL
- 					table handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Sets a table lock on the table mentioned in prebuilt.
- @return	error code or DB_SUCCESS */
-@@ -225,7 +225,7 @@ row_lock_table_for_mysql(
- 					prebuilt->select_lock_type */
- 	ulint		mode)		/*!< in: lock mode of table
- 					(ignored if table==NULL) */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /*********************************************************************//**
- Does an insert for MySQL.
- @return	error code or DB_SUCCESS */
-@@ -236,7 +236,7 @@ row_insert_for_mysql(
- 	byte*		mysql_rec,	/*!< in: row in the MySQL format */
- 	row_prebuilt_t*	prebuilt)	/*!< in: prebuilt struct in MySQL
- 					handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Builds a dummy query graph used in selects. */
- UNIV_INTERN
-@@ -276,7 +276,7 @@ row_update_for_mysql(
- 					the MySQL format */
- 	row_prebuilt_t*	prebuilt)	/*!< in: prebuilt struct in MySQL
- 					handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- This can only be used when srv_locks_unsafe_for_binlog is TRUE or this
- session is using a READ COMMITTED or READ UNCOMMITTED isolation level.
-@@ -297,7 +297,7 @@ row_unlock_for_mysql(
- 					the records under pcur and
- 					clust_pcur, and we do not need
- 					to reposition the cursors. */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Checks if a table name contains the string "/#sql" which denotes temporary
- tables in MySQL.
-@@ -306,7 +306,7 @@ UNIV_INTERN
- bool
- row_is_mysql_tmp_table_name(
- /*========================*/
--	const char*	name) __attribute__((warn_unused_result));
-+	const char*	name) MY_ATTRIBUTE((warn_unused_result));
- 				/*!< in: table name in the form
- 				'database/tablename' */
- 
-@@ -331,7 +331,7 @@ row_update_cascade_for_mysql(
- 	upd_node_t*	node,	/*!< in: update node used in the cascade
- 				or set null operation */
- 	dict_table_t*	table)	/*!< in: table where we do the operation */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Locks the data dictionary exclusively for performing a table create or other
- data dictionary modification operation. */
-@@ -387,7 +387,7 @@ row_create_table_for_mysql(
- 				added to the data dictionary cache) */
- 	trx_t*		trx,	/*!< in/out: transaction */
- 	bool		commit)	/*!< in: if true, commit the transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Does an index creation operation for MySQL. TODO: currently failure
- to create an index results in dropping the whole table! This is no problem
-@@ -406,7 +406,7 @@ row_create_index_for_mysql(
- 					index columns, which are
- 					then checked for not being too
- 					large. */
--	__attribute__((nonnull(1,2), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
- /*********************************************************************//**
- Scans a table create SQL string and adds to the data dictionary
- the foreign key constraints declared in the string. This function
-@@ -432,7 +432,7 @@ row_table_add_foreign_constraints(
- 	ibool		reject_fks)	/*!< in: if TRUE, fail with error
- 					code DB_CANNOT_ADD_CONSTRAINT if
- 					any foreign keys are found. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- The master thread in srv0srv.cc calls this regularly to drop tables which
- we must drop in background after queries to them have ended. Such lazy
-@@ -461,7 +461,7 @@ row_mysql_lock_table(
- 	dict_table_t*	table,		/*!< in: table to lock */
- 	enum lock_mode	mode,		/*!< in: LOCK_X or LOCK_S */
- 	const char*	op_info)	/*!< in: string for trx->op_info */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Truncates a table for MySQL.
-@@ -472,7 +472,7 @@ row_truncate_table_for_mysql(
- /*=========================*/
- 	dict_table_t*	table,	/*!< in: table handle */
- 	trx_t*		trx)	/*!< in: transaction handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Drops a table for MySQL.  If the name of the dropped table ends in
- one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor",
-@@ -491,7 +491,7 @@ row_drop_table_for_mysql(
- 	bool		nonatomic = true)
- 				/*!< in: whether it is permitted
- 				to release and reacquire dict_operation_lock */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Drop all temporary tables during crash recovery. */
- UNIV_INTERN
-@@ -510,7 +510,7 @@ row_discard_tablespace_for_mysql(
- /*=============================*/
- 	const char*	name,	/*!< in: table name */
- 	trx_t*		trx)	/*!< in: transaction handle */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*****************************************************************//**
- Imports a tablespace. The space id in the .ibd file must match the space id
- of the table in the data dictionary.
-@@ -521,7 +521,7 @@ row_import_tablespace_for_mysql(
- /*============================*/
- 	dict_table_t*	table,		/*!< in/out: table */
- 	row_prebuilt_t*	prebuilt)	/*!< in: prebuilt struct in MySQL */
--        __attribute__((nonnull, warn_unused_result));
-+        MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Drops a database for MySQL.
- @return	error code or DB_SUCCESS */
-@@ -531,7 +531,7 @@ row_drop_database_for_mysql(
- /*========================*/
- 	const char*	name,	/*!< in: database name which ends to '/' */
- 	trx_t*		trx)	/*!< in: transaction handle */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*********************************************************************//**
- Renames a table for MySQL.
- @return	error code or DB_SUCCESS */
-@@ -543,7 +543,7 @@ row_rename_table_for_mysql(
- 	const char*	new_name,	/*!< in: new table name */
- 	trx_t*		trx,		/*!< in/out: transaction */
- 	bool		commit)		/*!< in: whether to commit trx */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Checks that the index contains entries in an ascending order, unique
- constraint is not broken, and calculates the number of index entries
-@@ -558,7 +558,7 @@ row_check_index_for_mysql(
- 	const dict_index_t*	index,		/*!< in: index */
- 	ulint*			n_rows)		/*!< out: number of entries
- 						seen in the consistent read */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Determines if a table is a magic monitor table.
- @return	true if monitor table */
-@@ -568,7 +568,7 @@ row_is_magic_monitor_table(
- /*=======================*/
- 	const char*	table_name)	/*!< in: name of the table, in the
- 					form database/table_name */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Initialize this module */
- UNIV_INTERN
-@@ -593,7 +593,7 @@ row_mysql_table_id_reassign(
- 	dict_table_t*	table,	/*!< in/out: table */
- 	trx_t*		trx,	/*!< in/out: transaction */
- 	table_id_t*	new_id) /*!< out: new table id */
--        __attribute__((nonnull, warn_unused_result));
-+        MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /* A struct describing a place for an individual column in the MySQL
- row format which is presented to the table handler in ha_innobase.
---- a/storage/innobase/include/row0purge.h
-+++ b/storage/innobase/include/row0purge.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -47,7 +47,7 @@ row_purge_node_create(
- 	que_thr_t*	parent,		/*!< in: parent node, i.e., a
- 					thr node */
- 	mem_heap_t*	heap)		/*!< in: memory heap where created */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************//**
- Determines if it is possible to remove a secondary index entry.
- Removal is possible if the secondary index entry does not refer to any
-@@ -70,7 +70,7 @@ row_purge_poss_sec(
- 	purge_node_t*	node,	/*!< in/out: row purge node */
- 	dict_index_t*	index,	/*!< in: secondary index */
- 	const dtuple_t*	entry)	/*!< in: secondary index entry */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***************************************************************
- Does the purge operation for a single undo log record. This is a high-level
- function used in an SQL execution graph.
-@@ -80,7 +80,7 @@ que_thr_t*
- row_purge_step(
- /*===========*/
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /* Purge node structure */
- 
---- a/storage/innobase/include/row0quiesce.h
-+++ b/storage/innobase/include/row0quiesce.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -43,7 +43,7 @@ row_quiesce_table_start(
- /*====================*/
- 	dict_table_t*	table,		/*!< in: quiesce this table */
- 	trx_t*		trx)		/*!< in/out: transaction/session */
--        __attribute__((nonnull));
-+        MY_ATTRIBUTE((nonnull));
- 
- /*********************************************************************//**
- Set a table's quiesce state.
-@@ -55,7 +55,7 @@ row_quiesce_set_state(
- 	dict_table_t*	table,		/*!< in: quiesce this table */
- 	ib_quiesce_t	state,		/*!< in: quiesce state to set */
- 	trx_t*		trx)		/*!< in/out: transaction */
--        __attribute__((nonnull, warn_unused_result));
-+        MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*********************************************************************//**
- Cleanup after table quiesce. */
-@@ -65,7 +65,7 @@ row_quiesce_table_complete(
- /*=======================*/
- 	dict_table_t*	table,		/*!< in: quiesce this table */
- 	trx_t*		trx)		/*!< in/out: transaction/session */
--        __attribute__((nonnull));
-+        MY_ATTRIBUTE((nonnull));
- 
- #ifndef UNIV_NONINL
- #include "row0quiesce.ic"
---- a/storage/innobase/include/row0row.h
-+++ b/storage/innobase/include/row0row.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -47,7 +47,7 @@ row_get_trx_id_offset(
- /*==================*/
- 	const dict_index_t*	index,	/*!< in: clustered index */
- 	const ulint*		offsets)/*!< in: record offsets */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Reads the trx id field from a clustered index record.
- @return	value of the field */
-@@ -58,7 +58,7 @@ row_get_rec_trx_id(
- 	const rec_t*		rec,	/*!< in: record */
- 	const dict_index_t*	index,	/*!< in: clustered index */
- 	const ulint*		offsets)/*!< in: rec_get_offsets(rec, index) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Reads the roll pointer field from a clustered index record.
- @return	value of the field */
-@@ -69,7 +69,7 @@ row_get_rec_roll_ptr(
- 	const rec_t*		rec,	/*!< in: record */
- 	const dict_index_t*	index,	/*!< in: clustered index */
- 	const ulint*		offsets)/*!< in: rec_get_offsets(rec, index) */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*****************************************************************//**
- When an insert or purge to a table is performed, this function builds
- the entry to be inserted into or purged from an index on the table.
-@@ -88,7 +88,7 @@ row_build_index_entry_low(
- 	mem_heap_t*		heap)	/*!< in: memory heap from which
- 					the memory for the index entry
- 					is allocated */
--	__attribute__((warn_unused_result, nonnull(1,3,4)));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull(1,3,4)));
- /*****************************************************************//**
- When an insert or purge to a table is performed, this function builds
- the entry to be inserted into or purged from an index on the table.
-@@ -107,7 +107,7 @@ row_build_index_entry(
- 	mem_heap_t*		heap)	/*!< in: memory heap from which
- 					the memory for the index entry
- 					is allocated */
--	__attribute__((warn_unused_result, nonnull(1,3,4)));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull(1,3,4)));
- /*******************************************************************//**
- An inverse function to row_build_index_entry. Builds a row from a
- record in a clustered index.
-@@ -155,7 +155,7 @@ row_build(
- 					prefixes, or NULL */
- 	mem_heap_t*		heap)	/*!< in: memory heap from which
- 					the memory needed is allocated */
--	__attribute__((nonnull(2,3,9)));
-+	MY_ATTRIBUTE((nonnull(2,3,9)));
- /*******************************************************************//**
- Converts an index record to a typed data tuple.
- @return index entry built; does not set info_bits, and the data fields
-@@ -171,7 +171,7 @@ row_rec_to_index_entry_low(
- 					stored columns */
- 	mem_heap_t*		heap)	/*!< in: memory heap from which
- 					the memory needed is allocated */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Converts an index record to a typed data tuple. NOTE that externally
- stored (often big) fields are NOT copied to heap.
-@@ -187,7 +187,7 @@ row_rec_to_index_entry(
- 					stored columns */
- 	mem_heap_t*		heap)	/*!< in: memory heap from which
- 					the memory needed is allocated */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Builds from a secondary index record a row reference with which we can
- search the clustered index record.
-@@ -210,7 +210,7 @@ row_build_row_ref(
- 				as long as the row reference is used! */
- 	mem_heap_t*	heap)	/*!< in: memory heap from which the memory
- 				needed is allocated */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Builds from a secondary index record a row reference with which we can
- search the clustered index record. */
-@@ -232,7 +232,7 @@ row_build_row_ref_in_tuple(
- 	ulint*			offsets,/*!< in: rec_get_offsets(rec, index)
- 					or NULL */
- 	trx_t*			trx)	/*!< in: transaction or NULL */
--	__attribute__((nonnull(1,2,3)));
-+	MY_ATTRIBUTE((nonnull(1,2,3)));
- /*******************************************************************//**
- Builds from a secondary index record a row reference with which we can
- search the clustered index record. */
-@@ -263,7 +263,7 @@ row_search_on_row_ref(
- 	const dict_table_t*	table,	/*!< in: table */
- 	const dtuple_t*		ref,	/*!< in: row reference */
- 	mtr_t*			mtr)	/*!< in/out: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*********************************************************************//**
- Fetches the clustered index record for a secondary index record. The latches
- on the secondary index record are preserved.
-@@ -277,7 +277,7 @@ row_get_clust_rec(
- 	dict_index_t*	index,	/*!< in: secondary index */
- 	dict_index_t**	clust_index,/*!< out: clustered index */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /** Result of row_search_index_entry */
- enum row_search_result {
-@@ -305,7 +305,7 @@ row_search_index_entry(
- 	btr_pcur_t*	pcur,	/*!< in/out: persistent cursor, which must
- 				be closed by the caller */
- 	mtr_t*		mtr)	/*!< in: mtr */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #define ROW_COPY_DATA		1
- #define ROW_COPY_POINTERS	2
-@@ -334,7 +334,7 @@ row_raw_format(
- 	char*			buf,		/*!< out: output buffer */
- 	ulint			buf_size)	/*!< in: output buffer size
- 						in bytes */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #ifndef UNIV_NONINL
- #include "row0row.ic"
---- a/storage/innobase/include/row0sel.h
-+++ b/storage/innobase/include/row0sel.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -168,7 +168,7 @@ row_search_for_mysql(
- 					then prebuilt must have a pcur
- 					with stored position! In opening of a
- 					cursor 'direction' should be 0. */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Checks if MySQL at the moment is allowed for this table to retrieve a
- consistent read result, or store it to the query cache.
-@@ -190,7 +190,7 @@ row_search_max_autoinc(
- 	dict_index_t*	index,		/*!< in: index to search */
- 	const char*	col_name,	/*!< in: autoinc column name */
- 	ib_uint64_t*	value)		/*!< out: AUTOINC value read */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /** A structure for caching column values for prefetched rows */
- struct sel_buf_t{
---- a/storage/innobase/include/row0uins.h
-+++ b/storage/innobase/include/row0uins.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -46,7 +46,7 @@ dberr_t
- row_undo_ins(
- /*=========*/
- 	undo_node_t*	node)	/*!< in: row undo node */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #ifndef UNIV_NONINL
- #include "row0uins.ic"
- #endif
---- a/storage/innobase/include/row0umod.h
-+++ b/storage/innobase/include/row0umod.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -43,7 +43,7 @@ row_undo_mod(
- /*=========*/
- 	undo_node_t*	node,	/*!< in: row undo node */
- 	que_thr_t*	thr)	/*!< in: query thread */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- #ifndef UNIV_NONINL
- #include "row0umod.ic"
---- a/storage/innobase/include/row0upd.h
-+++ b/storage/innobase/include/row0upd.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -91,7 +91,7 @@ upd_get_field_by_field_no(
- /*======================*/
- 	const upd_t*	update,	/*!< in: update vector */
- 	ulint		no)	/*!< in: field_no */
--	__attribute__((nonnull, pure));
-+	MY_ATTRIBUTE((nonnull, pure));
- /*********************************************************************//**
- Writes into the redo log the values of trx id and roll ptr and enough info
- to determine their positions within a clustered index record.
-@@ -174,7 +174,7 @@ bool
- row_upd_changes_disowned_external(
- /*==============================*/
- 	const upd_t*	update)	/*!< in: update vector */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /***********************************************************//**
- Replaces the new column values stored in the update vector to the
-@@ -207,7 +207,7 @@ row_upd_build_sec_rec_difference_binary(
- 	const ulint*	offsets,/*!< in: rec_get_offsets(rec, index) */
- 	const dtuple_t*	entry,	/*!< in: entry to insert */
- 	mem_heap_t*	heap)	/*!< in: memory heap from which allocated */
--	__attribute__((warn_unused_result, nonnull));
-+	MY_ATTRIBUTE((warn_unused_result, nonnull));
- /***************************************************************//**
- Builds an update vector from those fields, excluding the roll ptr and
- trx id fields, which in an index entry differ from a record that has
-@@ -227,7 +227,7 @@ row_upd_build_difference_binary(
- 	trx_t*		trx,	/*!< in: transaction (for diagnostics),
- 				or NULL */
- 	mem_heap_t*	heap)	/*!< in: memory heap from which allocated */
--	__attribute__((nonnull(1,2,3,7), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2,3,7), warn_unused_result));
- /***********************************************************//**
- Replaces the new column values stored in the update vector to the index entry
- given. */
-@@ -250,7 +250,7 @@ row_upd_index_replace_new_col_vals_index_pos(
- 				does not work for non-clustered indexes. */
- 	mem_heap_t*	heap)	/*!< in: memory heap for allocating and
- 				copying the new values */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***********************************************************//**
- Replaces the new column values stored in the update vector to the index entry
- given. */
-@@ -269,7 +269,7 @@ row_upd_index_replace_new_col_vals(
- 				an upd_field is the clustered index position */
- 	mem_heap_t*	heap)	/*!< in: memory heap for allocating and
- 				copying the new values */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /***********************************************************//**
- Replaces the new column values stored in the update vector. */
- UNIV_INTERN
-@@ -311,7 +311,7 @@ row_upd_changes_ord_field_binary_func(
- 				compile time */
- 	const row_ext_t*ext)	/*!< NULL, or prefixes of the externally
- 				stored columns in the old row */
--	__attribute__((nonnull(1,2), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(1,2), warn_unused_result));
- #ifdef UNIV_DEBUG
- # define row_upd_changes_ord_field_binary(index,update,thr,row,ext)	\
- 	row_upd_changes_ord_field_binary_func(index,update,thr,row,ext)
-@@ -338,7 +338,7 @@ row_upd_changes_doc_id(
- /*===================*/
- 	dict_table_t*	table,		/*!< in: table */
- 	upd_field_t*	upd_field)	/*!< in: field to check */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************//**
- Checks if an update vector changes an ordering field of an index record.
- This function is fast if the update vector is short or the number of ordering
---- a/storage/innobase/include/row0vers.h
-+++ b/storage/innobase/include/row0vers.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -110,7 +110,7 @@ row_vers_build_for_consistent_read(
- 				if the history is missing or the record
- 				does not exist in the view, that is,
- 				it was freshly inserted afterwards */
--	__attribute__((nonnull(1,2,3,4,5,6,7)));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4,5,6,7)));
- 
- /*****************************************************************//**
- Constructs the last committed version of a clustered index record,
-@@ -136,7 +136,7 @@ row_vers_build_for_semi_consistent_read(
- 	const rec_t**	old_vers)/*!< out: rec, old version, or NULL if the
- 				record does not exist in the view, that is,
- 				it was freshly inserted afterwards */
--	__attribute__((nonnull(1,2,3,4,5)));
-+	MY_ATTRIBUTE((nonnull(1,2,3,4,5)));
- 
- 
- #ifndef UNIV_NONINL
---- a/storage/innobase/include/srv0srv.h
-+++ b/storage/innobase/include/srv0srv.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
- Copyright (c) 2008, 2009, Google Inc.
- Copyright (c) 2009, Percona Inc.
- 
-@@ -734,7 +734,7 @@ UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_purge_coordinator_thread)(
- /*=========================================*/
--	void*	arg __attribute__((unused)));	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)));	/*!< in: a dummy parameter
- 						required by os_thread_create */
- 
- /*********************************************************************//**
-@@ -744,7 +744,7 @@ UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_worker_thread)(
- /*==============================*/
--	void*	arg __attribute__((unused)));	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)));	/*!< in: a dummy parameter
- 						required by os_thread_create */
- } /* extern "C" */
- 
---- a/storage/innobase/include/srv0start.h
-+++ b/storage/innobase/include/srv0start.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -105,7 +105,7 @@ srv_path_copy(
- 	ulint		dest_len,	/*!< in: max bytes to copy */
- 	const char*	basedir,	/*!< in: base directory */
- 	const char*	table_name)	/*!< in: source table name */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- 
- /*****************************************************************//**
- Get the meta-data filename from the table name. */
-@@ -116,7 +116,7 @@ srv_get_meta_data_filename(
- 	dict_table_t*	table,		/*!< in: table */
- 	char*			filename,	/*!< out: filename */
- 	ulint			max_len)	/*!< in: filename max length */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /** Log sequence number at shutdown */
- extern	lsn_t	srv_shutdown_lsn;
---- a/storage/innobase/include/sync0arr.h
-+++ b/storage/innobase/include/sync0arr.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -110,7 +110,7 @@ sync_array_print_long_waits(
- /*========================*/
- 	os_thread_id_t*	waiter,	/*!< out: longest waiting thread */
- 	const void**	sema)	/*!< out: longest-waited-for semaphore */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Validates the integrity of the wait array. Checks
- that the number of reserved cells equals the count variable. */
---- a/storage/innobase/include/sync0rw.h
-+++ b/storage/innobase/include/sync0rw.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -333,7 +333,7 @@ ibool
- rw_lock_s_lock_low(
- /*===============*/
- 	rw_lock_t*	lock,	/*!< in: pointer to rw-lock */
--	ulint		pass __attribute__((unused)),
-+	ulint		pass MY_ATTRIBUTE((unused)),
- 				/*!< in: pass value; != 0, if the lock will be
- 				passed to another thread to unlock */
- 	const char*	file_name, /*!< in: file name where lock requested */
-@@ -501,7 +501,7 @@ rw_lock_own(
- 	rw_lock_t*	lock,		/*!< in: rw-lock */
- 	ulint		lock_type)	/*!< in: lock type: RW_LOCK_SHARED,
- 					RW_LOCK_EX */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #endif /* UNIV_SYNC_DEBUG */
- /******************************************************************//**
- Checks if somebody has locked the rw-lock in the specified mode. */
---- a/storage/innobase/include/sync0rw.ic
-+++ b/storage/innobase/include/sync0rw.ic
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -306,7 +306,7 @@ ibool
- rw_lock_s_lock_low(
- /*===============*/
- 	rw_lock_t*	lock,	/*!< in: pointer to rw-lock */
--	ulint		pass __attribute__((unused)),
-+	ulint		pass MY_ATTRIBUTE((unused)),
- 				/*!< in: pass value; != 0, if the lock will be
- 				passed to another thread to unlock */
- 	const char*	file_name, /*!< in: file name where lock requested */
---- a/storage/innobase/include/sync0sync.h
-+++ b/storage/innobase/include/sync0sync.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- Copyright (c) 2012, Facebook Inc.
- 
-@@ -400,7 +400,7 @@ ibool
- mutex_own(
- /*======*/
- 	const ib_mutex_t*	mutex)	/*!< in: mutex */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #endif /* UNIV_DEBUG */
- #ifdef UNIV_SYNC_DEBUG
- /******************************************************************//**
-@@ -415,7 +415,7 @@ sync_thread_add_level(
- 	ulint	level,	/*!< in: level in the latching order; if
- 			SYNC_LEVEL_VARYING, nothing is done */
- 	ibool	relock)	/*!< in: TRUE if re-entering an x-lock */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /******************************************************************//**
- Removes a latch from the thread level array if it is found there.
- @return TRUE if found in the array; it is no error if the latch is
-@@ -445,7 +445,7 @@ sync_thread_levels_nonempty_gen(
- /*============================*/
- 	ibool	dict_mutex_allowed)	/*!< in: TRUE if dictionary mutex is
- 					allowed to be owned by the thread */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- /******************************************************************//**
- Checks if the level array for the current thread is empty,
- except for data dictionary latches. */
-@@ -462,7 +462,7 @@ sync_thread_levels_nonempty_trx(
- 	ibool	has_search_latch)
- 				/*!< in: TRUE if and only if the thread
- 				is supposed to hold btr_search_latch */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- 
- /******************************************************************//**
- Gets the debug information for a reserved mutex. */
---- a/storage/innobase/include/trx0rec.h
-+++ b/storage/innobase/include/trx0rec.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -86,7 +86,7 @@ ulint
- trx_undo_rec_get_offset(
- /*====================*/
- 	undo_no_t	undo_no)	/*!< in: undo no read from node */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /**********************************************************************//**
- Returns the start of the undo record data area. */
-@@ -109,7 +109,7 @@ trx_undo_rec_get_pars(
- 					externally stored fild */
- 	undo_no_t*	undo_no,	/*!< out: undo log record number */
- 	table_id_t*	table_id)	/*!< out: table id */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************************//**
- Builds a row reference from an undo log record.
- @return	pointer to remaining part of undo record */
-@@ -201,7 +201,7 @@ trx_undo_rec_get_partial_row(
- 				only in the assertion. */
- 	mem_heap_t*	heap)	/*!< in: memory heap from which the memory
- 				needed is allocated */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /***********************************************************************//**
- Writes information to an undo log about an insert, update, or a delete marking
- of a clustered index record. This information is used in a rollback of the
-@@ -233,7 +233,7 @@ trx_undo_report_row_operation(
- 					inserted undo log record,
- 					0 if BTR_NO_UNDO_LOG
- 					flag was specified */
--	__attribute__((nonnull(3,4,10), warn_unused_result));
-+	MY_ATTRIBUTE((nonnull(3,4,10), warn_unused_result));
- /******************************************************************//**
- Copies an undo record to heap. This function can be called if we know that
- the undo log record exists.
-@@ -244,7 +244,7 @@ trx_undo_get_undo_rec_low(
- /*======================*/
- 	roll_ptr_t	roll_ptr,	/*!< in: roll pointer to record */
- 	mem_heap_t*	heap)		/*!< in: memory heap where copied */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Build a previous version of a clustered index record. The caller must
- hold a latch on the index page of the clustered index record.
-@@ -268,7 +268,7 @@ trx_undo_prev_version_build(
- 	rec_t**		old_vers)/*!< out, own: previous version, or NULL if
- 				rec is the first inserted version, or if
- 				history data has been deleted */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /***********************************************************//**
- Parses a redo log record of adding an undo log record.
---- a/storage/innobase/include/trx0roll.h
-+++ b/storage/innobase/include/trx0roll.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -125,7 +125,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(trx_rollback_or_clean_all_recovered)(
- /*================================================*/
--	void*	arg __attribute__((unused)));
-+	void*	arg MY_ATTRIBUTE((unused)));
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- /*********************************************************************//**
-@@ -152,7 +152,7 @@ dberr_t
- trx_rollback_for_mysql(
- /*===================*/
- 	trx_t*	trx)	/*!< in/out: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************************//**
- Rollback the latest SQL statement for MySQL.
- @return	error code or DB_SUCCESS */
-@@ -161,7 +161,7 @@ dberr_t
- trx_rollback_last_sql_stat_for_mysql(
- /*=================================*/
- 	trx_t*	trx)	/*!< in/out: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************************//**
- Rollback a transaction to a given savepoint or do a complete rollback.
- @return	error code or DB_SUCCESS */
-@@ -173,7 +173,7 @@ trx_rollback_to_savepoint(
- 	trx_savept_t*	savept)	/*!< in: pointer to savepoint undo number, if
- 				partial rollback requested, or NULL for
- 				complete rollback */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /*******************************************************************//**
- Rolls back a transaction back to a named savepoint. Modifications after the
- savepoint are undone but InnoDB does NOT release the corresponding locks
-@@ -195,7 +195,7 @@ trx_rollback_to_savepoint_for_mysql(
- 						information to remove the
- 						binlog entries of the queries
- 						executed after the savepoint */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Creates a named savepoint. If the transaction is not yet started, starts it.
- If there is already a savepoint of the same name, this call erases that old
-@@ -212,7 +212,7 @@ trx_savepoint_for_mysql(
- 						position corresponding to this
- 						connection at the time of the
- 						savepoint */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /*******************************************************************//**
- Releases a named savepoint. Savepoints which
- were set after this savepoint are deleted.
-@@ -224,7 +224,7 @@ trx_release_savepoint_for_mysql(
- /*============================*/
- 	trx_t*		trx,			/*!< in: transaction handle */
- 	const char*	savepoint_name)		/*!< in: savepoint name */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /*******************************************************************//**
- Frees savepoint structs starting from savep. */
- UNIV_INTERN
---- a/storage/innobase/include/trx0sys.h
-+++ b/storage/innobase/include/trx0sys.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -267,7 +267,7 @@ ibool
- trx_in_trx_list(
- /*============*/
- 	const trx_t*	in_trx)		/*!< in: transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- #if defined UNIV_DEBUG || defined UNIV_BLOB_LIGHT_DEBUG
- /***********************************************************//**
-@@ -278,7 +278,7 @@ ibool
- trx_assert_recovered(
- /*=================*/
- 	trx_id_t	trx_id)		/*!< in: transaction identifier */
--	__attribute__((warn_unused_result));
-+	MY_ATTRIBUTE((warn_unused_result));
- #endif /* UNIV_DEBUG || UNIV_BLOB_LIGHT_DEBUG */
- /*****************************************************************//**
- Updates the offset information about the end of the MySQL binlog entry
---- a/storage/innobase/include/trx0trx.h
-+++ b/storage/innobase/include/trx0trx.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -103,7 +103,7 @@ void
- trx_free_prepared(
- /*==============*/
- 	trx_t*	trx)	/*!< in, own: trx object */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- /********************************************************************//**
- Frees a transaction object for MySQL. */
- UNIV_INTERN
-@@ -169,7 +169,7 @@ trx_start_for_ddl_low(
- /*==================*/
- 	trx_t*		trx,	/*!< in/out: transaction */
- 	trx_dict_op_t	op)	/*!< in: dictionary operation type */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- #ifdef UNIV_DEBUG
- #define trx_start_for_ddl(t, o)					\
-@@ -191,7 +191,7 @@ void
- trx_commit(
- /*=======*/
- 	trx_t*	trx)	/*!< in/out: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /****************************************************************//**
- Commits a transaction and a mini-transaction. */
- UNIV_INTERN
-@@ -201,7 +201,7 @@ trx_commit_low(
- 	trx_t*	trx,	/*!< in/out: transaction */
- 	mtr_t*	mtr)	/*!< in/out: mini-transaction (will be committed),
- 			or NULL if trx made no modifications */
--	__attribute__((nonnull(1)));
-+	MY_ATTRIBUTE((nonnull(1)));
- /****************************************************************//**
- Cleans up a transaction at database startup. The cleanup is needed if
- the transaction already got to the middle of a commit when the database
-@@ -255,7 +255,7 @@ void
- trx_commit_complete_for_mysql(
- /*==========================*/
- 	trx_t*	trx)	/*!< in/out: transaction */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- /**********************************************************************//**
- Marks the latest SQL statement ended. */
- UNIV_INTERN
-@@ -317,7 +317,7 @@ trx_print_low(
- 			/*!< in: length of trx->lock.trx_locks */
- 	ulint		heap_size)
- 			/*!< in: mem_heap_get_size(trx->lock.lock_heap) */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Prints info about a transaction.
-@@ -331,7 +331,7 @@ trx_print_latched(
- 	const trx_t*	trx,		/*!< in: transaction */
- 	ulint		max_query_len)	/*!< in: max query length to print,
- 					or 0 to use the default max length */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Prints info about a transaction.
-@@ -344,7 +344,7 @@ trx_print(
- 	const trx_t*	trx,		/*!< in: transaction */
- 	ulint		max_query_len)	/*!< in: max query length to print,
- 					or 0 to use the default max length */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- /**********************************************************************//**
- Determine if a transaction is a dictionary operation.
-@@ -354,7 +354,7 @@ enum trx_dict_op_t
- trx_get_dict_operation(
- /*===================*/
- 	const trx_t*	trx)	/*!< in: transaction */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /**********************************************************************//**
- Flag a transaction a dictionary operation. */
- UNIV_INLINE
-@@ -383,7 +383,7 @@ trx_state_eq(
- 				if state != TRX_STATE_NOT_STARTED
- 				asserts that
- 				trx->state != TRX_STATE_NOT_STARTED */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- # ifdef UNIV_DEBUG
- /**********************************************************************//**
- Asserts that a transaction has been started.
-@@ -394,7 +394,7 @@ ibool
- trx_assert_started(
- /*===============*/
- 	const trx_t*	trx)	/*!< in: transaction */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- # endif /* UNIV_DEBUG */
- 
- /**********************************************************************//**
---- a/storage/innobase/include/trx0undo.h
-+++ b/storage/innobase/include/trx0undo.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -73,7 +73,7 @@ bool
- trx_undo_trx_id_is_insert(
- /*======================*/
- 	const byte*	trx_id)	/*!< in: DB_TRX_ID, followed by DB_ROLL_PTR */
--	__attribute__((nonnull, pure, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, pure, warn_unused_result));
- #endif /* !UNIV_HOTBACKUP */
- /*****************************************************************//**
- Writes a roll ptr to an index page. In case that the size changes in
-@@ -214,7 +214,7 @@ trx_undo_add_page(
- 	mtr_t*		mtr)	/*!< in: mtr which does not have a latch to any
- 				undo log page; the caller must have reserved
- 				the rollback segment mutex */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /********************************************************************//**
- Frees the last undo log page.
- The caller must hold the rollback segment mutex. */
-@@ -229,7 +229,7 @@ trx_undo_free_last_page_func(
- 	mtr_t*		mtr)	/*!< in/out: mini-transaction which does not
- 				have a latch to any undo log page or which
- 				has allocated the undo log page */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- # define trx_undo_free_last_page(trx,undo,mtr)	\
- 	trx_undo_free_last_page_func(trx,undo,mtr)
-@@ -251,7 +251,7 @@ trx_undo_truncate_end_func(
- 	trx_undo_t*	undo,	/*!< in/out: undo log */
- 	undo_no_t	limit)	/*!< in: all undo records with undo number
- 				>= this value should be truncated */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- #ifdef UNIV_DEBUG
- # define trx_undo_truncate_end(trx,undo,limit)		\
- 	trx_undo_truncate_end_func(trx,undo,limit)
-@@ -300,7 +300,7 @@ trx_undo_assign_undo(
- /*=================*/
- 	trx_t*		trx,	/*!< in: transaction */
- 	ulint		type)	/*!< in: TRX_UNDO_INSERT or TRX_UNDO_UPDATE */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- /******************************************************************//**
- Sets the state of the undo log segment at a transaction finish.
- @return	undo log segment header page, x-latched */
-@@ -350,7 +350,7 @@ void
- trx_undo_free_prepared(
- /*===================*/
- 	trx_t*	trx)	/*!< in/out: PREPARED transaction */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- #endif /* !UNIV_HOTBACKUP */
- /***********************************************************//**
- Parses the redo log entry of an undo log page initialization.
---- a/storage/innobase/include/univ.i
-+++ b/storage/innobase/include/univ.i
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -249,7 +249,7 @@ that are only referenced from within InnoDB, not from MySQL. We disable the
- GCC visibility directive on all Sun operating systems because there is no
- easy way to get it to work. See http://bugs.mysql.com/bug.php?id=52263. */
- #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(sun) || defined(__INTEL_COMPILER)
--# define UNIV_INTERN __attribute__((visibility ("hidden")))
-+# define UNIV_INTERN MY_ATTRIBUTE((visibility ("hidden")))
- #else
- # define UNIV_INTERN
- #endif
-@@ -264,7 +264,7 @@ appears close together improving code locality of non-cold parts of
- program.  The paths leading to call of cold functions within code are
- marked as unlikely by the branch prediction mechanism.  optimize a
- rarely invoked function for size instead for speed. */
--# define UNIV_COLD __attribute__((cold))
-+# define UNIV_COLD MY_ATTRIBUTE((cold))
- #else
- # define UNIV_COLD /* empty */
- #endif
-@@ -528,7 +528,7 @@ contains the sum of the following flag and the locally stored len. */
- #if defined(__GNUC__) && (__GNUC__ > 2) && ! defined(__INTEL_COMPILER)
- #define HAVE_GCC_GT_2
- /* Tell the compiler that variable/function is unused. */
--# define UNIV_UNUSED    __attribute__ ((unused))
-+# define UNIV_UNUSED    MY_ATTRIBUTE ((unused))
- #else
- # define UNIV_UNUSED
- #endif /* CHECK FOR GCC VER_GT_2 */
---- a/storage/innobase/include/ut0byte.h
-+++ b/storage/innobase/include/ut0byte.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2009, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -39,7 +39,7 @@ ut_ull_create(
- /*==========*/
- 	ulint	high,	/*!< in: high-order 32 bits */
- 	ulint	low)	/*!< in: low-order 32 bits */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /********************************************************//**
- Rounds a 64-bit integer downward to a multiple of a power of 2.
-@@ -80,7 +80,7 @@ ut_align_down(
- /*==========*/
- 	const void*	ptr,		/*!< in: pointer */
- 	ulint		align_no)	/*!< in: align by this number */
--		__attribute__((const));
-+		MY_ATTRIBUTE((const));
- /*********************************************************//**
- The following function computes the offset of a pointer from the nearest
- aligned address.
-@@ -91,7 +91,7 @@ ut_align_offset(
- /*============*/
- 	const void*	ptr,		/*!< in: pointer */
- 	ulint		align_no)	/*!< in: align by this number */
--			__attribute__((const));
-+			MY_ATTRIBUTE((const));
- /*****************************************************************//**
- Gets the nth bit of a ulint.
- @return	TRUE if nth bit is 1; 0th bit is defined to be the least significant */
---- a/storage/innobase/include/ut0dbg.h
-+++ b/storage/innobase/include/ut0dbg.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2009, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -59,7 +59,7 @@ ut_dbg_assertion_failed(
- 	const char*	expr,	/*!< in: the failed assertion */
- 	const char*	file,	/*!< in: source file containing the assertion */
- 	ulint		line)	/*!< in: line number of the assertion */
--	UNIV_COLD __attribute__((nonnull(2)));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull(2)));
- 
- /** Abort the execution. */
- # define UT_DBG_PANIC abort()
---- a/storage/innobase/include/ut0mem.h
-+++ b/storage/innobase/include/ut0mem.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -87,7 +87,7 @@ ut_malloc_low(
- 	ulint	n,			/*!< in: number of bytes to allocate */
- 	ibool	assert_on_error)	/*!< in: if TRUE, we crash mysqld if
- 					the memory cannot be allocated */
--	__attribute__((malloc));
-+	MY_ATTRIBUTE((malloc));
- /**********************************************************************//**
- Allocates memory. */
- #define ut_malloc(n) ut_malloc_low(n, TRUE)
---- a/storage/innobase/include/ut0rnd.h
-+++ b/storage/innobase/include/ut0rnd.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2009, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -96,7 +96,7 @@ ulint
- ut_fold_ull(
- /*========*/
- 	ib_uint64_t	d)	/*!< in: 64-bit integer */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*************************************************************//**
- Folds a character string ending in the null character.
- @return	folded value */
-@@ -105,7 +105,7 @@ ulint
- ut_fold_string(
- /*===========*/
- 	const char*	str)	/*!< in: null-terminated string */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- /***********************************************************//**
- Looks for a prime number slightly greater than the given argument.
- The prime is chosen so that it is not near any power of 2.
-@@ -115,7 +115,7 @@ ulint
- ut_find_prime(
- /*==========*/
- 	ulint	n)	/*!< in: positive number > 100 */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- #endif /* !UNIV_INNOCHECKSUM */
- 
-@@ -128,7 +128,7 @@ ut_fold_ulint_pair(
- /*===============*/
- 	ulint	n1,	/*!< in: ulint */
- 	ulint	n2)	/*!< in: ulint */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- /*************************************************************//**
- Folds a binary string.
- @return	folded value */
-@@ -138,7 +138,7 @@ ut_fold_binary(
- /*===========*/
- 	const byte*	str,	/*!< in: string of bytes */
- 	ulint		len)	/*!< in: length */
--	__attribute__((pure));
-+	MY_ATTRIBUTE((pure));
- 
- 
- #ifndef UNIV_NONINL
---- a/storage/innobase/include/ut0ut.h
-+++ b/storage/innobase/include/ut0ut.h
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -217,7 +217,7 @@ ulint
- ut_2_power_up(
- /*==========*/
- 	ulint	n)	/*!< in: number != 0 */
--	__attribute__((const));
-+	MY_ATTRIBUTE((const));
- 
- /** Determine how many bytes (groups of 8 bits) are needed to
- store the given number of bits.
-@@ -297,7 +297,7 @@ void
- ut_print_timestamp(
- /*===============*/
- 	FILE*	file)	/*!< in: file where to print */
--	UNIV_COLD __attribute__((nonnull));
-+	UNIV_COLD MY_ATTRIBUTE((nonnull));
- 
- #ifndef UNIV_INNOCHECKSUM
- 
-@@ -485,7 +485,7 @@ ut_ulint_sort(
- 	ulint*	aux_arr,	/*!< in/out: aux array to use in sort */
- 	ulint	low,		/*!< in: lower bound */
- 	ulint	high)		/*!< in: upper bound */
--	__attribute__((nonnull));
-+	MY_ATTRIBUTE((nonnull));
- 
- #ifndef UNIV_NONINL
- #include "ut0ut.ic"
---- a/storage/innobase/lock/lock0lock.cc
-+++ b/storage/innobase/lock/lock0lock.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -409,7 +409,7 @@ ibool
- lock_rec_validate_page(
- /*===================*/
- 	const buf_block_t*	block)	/*!< in: buffer block */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- 
- /* The lock system */
-@@ -493,7 +493,7 @@ Checks that a transaction id is sensible, i.e., not in the future.
- #ifdef UNIV_DEBUG
- UNIV_INTERN
- #else
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- #endif
- bool
- lock_check_trx_id_sanity(
-@@ -5779,7 +5779,7 @@ lock_validate_table_locks(
- /*********************************************************************//**
- Validate record locks up to a limit.
- @return lock at limit or NULL if no more locks in the hash bucket */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const lock_t*
- lock_rec_validate(
- /*==============*/
---- a/storage/innobase/lock/lock0wait.cc
-+++ b/storage/innobase/lock/lock0wait.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -479,7 +479,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(lock_wait_timeout_thread)(
- /*=====================================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/* in: a dummy parameter required by
- 			os_thread_create */
- {
---- a/storage/innobase/log/log0log.cc
-+++ b/storage/innobase/log/log0log.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2009, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -975,7 +975,7 @@ log_group_init(
- 	ulint	space_id,		/*!< in: space id of the file space
- 					which contains the log files of this
- 					group */
--	ulint	archive_space_id __attribute__((unused)))
-+	ulint	archive_space_id MY_ATTRIBUTE((unused)))
- 					/*!< in: space id of the file space
- 					which contains some archived log
- 					files for this group; currently, only
-@@ -2352,7 +2352,7 @@ void
- log_archived_file_name_gen(
- /*=======================*/
- 	char*	buf,	/*!< in: buffer where to write */
--	ulint	id __attribute__((unused)),
-+	ulint	id MY_ATTRIBUTE((unused)),
- 			/*!< in: group id;
- 			currently we only archive the first group */
- 	ulint	file_no)/*!< in: file number */
---- a/storage/innobase/log/log0recv.cc
-+++ b/storage/innobase/log/log0recv.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -328,7 +328,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(recv_writer_thread)(
- /*===============================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
-@@ -742,7 +742,7 @@ recv_check_cp_is_consistent(
- /********************************************************//**
- Looks for the maximum consistent checkpoint from the log groups.
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- recv_find_max_checkpoint(
- /*=====================*/
---- a/storage/innobase/mem/mem0dbg.cc
-+++ b/storage/innobase/mem/mem0dbg.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -248,7 +248,7 @@ void
- mem_field_erase(
- /*============*/
- 	byte*	buf,	/*!< in: memory field */
--	ulint	n __attribute__((unused)))
-+	ulint	n MY_ATTRIBUTE((unused)))
- 			/*!< in: how many bytes the user requested */
- {
- 	byte*	usr_buf;
-@@ -450,7 +450,7 @@ void
- mem_heap_validate_or_print(
- /*=======================*/
- 	mem_heap_t*	heap,	/*!< in: memory heap */
--	byte*		top __attribute__((unused)),
-+	byte*		top MY_ATTRIBUTE((unused)),
- 				/*!< in: calculate and validate only until
- 				this top pointer in the heap is reached,
- 				if this pointer is NULL, ignored */
---- a/storage/innobase/mtr/mtr0mtr.cc
-+++ b/storage/innobase/mtr/mtr0mtr.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -58,7 +58,7 @@ mtr_block_dirtied(
- 
- /*****************************************************************//**
- Releases the item in the slot given. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- mtr_memo_slot_release_func(
- /*=======================*/
-@@ -105,7 +105,7 @@ mtr_memo_slot_release_func(
- Releases the mlocks and other objects stored in an mtr memo.
- They are released in the order opposite to which they were pushed
- to the memo. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- mtr_memo_pop_all(
- /*=============*/
-@@ -395,7 +395,7 @@ mtr_read_ulint(
- /*===========*/
- 	const byte*	ptr,	/*!< in: pointer from where to read */
- 	ulint		type,	/*!< in: MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES */
--	mtr_t*		mtr __attribute__((unused)))
-+	mtr_t*		mtr MY_ATTRIBUTE((unused)))
- 				/*!< in: mini-transaction handle */
- {
- 	ut_ad(mtr->state == MTR_ACTIVE);
---- a/storage/innobase/os/os0file.cc
-+++ b/storage/innobase/os/os0file.cc
-@@ -1,6 +1,6 @@
- /***********************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2009, Percona Inc.
- 
- Portions of this file contain modifications contributed and copyrighted
-@@ -1469,11 +1469,11 @@ void
- os_file_set_nocache(
- /*================*/
- 	int		fd		/*!< in: file descriptor to alter */
--					__attribute__((unused)),
-+					MY_ATTRIBUTE((unused)),
- 	const char*	file_name	/*!< in: used in the diagnostic
- 					message */
--					__attribute__((unused)),
--	const char*	operation_name __attribute__((unused)))
-+					MY_ATTRIBUTE((unused)),
-+	const char*	operation_name MY_ATTRIBUTE((unused)))
- 					/*!< in: "open" or "create"; used
- 					in the diagnostic message */
- {
-@@ -2353,7 +2353,7 @@ os_file_flush_func(
- /*******************************************************************//**
- Does a synchronous read operation in Posix.
- @return	number of bytes read, -1 if error */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ssize_t
- os_file_pread(
- /*==========*/
-@@ -2464,7 +2464,7 @@ os_file_pread(
- /*******************************************************************//**
- Does a synchronous write operation in Posix.
- @return	number of bytes written, -1 if error */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ssize_t
- os_file_pwrite(
- /*===========*/
---- a/storage/innobase/page/page0page.cc
-+++ b/storage/innobase/page/page0page.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -304,7 +304,7 @@ byte*
- page_parse_create(
- /*==============*/
- 	byte*		ptr,	/*!< in: buffer */
--	byte*		end_ptr __attribute__((unused)), /*!< in: buffer end */
-+	byte*		end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
- 	ulint		comp,	/*!< in: nonzero=compact page format */
- 	buf_block_t*	block,	/*!< in: block or NULL */
- 	mtr_t*		mtr)	/*!< in: mtr or NULL */
---- a/storage/innobase/page/page0zip.cc
-+++ b/storage/innobase/page/page0zip.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2005, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2005, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2012, Facebook Inc.
- 
- This program is free software; you can redistribute it and/or modify it under
-@@ -119,7 +119,7 @@ Compare at most sizeof(field_ref_zero) bytes.
- independently of any UNIV_ debugging conditions. */
- #if defined UNIV_DEBUG || defined UNIV_ZIP_DEBUG
- # include <stdarg.h>
--__attribute__((format (printf, 1, 2)))
-+MY_ATTRIBUTE((format (printf, 1, 2)))
- /**********************************************************************//**
- Report a failure to decompress or compress.
- @return	number of characters printed */
-@@ -738,8 +738,8 @@ static
- void
- page_zip_free(
- /*==========*/
--	void*	opaque __attribute__((unused)),	/*!< in: memory heap */
--	void*	address __attribute__((unused)))/*!< in: object to free */
-+	void*	opaque MY_ATTRIBUTE((unused)),	/*!< in: memory heap */
-+	void*	address MY_ATTRIBUTE((unused)))/*!< in: object to free */
- {
- }
- 
---- a/storage/innobase/pars/lexyy.cc
-+++ b/storage/innobase/pars/lexyy.cc
-@@ -295,7 +295,7 @@ static int yy_start = 0;	/* start state number */
- static int yy_did_buffer_switch_on_eof;
- 
- void yyrestart (FILE *input_file  );
--__attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-+MY_ATTRIBUTE((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
- static YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
- void yy_delete_buffer (YY_BUFFER_STATE b  );
- void yy_flush_buffer (YY_BUFFER_STATE b  );
-@@ -916,7 +916,7 @@ char *yytext;
- #line 1 "pars0lex.l"
- /*****************************************************************************
- 
--Copyright (c) 1997, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -1027,7 +1027,7 @@ static int yy_init_globals (void );
- /* Accessor methods to globals.
-    These are made visible to non-reentrant scanners for convenience. */
- 
--__attribute__((unused)) static int yylex_destroy (void );
-+MY_ATTRIBUTE((unused)) static int yylex_destroy (void );
- 
- int yyget_debug (void );
- 
-@@ -2664,7 +2664,7 @@ static int yy_get_next_buffer (void)
-  * @param new_buffer The new input buffer.
-  *
-  */
--    __attribute__((unused)) static void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-+    MY_ATTRIBUTE((unused)) static void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
- {
- 
- 	/* TODO. We should be able to replace this entire function body
-@@ -3042,7 +3042,7 @@ static int yy_init_globals (void)
- }
- 
- /* yylex_destroy is for both reentrant and non-reentrant scanners. */
--__attribute__((unused)) static int yylex_destroy  (void)
-+MY_ATTRIBUTE((unused)) static int yylex_destroy  (void)
- {
- 
-     /* Pop the buffer stack, destroying each element. */
---- a/storage/innobase/pars/make_flex.sh
-+++ b/storage/innobase/pars/make_flex.sh
-@@ -1,6 +1,6 @@
- #!/bin/bash
- #
--# Copyright (c) 1994, 2011, Oracle and/or its affiliates. All Rights Reserved.
-+# Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- #
- # This program is free software; you can redistribute it and/or modify it under
- # the terms of the GNU General Public License as published by the Free Software
-@@ -33,15 +33,15 @@ sed -e '
- s/'"$TMPFILE"'/'"$OUTFILE"'/;
- s/\(int offset = \)\((yy_c_buf_p) - (yytext_ptr)\);/\1(int)(\2);/;
- s/\(void yy\(restart\|_\(delete\|flush\)_buffer\)\)/static \1/;
--s/\(void yy_switch_to_buffer\)/__attribute__((unused)) static \1/;
--s/\(void yy\(push\|pop\)_buffer_state\)/__attribute__((unused)) static \1/;
-+s/\(void yy_switch_to_buffer\)/MY_ATTRIBUTE((unused)) static \1/;
-+s/\(void yy\(push\|pop\)_buffer_state\)/MY_ATTRIBUTE((unused)) static \1/;
- s/\(YY_BUFFER_STATE yy_create_buffer\)/static \1/;
--s/\(\(int\|void\) yy[gs]et_\)/__attribute__((unused)) static \1/;
-+s/\(\(int\|void\) yy[gs]et_\)/MY_ATTRIBUTE((unused)) static \1/;
- s/\(void \*\?yy\(\(re\)\?alloc\|free\)\)/static \1/;
- s/\(extern \)\?\(int yy\(leng\|lineno\|_flex_debug\)\)/static \2/;
--s/\(int yylex_destroy\)/__attribute__((unused)) static \1/;
-+s/\(int yylex_destroy\)/MY_ATTRIBUTE((unused)) static \1/;
- s/\(extern \)\?\(int yylex \)/UNIV_INTERN \2/;
--s/^\(\(FILE\|char\) *\* *yyget\)/__attribute__((unused)) static \1/;
-+s/^\(\(FILE\|char\) *\* *yyget\)/MY_ATTRIBUTE((unused)) static \1/;
- s/^\(extern \)\?\(\(FILE\|char\) *\* *yy\)/static \2/;
- ' < $TMPFILE >> $OUTFILE
- 
---- a/storage/innobase/pars/pars0pars.cc
-+++ b/storage/innobase/pars/pars0pars.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -1925,7 +1925,7 @@ pars_create_table(
- 	sym_node_t*	column_defs,	/*!< in: list of column names */
- 	sym_node_t*	compact,	/* in: non-NULL if COMPACT table. */
- 	sym_node_t*	block_size,	/* in: block size (can be NULL) */
--	void*		not_fit_in_memory __attribute__((unused)))
-+	void*		not_fit_in_memory MY_ATTRIBUTE((unused)))
- 					/*!< in: a non-NULL pointer means that
- 					this is a table which in simulations
- 					should be simulated as not fitting
-@@ -2141,7 +2141,7 @@ UNIV_INTERN
- que_fork_t*
- pars_stored_procedure_call(
- /*=======================*/
--	sym_node_t*	sym_node __attribute__((unused)))
-+	sym_node_t*	sym_node MY_ATTRIBUTE((unused)))
- 					/*!< in: stored procedure name */
- {
- 	ut_error;
-@@ -2201,7 +2201,7 @@ UNIV_INTERN
- void
- yyerror(
- /*====*/
--	const char*	s __attribute__((unused)))
-+	const char*	s MY_ATTRIBUTE((unused)))
- 				/*!< in: error message string */
- {
- 	ut_ad(s);
---- a/storage/innobase/rem/rem0cmp.cc
-+++ b/storage/innobase/rem/rem0cmp.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -75,7 +75,7 @@ cmp_debug_dtuple_rec_with_match(
- 				completely  matched fields; when function
- 				returns, contains the value for current
- 				comparison */
--	__attribute__((nonnull, warn_unused_result));
-+	MY_ATTRIBUTE((nonnull, warn_unused_result));
- #endif /* UNIV_DEBUG */
- /*************************************************************//**
- This function is used to compare two data fields for which the data type
-@@ -920,7 +920,7 @@ Compare two physical record fields.
- @retval 1 if rec1 field is greater than rec2
- @retval -1 if rec1 field is less than rec2
- @retval 0 if rec1 field equals to rec2 */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- int
- cmp_rec_rec_simple_field(
- /*=====================*/
---- a/storage/innobase/rem/rem0rec.cc
-+++ b/storage/innobase/rem/rem0rec.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -241,7 +241,7 @@ rec_get_n_extern_new(
- Determine the offset to each field in a leaf-page record
- in ROW_FORMAT=COMPACT.  This is a special case of
- rec_init_offsets() and rec_get_offsets_func(). */
--UNIV_INLINE __attribute__((nonnull))
-+UNIV_INLINE MY_ATTRIBUTE((nonnull))
- void
- rec_init_offsets_comp_ordinary(
- /*===========================*/
-@@ -785,7 +785,7 @@ rec_get_nth_field_offs_old(
- /**********************************************************//**
- Determines the size of a data tuple prefix in ROW_FORMAT=COMPACT.
- @return	total size */
--UNIV_INLINE __attribute__((warn_unused_result, nonnull(1,2)))
-+UNIV_INLINE MY_ATTRIBUTE((warn_unused_result, nonnull(1,2)))
- ulint
- rec_get_converted_size_comp_prefix_low(
- /*===================================*/
-@@ -1130,7 +1130,7 @@ rec_convert_dtuple_to_rec_old(
- 
- /*********************************************************//**
- Builds a ROW_FORMAT=COMPACT record out of a data tuple. */
--UNIV_INLINE __attribute__((nonnull))
-+UNIV_INLINE MY_ATTRIBUTE((nonnull))
- void
- rec_convert_dtuple_to_rec_comp(
- /*===========================*/
---- a/storage/innobase/row/row0ftsort.cc
-+++ b/storage/innobase/row/row0ftsort.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2010, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2010, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -976,7 +976,7 @@ row_fts_start_parallel_merge(
- /********************************************************************//**
- Insert processed FTS data to auxillary index tables.
- @return	DB_SUCCESS if insertion runs fine */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- row_merge_write_fts_word(
- /*=====================*/
---- a/storage/innobase/row/row0import.cc
-+++ b/storage/innobase/row/row0import.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -2179,7 +2179,7 @@ PageConverter::operator() (
- Clean up after import tablespace failure, this function will acquire
- the dictionary latches on behalf of the transaction if the transaction
- hasn't already acquired them. */
--static	__attribute__((nonnull))
-+static	MY_ATTRIBUTE((nonnull))
- void
- row_import_discard_changes(
- /*=======================*/
-@@ -2230,7 +2230,7 @@ row_import_discard_changes(
- 
- /*****************************************************************//**
- Clean up after import tablespace. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_cleanup(
- /*===============*/
-@@ -2265,7 +2265,7 @@ row_import_cleanup(
- 
- /*****************************************************************//**
- Report error during tablespace import. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_error(
- /*=============*/
-@@ -2293,7 +2293,7 @@ row_import_error(
- Adjust the root page index node and leaf node segment headers, update
- with the new space id. For all the table's secondary indexes.
- @return error code */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_adjust_root_pages_of_secondary_indexes(
- /*==============================================*/
-@@ -2409,7 +2409,7 @@ row_import_adjust_root_pages_of_secondary_indexes(
- /*****************************************************************//**
- Ensure that dict_sys->row_id exceeds SELECT MAX(DB_ROW_ID).
- @return error code */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_set_sys_max_row_id(
- /*==========================*/
-@@ -2559,7 +2559,7 @@ row_import_cfg_read_string(
- /*********************************************************************//**
- Write the meta data (index user fields) config file.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_cfg_read_index_fields(
- /*=============================*/
-@@ -2642,7 +2642,7 @@ row_import_cfg_read_index_fields(
- Read the index names and root page numbers of the indexes and set the values.
- Row format [root_page_no, len of str, str ... ]
- @return DB_SUCCESS or error code. */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_read_index_data(
- /*=======================*/
-@@ -2837,7 +2837,7 @@ row_import_read_indexes(
- /*********************************************************************//**
- Read the meta data (table columns) config file. Deserialise the contents of
- dict_col_t structure, along with the column name. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_read_columns(
- /*====================*/
-@@ -2962,7 +2962,7 @@ row_import_read_columns(
- /*****************************************************************//**
- Read the contents of the <tablespace>.cfg file.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_read_v1(
- /*===============*/
-@@ -3128,7 +3128,7 @@ row_import_read_v1(
- /**
- Read the contents of the <tablespace>.cfg file.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_read_meta_data(
- /*======================*/
-@@ -3171,7 +3171,7 @@ row_import_read_meta_data(
- /**
- Read the contents of the <tablename>.cfg file.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_import_read_cfg(
- /*================*/
---- a/storage/innobase/row/row0ins.cc
-+++ b/storage/innobase/row/row0ins.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -224,7 +224,7 @@ Does an insert operation by updating a delete-marked existing record
- in the index. This situation can occur if the delete-marked record is
- kept in the index for consistent reads.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_sec_index_entry_by_modify(
- /*==============================*/
-@@ -319,7 +319,7 @@ Does an insert operation by delete unmarking and updating a delete marked
- existing record in the index. This situation can occur if the delete marked
- record is kept in the index for consistent reads.
- @return	DB_SUCCESS, DB_FAIL, or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_clust_index_entry_by_modify(
- /*================================*/
-@@ -427,7 +427,7 @@ row_ins_cascade_ancestor_updates_table(
- Returns the number of ancestor UPDATE or DELETE nodes of a
- cascaded update/delete node.
- @return	number of ancestors */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ulint
- row_ins_cascade_n_ancestors(
- /*========================*/
-@@ -453,7 +453,7 @@ a cascaded update.
- can also be 0 if no foreign key fields changed; the returned value is
- ULINT_UNDEFINED if the column type in the child table is too short to
- fit the new value in the parent table: that means the update fails */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ulint
- row_ins_cascade_calc_update_vec(
- /*============================*/
-@@ -926,7 +926,7 @@ Perform referential actions or checks when a parent row is deleted or updated
- and the constraint had an ON DELETE or ON UPDATE condition which was not
- RESTRICT.
- @return	DB_SUCCESS, DB_LOCK_WAIT, or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_foreign_check_on_constraint(
- /*================================*/
-@@ -1747,7 +1747,7 @@ Otherwise does searches to the indexes of referenced tables and
- sets shared locks which lock either the success or the failure of
- a constraint.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_check_foreign_constraints(
- /*==============================*/
-@@ -1888,7 +1888,7 @@ Scans a unique non-clustered index at a given index entry to determine
- whether a uniqueness violation has occurred for the key value of the entry.
- Set shared locks on possible duplicate records.
- @return	DB_SUCCESS, DB_DUPLICATE_KEY, or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_scan_sec_index_for_duplicate(
- /*=================================*/
-@@ -2030,7 +2030,7 @@ end_scan:
- @retval DB_SUCCESS_LOCKED_REC	when rec is an exact match of entry or
- a newer version of entry (the entry should not be inserted)
- @retval DB_DUPLICATE_KEY	when entry is a duplicate of rec */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_duplicate_online(
- /*=====================*/
-@@ -2071,7 +2071,7 @@ row_ins_duplicate_online(
- @retval DB_SUCCESS_LOCKED_REC	when rec is an exact match of entry or
- a newer version of entry (the entry should not be inserted)
- @retval DB_DUPLICATE_KEY	when entry is a duplicate of rec */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_duplicate_error_in_clust_online(
- /*====================================*/
-@@ -2114,7 +2114,7 @@ for a clustered index!
- record
- @retval DB_SUCCESS_LOCKED_REC if an exact match of the record was found
- in online table rebuild (flags & (BTR_KEEP_SYS_FLAG | BTR_NO_LOCKING_FLAG)) */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_duplicate_error_in_clust(
- /*=============================*/
-@@ -2532,7 +2532,7 @@ func_exit:
- /***************************************************************//**
- Starts a mini-transaction and checks if the index will be dropped.
- @return true if the index is to be dropped */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_ins_sec_mtr_start_and_check_if_aborted(
- /*=======================================*/
-@@ -2973,7 +2973,7 @@ row_ins_index_entry(
- /***********************************************************//**
- Sets the values of the dtuple fields in entry from the values of appropriate
- columns in row. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_ins_index_entry_set_vals(
- /*=========================*/
-@@ -3026,7 +3026,7 @@ row_ins_index_entry_set_vals(
- Inserts a single index entry to the table.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins_index_entry_step(
- /*=====================*/
-@@ -3149,7 +3149,7 @@ row_ins_get_row_from_select(
- Inserts a row to a table.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_ins(
- /*====*/
---- a/storage/innobase/row/row0log.cc
-+++ b/storage/innobase/row/row0log.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2011, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2011, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -201,7 +201,7 @@ struct row_log_t {
- /** Create the file or online log if it does not exist.
- @param[in,out]	log	online rebuild log
- @return file descriptor. */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- int
- row_log_tmpfile(
- 	row_log_t*	log)
-@@ -217,7 +217,7 @@ row_log_tmpfile(
- /** Allocate the memory for the log buffer.
- @param[in,out]	log_buf	Buffer used for log operation
- @return TRUE if success, false if not */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- bool
- row_log_block_allocate(
- 	row_log_buf_t&	log_buf)
-@@ -407,7 +407,7 @@ row_log_table_get_error(
- /******************************************************//**
- Starts logging an operation to a table that is being rebuilt.
- @return pointer to log, or NULL if no logging is necessary */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- byte*
- row_log_table_open(
- /*===============*/
-@@ -442,7 +442,7 @@ err_exit:
- 
- /******************************************************//**
- Stops logging an operation to a table that is being rebuilt. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_log_table_close_func(
- /*=====================*/
-@@ -812,7 +812,7 @@ row_log_table_low_redundant(
- 
- /******************************************************//**
- Logs an insert or update to a table that is being rebuilt. */
--static __attribute__((nonnull(1,2,3)))
-+static MY_ATTRIBUTE((nonnull(1,2,3)))
- void
- row_log_table_low(
- /*==============*/
-@@ -1312,7 +1312,7 @@ row_log_table_blob_alloc(
- /******************************************************//**
- Converts a log record to a table row.
- @return converted row, or NULL if the conversion fails */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const dtuple_t*
- row_log_table_apply_convert_mrec(
- /*=============================*/
-@@ -1466,7 +1466,7 @@ blob_done:
- /******************************************************//**
- Replays an insert operation on a table that was rebuilt.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_log_table_apply_insert_low(
- /*===========================*/
-@@ -1548,7 +1548,7 @@ row_log_table_apply_insert_low(
- /******************************************************//**
- Replays an insert operation on a table that was rebuilt.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_log_table_apply_insert(
- /*=======================*/
-@@ -1600,7 +1600,7 @@ row_log_table_apply_insert(
- /******************************************************//**
- Deletes a record from a table that is being rebuilt.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull(1, 2, 4, 5), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1, 2, 4, 5), warn_unused_result))
- dberr_t
- row_log_table_apply_delete_low(
- /*===========================*/
-@@ -1698,7 +1698,7 @@ flag_ok:
- /******************************************************//**
- Replays a delete operation on a table that was rebuilt.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull(1, 3, 4, 5, 6, 7), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1, 3, 4, 5, 6, 7), warn_unused_result))
- dberr_t
- row_log_table_apply_delete(
- /*=======================*/
-@@ -1820,7 +1820,7 @@ all_done:
- /******************************************************//**
- Replays an update operation on a table that was rebuilt.
- @return DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_log_table_apply_update(
- /*=======================*/
-@@ -2183,7 +2183,7 @@ func_exit_committed:
- Applies an operation to a table that was rebuilt.
- @return NULL on failure (mrec corruption) or when out of data;
- pointer to next record on success */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const mrec_t*
- row_log_table_apply_op(
- /*===================*/
-@@ -2474,7 +2474,7 @@ row_log_table_apply_op(
- /******************************************************//**
- Applies operations to a table was rebuilt.
- @return DB_SUCCESS, or error code on failure */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_log_table_apply_ops(
- /*====================*/
-@@ -2971,7 +2971,7 @@ row_log_get_max_trx(
- 
- /******************************************************//**
- Applies an operation to a secondary index that was being created. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_log_apply_op_low(
- /*=================*/
-@@ -3198,7 +3198,7 @@ func_exit:
- Applies an operation to a secondary index that was being created.
- @return NULL on failure (mrec corruption) or when out of data;
- pointer to next record on success */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- const mrec_t*
- row_log_apply_op(
- /*=============*/
-@@ -3323,7 +3323,7 @@ corrupted:
- /******************************************************//**
- Applies operations to a secondary index that was being created.
- @return DB_SUCCESS, or error code on failure */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- row_log_apply_ops(
- /*==============*/
---- a/storage/innobase/row/row0merge.cc
-+++ b/storage/innobase/row/row0merge.cc
-@@ -70,7 +70,7 @@ UNIV_INTERN char	srv_disable_sort_file_cache;
- #ifdef UNIV_DEBUG
- /******************************************************//**
- Display a merge tuple. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_merge_tuple_print(
- /*==================*/
-@@ -105,7 +105,7 @@ row_merge_tuple_print(
- 
- /******************************************************//**
- Encode an index record. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_merge_buf_encode(
- /*=================*/
-@@ -142,7 +142,7 @@ row_merge_buf_encode(
- /******************************************************//**
- Allocate a sort buffer.
- @return	own: sort buffer */
--static __attribute__((malloc, nonnull))
-+static MY_ATTRIBUTE((malloc, nonnull))
- row_merge_buf_t*
- row_merge_buf_create_low(
- /*=====================*/
-@@ -642,7 +642,7 @@ row_merge_dup_report(
- /*************************************************************//**
- Compare two tuples.
- @return	1, 0, -1 if a is greater, equal, less, respectively, than b */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- int
- row_merge_tuple_cmp(
- /*================*/
-@@ -721,7 +721,7 @@ UT_SORT_FUNCTION_BODY().
- 
- /**********************************************************************//**
- Merge sort the tuple buffer in main memory. */
--static __attribute__((nonnull(4,5)))
-+static MY_ATTRIBUTE((nonnull(4,5)))
- void
- row_merge_tuple_sort(
- /*=================*/
-@@ -1245,7 +1245,7 @@ row_merge_write_eof(
- @param[in,out]	tmpfd	temporary file handle
- @param[in]	path	path to create temporary file
- @return file descriptor, or -1 on failure */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- int
- row_merge_tmpfile_if_needed(
- 	int*		tmpfd,
-@@ -1264,7 +1264,7 @@ row_merge_tmpfile_if_needed(
- @param[in]	nrec	number of records in the file
- @param[in]	path	path to create temporary files
- @return file descriptor, or -1 on failure */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- int
- row_merge_file_create_if_needed(
- 	merge_file_t*	file,
-@@ -1310,7 +1310,7 @@ containing the index entries for the indexes to be built.
- @param[in,out] block		file buffer
- @param[in,out] tmpfd		temporary file handle
- return	DB_SUCCESS or error */
--static __attribute__((nonnull(1,2,3,4,6,9,10,16), warn_unused_result))
-+static MY_ATTRIBUTE((nonnull(1,2,3,4,6,9,10,16), warn_unused_result))
- dberr_t
- row_merge_read_clustered_index(
- 	trx_t*			trx,
-@@ -2028,7 +2028,7 @@ wait_again:
- /*************************************************************//**
- Merge two blocks of records on disk and write a bigger block.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_merge_blocks(
- /*=============*/
-@@ -2139,7 +2139,7 @@ done1:
- /*************************************************************//**
- Copy a block of index entries.
- @return	TRUE on success, FALSE on failure */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ibool
- row_merge_blocks_copy(
- /*==================*/
-@@ -2212,7 +2212,7 @@ done0:
- /*************************************************************//**
- Merge disk files.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- dberr_t
- row_merge(
- /*======*/
-@@ -2398,7 +2398,7 @@ row_merge_sort(
- 
- /*************************************************************//**
- Copy externally stored columns to the data tuple. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_merge_copy_blobs(
- /*=================*/
-@@ -2443,7 +2443,7 @@ row_merge_copy_blobs(
- Read sorted file containing index data tuples and insert these data
- tuples to the index
- @return	DB_SUCCESS or error number */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_merge_insert_index_tuples(
- /*==========================*/
-@@ -3456,7 +3456,7 @@ row_merge_rename_tables_dict(
- /*********************************************************************//**
- Create and execute a query graph for creating an index.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_merge_create_index_graph(
- /*=========================*/
---- a/storage/innobase/row/row0mysql.cc
-+++ b/storage/innobase/row/row0mysql.cc
-@@ -4476,7 +4476,7 @@ row_mysql_drop_temp_tables(void)
- Drop all foreign keys in a database, see Bug#18942.
- Called at the end of row_drop_database_for_mysql().
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- drop_all_foreign_keys_in_db(
- /*========================*/
-@@ -4668,7 +4668,7 @@ loop:
- Checks if a table name contains the string "/#sql" which denotes temporary
- tables in MySQL.
- @return	true if temporary table */
--UNIV_INTERN __attribute__((warn_unused_result))
-+UNIV_INTERN MY_ATTRIBUTE((warn_unused_result))
- bool
- row_is_mysql_tmp_table_name(
- /*========================*/
-@@ -4682,7 +4682,7 @@ row_is_mysql_tmp_table_name(
- /****************************************************************//**
- Delete a single constraint.
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_delete_constraint_low(
- /*======================*/
-@@ -4705,7 +4705,7 @@ row_delete_constraint_low(
- /****************************************************************//**
- Delete a single constraint.
- @return	error code or DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_delete_constraint(
- /*==================*/
---- a/storage/innobase/row/row0purge.cc
-+++ b/storage/innobase/row/row0purge.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -120,7 +120,7 @@ row_purge_reposition_pcur(
- Removes a delete marked clustered index record if possible.
- @retval true if the row was not found, or it was successfully removed
- @retval false if the row was modified after the delete marking */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_purge_remove_clust_if_poss_low(
- /*===============================*/
-@@ -202,7 +202,7 @@ marking.
- @retval true if the row was not found, or it was successfully removed
- @retval false the purge needs to be suspended because of running out
- of file space. */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_purge_remove_clust_if_poss(
- /*===========================*/
-@@ -274,7 +274,7 @@ row_purge_poss_sec(
- Removes a secondary index entry if possible, by modifying the
- index tree.  Does not try to buffer the delete.
- @return	TRUE if success or if not found */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- ibool
- row_purge_remove_sec_if_poss_tree(
- /*==============================*/
-@@ -396,7 +396,7 @@ Removes a secondary index entry without modifying the index tree,
- if possible.
- @retval	true if success or if not found
- @retval	false if row_purge_remove_sec_if_poss_tree() should be invoked */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_purge_remove_sec_if_poss_leaf(
- /*==============================*/
-@@ -507,7 +507,7 @@ row_purge_remove_sec_if_poss_leaf(
- 
- /***********************************************************//**
- Removes a secondary index entry if possible. */
--UNIV_INLINE __attribute__((nonnull(1,2)))
-+UNIV_INLINE MY_ATTRIBUTE((nonnull(1,2)))
- void
- row_purge_remove_sec_if_poss(
- /*=========================*/
-@@ -554,7 +554,7 @@ Purges a delete marking of a record.
- @retval true if the row was not found, or it was successfully removed
- @retval false the purge needs to be suspended because of
- running out of file space */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_purge_del_mark(
- /*===============*/
-@@ -830,7 +830,7 @@ err_exit:
- /***********************************************************//**
- Purges the parsed record.
- @return true if purged, false if skipped */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- row_purge_record_func(
- /*==================*/
-@@ -895,7 +895,7 @@ row_purge_record_func(
- Fetches an undo log record and does the purge for the recorded operation.
- If none left, or the current purge completed, returns the control to the
- parent node, which is always a query thread node. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_purge(
- /*======*/
---- a/storage/innobase/row/row0quiesce.cc
-+++ b/storage/innobase/row/row0quiesce.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 2012, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 2012, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -37,7 +37,7 @@ Created 2012-02-08 by Sunny Bains.
- /*********************************************************************//**
- Write the meta data (index user fields) config file.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_quiesce_write_index_fields(
- /*===========================*/
-@@ -97,7 +97,7 @@ row_quiesce_write_index_fields(
- /*********************************************************************//**
- Write the meta data config file index information.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_quiesce_write_indexes(
- /*======================*/
-@@ -210,7 +210,7 @@ Write the meta data (table columns) config file. Serialise the contents of
- dict_col_t structure, along with the column name. All fields are serialized
- as ib_uint32_t.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_quiesce_write_table(
- /*====================*/
-@@ -293,7 +293,7 @@ row_quiesce_write_table(
- /*********************************************************************//**
- Write the meta data config file header.
- @return DB_SUCCESS or error code. */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_quiesce_write_header(
- /*=====================*/
-@@ -415,7 +415,7 @@ row_quiesce_write_header(
- /*********************************************************************//**
- Write the table meta data after quiesce.
- @return DB_SUCCESS or error code */
--static	__attribute__((nonnull, warn_unused_result))
-+static	MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_quiesce_write_cfg(
- /*==================*/
---- a/storage/innobase/row/row0sel.cc
-+++ b/storage/innobase/row/row0sel.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -675,7 +675,7 @@ sel_enqueue_prefetched_row(
- /*********************************************************************//**
- Builds a previous version of a clustered index record for a consistent read
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_sel_build_prev_vers(
- /*====================*/
-@@ -710,7 +710,7 @@ row_sel_build_prev_vers(
- /*********************************************************************//**
- Builds the last committed version of a clustered index record for a
- semi-consistent read. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_sel_build_committed_vers_for_mysql(
- /*===================================*/
-@@ -808,7 +808,7 @@ row_sel_test_other_conds(
- Retrieves the clustered index record corresponding to a record in a
- non-clustered index. Does the necessary locking.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_sel_get_clust_rec(
- /*==================*/
-@@ -1312,7 +1312,7 @@ func_exit:
- /*********************************************************************//**
- Performs a select step.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_sel(
- /*====*/
-@@ -2563,7 +2563,7 @@ row_sel_store_row_id_to_prebuilt(
- /**************************************************************//**
- Stores a non-SQL-NULL field in the MySQL format. The counterpart of this
- function is row_mysql_store_col_in_innobase_format() in row0mysql.cc. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_sel_field_store_in_mysql_format_func(
- /*=====================================*/
-@@ -2752,7 +2752,7 @@ row_sel_field_store_in_mysql_format_func(
- #endif /* UNIV_DEBUG */
- /**************************************************************//**
- Convert a field in the Innobase format to a field in the MySQL format. */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- ibool
- row_sel_store_mysql_field_func(
- /*===========================*/
-@@ -2902,7 +2902,7 @@ Note that the template in prebuilt may advise us to copy only a few
- columns to mysql_rec, other columns are left blank. All columns may not
- be needed in the query.
- @return TRUE on success, FALSE if not all columns could be retrieved */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- ibool
- row_sel_store_mysql_rec(
- /*====================*/
-@@ -2964,7 +2964,7 @@ row_sel_store_mysql_rec(
- /*********************************************************************//**
- Builds a previous version of a clustered index record for a consistent read
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_sel_build_prev_vers_for_mysql(
- /*==============================*/
-@@ -3001,7 +3001,7 @@ Retrieves the clustered index record corresponding to a record in a
- non-clustered index. Does the necessary locking. Used in the MySQL
- interface.
- @return	DB_SUCCESS, DB_SUCCESS_LOCKED_REC, or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_sel_get_clust_rec_for_mysql(
- /*============================*/
---- a/storage/innobase/row/row0uins.cc
-+++ b/storage/innobase/row/row0uins.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -61,7 +61,7 @@ introduced where a call to log_free_check() is bypassed. */
- Removes a clustered index record. The pcur in node was positioned on the
- record, now it is detached.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static  __attribute__((nonnull, warn_unused_result))
-+static  MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_ins_remove_clust_rec(
- /*==========================*/
-@@ -176,7 +176,7 @@ func_exit:
- /***************************************************************//**
- Removes a secondary index entry if found.
- @return	DB_SUCCESS, DB_FAIL, or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_ins_remove_sec_low(
- /*========================*/
-@@ -251,7 +251,7 @@ func_exit_no_pcur:
- Removes a secondary index entry from the index if found. Tries first
- optimistic, then pessimistic descent down the tree.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_ins_remove_sec(
- /*====================*/
-@@ -350,7 +350,7 @@ close_table:
- /***************************************************************//**
- Removes secondary index records.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_ins_remove_sec_rec(
- /*========================*/
---- a/storage/innobase/row/row0umod.cc
-+++ b/storage/innobase/row/row0umod.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -72,7 +72,7 @@ introduced where a call to log_free_check() is bypassed. */
- /***********************************************************//**
- Undoes a modify in a clustered index record.
- @return	DB_SUCCESS, DB_FAIL, or error code: we may run out of file space */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_clust_low(
- /*===================*/
-@@ -154,7 +154,7 @@ This is attempted when the record was inserted by updating a
- delete-marked record and there no longer exist transactions
- that would see the delete-marked record.
- @return	DB_SUCCESS, DB_FAIL, or error code: we may run out of file space */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_remove_clust_low(
- /*==========================*/
-@@ -243,7 +243,7 @@ row_undo_mod_remove_clust_low(
- Undoes a modify in a clustered index record. Sets also the node state for the
- next round of undo.
- @return	DB_SUCCESS or error code: we may run out of file space */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_clust(
- /*===============*/
-@@ -380,7 +380,7 @@ row_undo_mod_clust(
- /***********************************************************//**
- Delete marks or removes a secondary index entry if found.
- @return	DB_SUCCESS, DB_FAIL, or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_del_mark_or_remove_sec_low(
- /*====================================*/
-@@ -516,7 +516,7 @@ not cause problems because in row0sel.cc, in queries we always retrieve the
- clustered index record or an earlier version of it, if the secondary index
- record through which we do the search is delete-marked.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_del_mark_or_remove_sec(
- /*================================*/
-@@ -549,7 +549,7 @@ fields but alphabetically they stayed the same, e.g., 'abc' -> 'aBc'.
- @retval	DB_OUT_OF_FILE_SPACE when running out of tablespace
- @retval	DB_DUPLICATE_KEY if the value was missing
- 	and an insert would lead to a duplicate exists */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_del_unmark_sec_and_undo_update(
- /*========================================*/
-@@ -745,7 +745,7 @@ func_exit_no_pcur:
- 
- /***********************************************************//**
- Flags a secondary index corrupted. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_undo_mod_sec_flag_corrupted(
- /*============================*/
-@@ -777,7 +777,7 @@ row_undo_mod_sec_flag_corrupted(
- /***********************************************************//**
- Undoes a modify in secondary indexes when undo record type is UPD_DEL.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_upd_del_sec(
- /*=====================*/
-@@ -844,7 +844,7 @@ row_undo_mod_upd_del_sec(
- /***********************************************************//**
- Undoes a modify in secondary indexes when undo record type is DEL_MARK.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_del_mark_sec(
- /*======================*/
-@@ -912,7 +912,7 @@ row_undo_mod_del_mark_sec(
- /***********************************************************//**
- Undoes a modify in secondary indexes when undo record type is UPD_EXIST.
- @return	DB_SUCCESS or DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo_mod_upd_exist_sec(
- /*=======================*/
-@@ -1028,7 +1028,7 @@ row_undo_mod_upd_exist_sec(
- 
- /***********************************************************//**
- Parses the row reference and other info in a modify undo log record. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- row_undo_mod_parse_undo_rec(
- /*========================*/
---- a/storage/innobase/row/row0undo.cc
-+++ b/storage/innobase/row/row0undo.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -245,7 +245,7 @@ Fetches an undo log record and does the undo for the recorded operation.
- If none left, or a partial rollback completed, returns control to the
- parent node, which is always a query thread node.
- @return	DB_SUCCESS if operation successfully completed, else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_undo(
- /*=====*/
---- a/storage/innobase/row/row0upd.cc
-+++ b/storage/innobase/row/row0upd.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -170,7 +170,7 @@ NOTE that this function will temporarily commit mtr and lose the
- pcur position!
- 
- @return	DB_SUCCESS or an error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_check_references_constraints(
- /*=================================*/
-@@ -607,7 +607,7 @@ row_upd_write_sys_vals_to_log(
- 	roll_ptr_t	roll_ptr,/*!< in: roll ptr of the undo log record */
- 	byte*		log_ptr,/*!< pointer to a buffer of size > 20 opened
- 				in mlog */
--	mtr_t*		mtr __attribute__((unused))) /*!< in: mtr */
-+	mtr_t*		mtr MY_ATTRIBUTE((unused))) /*!< in: mtr */
- {
- 	ut_ad(dict_index_is_clust(index));
- 	ut_ad(mtr);
-@@ -1642,7 +1642,7 @@ row_upd_store_row(
- Updates a secondary index entry of a row.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_sec_index_entry(
- /*====================*/
-@@ -1844,7 +1844,7 @@ Updates the secondary index record if it is changed in the row update or
- deletes it if this is a delete.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_sec_step(
- /*=============*/
-@@ -1877,7 +1877,7 @@ updated. We must mark them as inherited in entry, so that they are not
- freed in a rollback. A limited version of this function used to be
- called btr_cur_mark_dtuple_inherited_extern().
- @return TRUE if any columns were inherited */
--static __attribute__((warn_unused_result))
-+static MY_ATTRIBUTE((warn_unused_result))
- ibool
- row_upd_clust_rec_by_insert_inherit_func(
- /*=====================================*/
-@@ -1956,7 +1956,7 @@ fields of the clustered index record change. This should be quite rare in
- database applications.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_clust_rec_by_insert(
- /*========================*/
-@@ -2081,7 +2081,7 @@ Updates a clustered index record of a row when the ordering fields do
- not change.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_clust_rec(
- /*==============*/
-@@ -2240,7 +2240,7 @@ func_exit:
- /***********************************************************//**
- Delete marks a clustered index record.
- @return	DB_SUCCESS if operation successfully completed, else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_del_mark_clust_rec(
- /*=======================*/
-@@ -2292,7 +2292,7 @@ row_upd_del_mark_clust_rec(
- Updates the clustered index record.
- @return DB_SUCCESS if operation successfully completed, DB_LOCK_WAIT
- in case of a lock wait, else error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd_clust_step(
- /*===============*/
-@@ -2488,7 +2488,7 @@ to this node, we assume that we have a persistent cursor which was on a
- record, and the position of the cursor is stored in the cursor.
- @return DB_SUCCESS if operation successfully completed, else error
- code or DB_LOCK_WAIT */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- row_upd(
- /*====*/
---- a/storage/innobase/srv/srv0srv.cc
-+++ b/storage/innobase/srv/srv0srv.cc
-@@ -1497,7 +1497,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_monitor_thread)(
- /*===============================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
-@@ -1674,7 +1674,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_error_monitor_thread)(
- /*=====================================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
-@@ -2310,7 +2310,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_master_thread)(
- /*==============================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
-@@ -2454,7 +2454,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_worker_thread)(
- /*==============================*/
--	void*	arg __attribute__((unused)))	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)))	/*!< in: a dummy parameter
- 						required by os_thread_create */
- {
- 	srv_slot_t*	slot;
-@@ -2712,7 +2712,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(srv_purge_coordinator_thread)(
- /*=========================================*/
--	void*	arg __attribute__((unused)))	/*!< in: a dummy parameter
-+	void*	arg MY_ATTRIBUTE((unused)))	/*!< in: a dummy parameter
- 						required by os_thread_create */
- {
- 	srv_slot_t*	slot;
---- a/storage/innobase/srv/srv0start.cc
-+++ b/storage/innobase/srv/srv0start.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
- Copyright (c) 2008, Google Inc.
- Copyright (c) 2009, Percona Inc.
- 
-@@ -509,7 +509,7 @@ UNIV_INTERN
- void
- srv_normalize_path_for_win(
- /*=======================*/
--	char*	str __attribute__((unused)))	/*!< in/out: null-terminated
-+	char*	str MY_ATTRIBUTE((unused)))	/*!< in/out: null-terminated
- 						character string */
- {
- #ifdef __WIN__
-@@ -526,7 +526,7 @@ srv_normalize_path_for_win(
- /*********************************************************************//**
- Creates a log file.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- create_log_file(
- /*============*/
-@@ -733,7 +733,7 @@ create_log_files_rename(
- /*********************************************************************//**
- Opens a log file.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- open_log_file(
- /*==========*/
-@@ -761,7 +761,7 @@ open_log_file(
- /*********************************************************************//**
- Creates or opens database data files and closes them.
- @return	DB_SUCCESS or error code */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- open_or_create_data_files(
- /*======================*/
---- a/storage/innobase/sync/sync0sync.cc
-+++ b/storage/innobase/sync/sync0sync.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1995, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved.
- Copyright (c) 2008, Google Inc.
- 
- Portions of this file contain modifications contributed and copyrighted by
-@@ -387,10 +387,10 @@ ulint
- mutex_enter_nowait_func(
- /*====================*/
- 	ib_mutex_t*	mutex,		/*!< in: pointer to mutex */
--	const char*	file_name __attribute__((unused)),
-+	const char*	file_name MY_ATTRIBUTE((unused)),
- 					/*!< in: file name where mutex
- 					requested */
--	ulint		line __attribute__((unused)))
-+	ulint		line MY_ATTRIBUTE((unused)))
- 					/*!< in: line where requested */
- {
- 	ut_ad(mutex_validate(mutex));
---- a/storage/innobase/trx/trx0purge.cc
-+++ b/storage/innobase/trx/trx0purge.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -913,7 +913,7 @@ Fetches the next undo log record from the history list to purge. It must be
- released with the corresponding release function.
- @return copy of an undo log record or pointer to trx_purge_dummy_rec,
- if the whole undo log can skipped in purge; NULL if none left */
--static __attribute__((warn_unused_result, nonnull))
-+static MY_ATTRIBUTE((warn_unused_result, nonnull))
- trx_undo_rec_t*
- trx_purge_fetch_next_rec(
- /*=====================*/
---- a/storage/innobase/trx/trx0rec.cc
-+++ b/storage/innobase/trx/trx0rec.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -1132,7 +1132,7 @@ trx_undo_rec_get_partial_row(
- /***********************************************************************//**
- Erases the unused undo log page end.
- @return TRUE if the page contained something, FALSE if it was empty */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- ibool
- trx_undo_erase_page_end(
- /*====================*/
-@@ -1158,7 +1158,7 @@ byte*
- trx_undo_parse_erase_page_end(
- /*==========================*/
- 	byte*	ptr,	/*!< in: buffer */
--	byte*	end_ptr __attribute__((unused)), /*!< in: buffer end */
-+	byte*	end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
- 	page_t*	page,	/*!< in: page or NULL */
- 	mtr_t*	mtr)	/*!< in: mtr or NULL */
- {
-@@ -1441,7 +1441,7 @@ NOTE: the caller must have latches on the clustered index page.
- @retval true if the undo log has been
- truncated and we cannot fetch the old version
- @retval false if the undo log record is available  */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- bool
- trx_undo_get_undo_rec(
- /*==================*/
-@@ -1469,7 +1469,7 @@ trx_undo_get_undo_rec(
- #ifdef UNIV_DEBUG
- #define ATTRIB_USED_ONLY_IN_DEBUG
- #else /* UNIV_DEBUG */
--#define ATTRIB_USED_ONLY_IN_DEBUG	__attribute__((unused))
-+#define ATTRIB_USED_ONLY_IN_DEBUG	MY_ATTRIBUTE((unused))
- #endif /* UNIV_DEBUG */
- 
- /*******************************************************************//**
---- a/storage/innobase/trx/trx0roll.cc
-+++ b/storage/innobase/trx/trx0roll.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -336,7 +336,7 @@ the row, these locks are naturally released in the rollback. Savepoints which
- were set after this savepoint are deleted.
- @return if no savepoint of the name found then DB_NO_SAVEPOINT,
- otherwise DB_SUCCESS */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- trx_rollback_to_savepoint_for_mysql_low(
- /*====================================*/
-@@ -796,7 +796,7 @@ extern "C" UNIV_INTERN
- os_thread_ret_t
- DECLARE_THREAD(trx_rollback_or_clean_all_recovered)(
- /*================================================*/
--	void*	arg __attribute__((unused)))
-+	void*	arg MY_ATTRIBUTE((unused)))
- 			/*!< in: a dummy parameter required by
- 			os_thread_create */
- {
---- a/storage/innobase/trx/trx0trx.cc
-+++ b/storage/innobase/trx/trx0trx.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -959,7 +959,7 @@ trx_serialisation_number_get(
- /****************************************************************//**
- Assign the transaction its history serialisation number and write the
- update UNDO log record to the assigned rollback segment. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- trx_write_serialisation_history(
- /*============================*/
-@@ -1030,7 +1030,7 @@ trx_write_serialisation_history(
- 
- /********************************************************************
- Finalize a transaction containing updates for a FTS table. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- trx_finalize_for_fts_table(
- /*=======================*/
-@@ -1063,7 +1063,7 @@ trx_finalize_for_fts_table(
- 
- /******************************************************************//**
- Finalize a transaction containing updates to FTS tables. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- trx_finalize_for_fts(
- /*=================*/
-@@ -1130,7 +1130,7 @@ trx_flush_log_if_needed_low(
- /**********************************************************************//**
- If required, flushes the log to disk based on the value of
- innodb_flush_log_at_trx_commit. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- trx_flush_log_if_needed(
- /*====================*/
-@@ -1145,7 +1145,7 @@ trx_flush_log_if_needed(
- 
- /****************************************************************//**
- Commits a transaction in memory. */
--static __attribute__((nonnull))
-+static MY_ATTRIBUTE((nonnull))
- void
- trx_commit_in_memory(
- /*=================*/
-@@ -2136,7 +2136,7 @@ which is in the prepared state
- @return	trx on match, the trx->xid will be invalidated;
- note that the trx may have been committed, unless the caller is
- holding lock_sys->mutex */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- trx_t*
- trx_get_trx_by_xid_low(
- /*===================*/
---- a/storage/innobase/trx/trx0undo.cc
-+++ b/storage/innobase/trx/trx0undo.cc
-@@ -1,6 +1,6 @@
- /*****************************************************************************
- 
--Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved.
-+Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
- 
- This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
-@@ -419,11 +419,11 @@ trx_undo_page_init(
- Creates a new undo log segment in file.
- @return DB_SUCCESS if page creation OK possible error codes are:
- DB_TOO_MANY_CONCURRENT_TRXS DB_OUT_OF_FILE_SPACE */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- trx_undo_seg_create(
- /*================*/
--	trx_rseg_t*	rseg __attribute__((unused)),/*!< in: rollback segment */
-+	trx_rseg_t*	rseg MY_ATTRIBUTE((unused)),/*!< in: rollback segment */
- 	trx_rsegf_t*	rseg_hdr,/*!< in: rollback segment header, page
- 				x-latched */
- 	ulint		type,	/*!< in: type of the segment: TRX_UNDO_INSERT or
-@@ -827,7 +827,7 @@ byte*
- trx_undo_parse_discard_latest(
- /*==========================*/
- 	byte*	ptr,	/*!< in: buffer */
--	byte*	end_ptr __attribute__((unused)), /*!< in: buffer end */
-+	byte*	end_ptr MY_ATTRIBUTE((unused)), /*!< in: buffer end */
- 	page_t*	page,	/*!< in: page or NULL */
- 	mtr_t*	mtr)	/*!< in: mtr or NULL */
- {
-@@ -1557,7 +1557,7 @@ Creates a new undo log.
- @return DB_SUCCESS if successful in creating the new undo lob object,
- possible error codes are: DB_TOO_MANY_CONCURRENT_TRXS
- DB_OUT_OF_FILE_SPACE DB_OUT_OF_MEMORY */
--static __attribute__((nonnull, warn_unused_result))
-+static MY_ATTRIBUTE((nonnull, warn_unused_result))
- dberr_t
- trx_undo_create(
- /*============*/
---- a/storage/myisam/ft_boolean_search.c
-+++ b/storage/myisam/ft_boolean_search.c
-@@ -332,7 +332,7 @@ static int _ftb_parse_query(FTB *ftb, uchar *query, uint len,
- }
- 
- 
--static int _ftb_no_dupes_cmp(const void* not_used __attribute__((unused)),
-+static int _ftb_no_dupes_cmp(const void* not_used MY_ATTRIBUTE((unused)),
-                              const void *a,const void *b)
- {
-   return CMP_NUM((*((my_off_t*)a)), (*((my_off_t*)b)));
-@@ -643,7 +643,7 @@ typedef struct st_my_ftb_phrase_param
- 
- static int ftb_phrase_add_word(MYSQL_FTPARSER_PARAM *param,
-                                char *word, int word_len,
--    MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info __attribute__((unused)))
-+    MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info MY_ATTRIBUTE((unused)))
- {
-   MY_FTB_PHRASE_PARAM *phrase_param= param->mysql_ftparam;
-   FT_WORD *w= (FT_WORD *)phrase_param->document->data;
-@@ -901,7 +901,7 @@ typedef struct st_my_ftb_find_param
- 
- static int ftb_find_relevance_add_word(MYSQL_FTPARSER_PARAM *param,
-                                        char *word, int len,
--             MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info __attribute__((unused)))
-+             MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info MY_ATTRIBUTE((unused)))
- {
-   MY_FTB_FIND_PARAM *ftb_param= param->mysql_ftparam;
-   FT_INFO *ftb= ftb_param->ftb;
---- a/storage/myisam/ft_nlq_search.c
-+++ b/storage/myisam/ft_nlq_search.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -51,7 +51,7 @@ typedef struct st_ft_superdoc
-     double   tmp_weight;
- } FT_SUPERDOC;
- 
--static int FT_SUPERDOC_cmp(void* cmp_arg __attribute__((unused)),
-+static int FT_SUPERDOC_cmp(void* cmp_arg MY_ATTRIBUTE((unused)),
- 			   FT_SUPERDOC *p1, FT_SUPERDOC *p2)
- {
-   if (p1->doc.dpos < p2->doc.dpos)
-@@ -189,7 +189,7 @@ do_skip:
- 
- 
- static int walk_and_copy(FT_SUPERDOC *from,
--			 uint32 count __attribute__((unused)), FT_DOC **to)
-+			 uint32 count MY_ATTRIBUTE((unused)), FT_DOC **to)
- {
-   DBUG_ENTER("walk_and_copy");
-   from->doc.weight+=from->tmp_weight*from->word_ptr->weight;
-@@ -200,7 +200,7 @@ static int walk_and_copy(FT_SUPERDOC *from,
- }
- 
- static int walk_and_push(FT_SUPERDOC *from,
--			 uint32 count __attribute__((unused)), QUEUE *best)
-+			 uint32 count MY_ATTRIBUTE((unused)), QUEUE *best)
- {
-   DBUG_ENTER("walk_and_copy");
-   from->doc.weight+=from->tmp_weight*from->word_ptr->weight;
-@@ -210,7 +210,7 @@ static int walk_and_push(FT_SUPERDOC *from,
- }
- 
- 
--static int FT_DOC_cmp(void *unused __attribute__((unused)),
-+static int FT_DOC_cmp(void *unused MY_ATTRIBUTE((unused)),
-                       FT_DOC *a, FT_DOC *b)
- {
-   double c= b->weight - a->weight;
-@@ -345,8 +345,8 @@ int ft_nlq_read_next(FT_INFO *handler, char *record)
- 
- 
- float ft_nlq_find_relevance(FT_INFO *handler,
--			    uchar *record __attribute__((unused)),
--			    uint length __attribute__((unused)))
-+			    uchar *record MY_ATTRIBUTE((unused)),
-+			    uint length MY_ATTRIBUTE((unused)))
- {
-   int a,b,c;
-   FT_DOC  *docs=handler->doc;
---- a/storage/myisam/ft_parser.c
-+++ b/storage/myisam/ft_parser.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights
-    reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -259,7 +259,7 @@ void ft_parse_init(TREE *wtree, const CHARSET_INFO *cs)
- 
- static int ft_add_word(MYSQL_FTPARSER_PARAM *param,
-                        char *word, int word_len,
--             MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info __attribute__((unused)))
-+             MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info MY_ATTRIBUTE((unused)))
- {
-   TREE *wtree;
-   FT_WORD w;
---- a/storage/myisam/ft_stopwords.c
-+++ b/storage/myisam/ft_stopwords.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -30,7 +30,7 @@ typedef struct st_ft_stopwords
- 
- static TREE *stopwords3=NULL;
- 
--static int FT_STOPWORD_cmp(void* cmp_arg __attribute__((unused)),
-+static int FT_STOPWORD_cmp(void* cmp_arg MY_ATTRIBUTE((unused)),
- 			   FT_STOPWORD *w1, FT_STOPWORD *w2)
- {
-   return ha_compare_text(ft_stopword_cs,
-@@ -39,7 +39,7 @@ static int FT_STOPWORD_cmp(void* cmp_arg __attribute__((unused)),
- }
- 
- static void FT_STOPWORD_free(FT_STOPWORD *w, TREE_FREE action,
--                             void *arg __attribute__((unused)))
-+                             void *arg MY_ATTRIBUTE((unused)))
- {
-   if (action == free_free)
-     my_free((void*)w->pos);
---- a/storage/myisam/ha_myisam.cc
-+++ b/storage/myisam/ha_myisam.cc
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1725,8 +1725,8 @@ int ha_myisam::index_last(uchar *buf)
- }
- 
- int ha_myisam::index_next_same(uchar *buf,
--			       const uchar *key __attribute__((unused)),
--			       uint length __attribute__((unused)))
-+			       const uchar *key MY_ATTRIBUTE((unused)),
-+			       uint length MY_ATTRIBUTE((unused)))
- {
-   int error;
-   DBUG_ASSERT(inited==INDEX);
---- a/storage/myisam/mi_check.c
-+++ b/storage/myisam/mi_check.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1902,7 +1902,7 @@ int movepoint(register MI_INFO *info, uchar *record, my_off_t oldpos,
- 
- 	/* Tell system that we want all memory for our cache */
- 
--void lock_memory(MI_CHECK *param __attribute__((unused)))
-+void lock_memory(MI_CHECK *param MY_ATTRIBUTE((unused)))
- {
- #ifdef SUN_OS				/* Key-cacheing thrases on sun 4.1 */
-   if (param->opt_lock_memory)
---- a/storage/myisam/mi_extrafunc.h
-+++ b/storage/myisam/mi_extrafunc.h
-@@ -1,5 +1,4 @@
--/* Copyright (c) 2000-2006 MySQL AB, 2009 Sun Microsystems, Inc.
--   Use is subject to license terms.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -14,9 +13,9 @@
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA */
- 
--void _mi_report_crashed(MI_INFO *file __attribute__((unused)),
--                        const char *message __attribute__((unused)),
--                        const char *sfile __attribute__((unused)),
--                        uint sline __attribute__((unused)))
-+void _mi_report_crashed(MI_INFO *file MY_ATTRIBUTE((unused)),
-+                        const char *message MY_ATTRIBUTE((unused)),
-+                        const char *sfile MY_ATTRIBUTE((unused)),
-+                        uint sline MY_ATTRIBUTE((unused)))
- {
- }
---- a/storage/myisam/mi_keycache.c
-+++ b/storage/myisam/mi_keycache.c
-@@ -1,5 +1,4 @@
--/* Copyright (c) 2003-2008 MySQL AB, 2009 Sun Microsystems, Inc.
--   Use is subject to license terms.
-+/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -48,7 +47,7 @@
- */
- 
- int mi_assign_to_key_cache(MI_INFO *info,
--			   ulonglong key_map __attribute__((unused)),
-+			   ulonglong key_map MY_ATTRIBUTE((unused)),
- 			   KEY_CACHE *key_cache)
- {
-   int error= 0;
---- a/storage/myisam/mi_open.c
-+++ b/storage/myisam/mi_open.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1229,7 +1229,7 @@ exist a dup()-like call that would give us two different file descriptors.
- *************************************************************************/
- 
- int mi_open_datafile(MI_INFO *info, MYISAM_SHARE *share, const char *org_name,
--                     File file_to_dup __attribute__((unused)))
-+                     File file_to_dup MY_ATTRIBUTE((unused)))
- {
-   char *data_name= share->data_file_name;
-   char real_data_name[FN_REFLEN];
---- a/storage/myisam/mi_packrec.c
-+++ b/storage/myisam/mi_packrec.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -1009,7 +1009,7 @@ static void uf_zerofill_normal(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *
- }
- 
- static void uf_constant(MI_COLUMNDEF *rec,
--			MI_BIT_BUFF *bit_buff __attribute__((unused)),
-+			MI_BIT_BUFF *bit_buff MY_ATTRIBUTE((unused)),
- 			uchar *to,
- 			uchar *end)
- {
-@@ -1027,8 +1027,8 @@ static void uf_intervall(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff, uchar *to,
- 
- 
- /*ARGSUSED*/
--static void uf_zero(MI_COLUMNDEF *rec __attribute__((unused)),
--		    MI_BIT_BUFF *bit_buff __attribute__((unused)),
-+static void uf_zero(MI_COLUMNDEF *rec MY_ATTRIBUTE((unused)),
-+		    MI_BIT_BUFF *bit_buff MY_ATTRIBUTE((unused)),
- 		    uchar *to, uchar *end)
- {
-   memset(to, 0, (end-to));
-@@ -1058,7 +1058,7 @@ static void uf_blob(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
- 
- 
- static void uf_varchar1(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
--		       uchar *to, uchar *end __attribute__((unused)))
-+		       uchar *to, uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (get_bit(bit_buff))
-     to[0]= 0;				/* Zero lengths */
-@@ -1072,7 +1072,7 @@ static void uf_varchar1(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
- 
- 
- static void uf_varchar2(MI_COLUMNDEF *rec, MI_BIT_BUFF *bit_buff,
--		       uchar *to, uchar *end __attribute__((unused)))
-+		       uchar *to, uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (get_bit(bit_buff))
-     to[0]=to[1]=0;				/* Zero lengths */
-@@ -1607,7 +1607,7 @@ static int _mi_read_mempack_record(MI_INFO *info, my_off_t filepos, uchar *buf)
- static int _mi_read_rnd_mempack_record(MI_INFO *info, uchar *buf,
- 				       register my_off_t filepos,
- 				       my_bool skip_deleted_blocks
--				       __attribute__((unused)))
-+				       MY_ATTRIBUTE((unused)))
- {
-   MI_BLOCK_INFO block_info;
-   MYISAM_SHARE *share=info->s;
---- a/storage/myisam/mi_search.c
-+++ b/storage/myisam/mi_search.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -180,7 +180,7 @@ err:
- 
- int _mi_bin_search(MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *page,
-                    uchar *key, uint key_len, uint comp_flag, uchar **ret_pos,
--                   uchar *buff __attribute__((unused)), my_bool *last_key)
-+                   uchar *buff MY_ATTRIBUTE((unused)), my_bool *last_key)
- {
-   reg4 int start,mid,end,save_end;
-   int flag;
-@@ -1420,9 +1420,9 @@ int _mi_search_last(register MI_INFO *info, register MI_KEYDEF *keyinfo,
- 
- int
- _mi_calc_static_key_length(MI_KEYDEF *keyinfo,uint nod_flag,
--                           uchar *next_pos  __attribute__((unused)),
--                           uchar *org_key  __attribute__((unused)),
--                           uchar *prev_key __attribute__((unused)),
-+                           uchar *next_pos  MY_ATTRIBUTE((unused)),
-+                           uchar *org_key  MY_ATTRIBUTE((unused)),
-+                           uchar *prev_key MY_ATTRIBUTE((unused)),
-                            uchar *key, MI_KEY_PARAM *s_temp)
- {
-   s_temp->key=key;
-@@ -1433,9 +1433,9 @@ _mi_calc_static_key_length(MI_KEYDEF *keyinfo,uint nod_flag,
- 
- int
- _mi_calc_var_key_length(MI_KEYDEF *keyinfo,uint nod_flag,
--                        uchar *next_pos  __attribute__((unused)),
--                        uchar *org_key  __attribute__((unused)),
--                        uchar *prev_key __attribute__((unused)),
-+                        uchar *next_pos  MY_ATTRIBUTE((unused)),
-+                        uchar *org_key  MY_ATTRIBUTE((unused)),
-+                        uchar *prev_key MY_ATTRIBUTE((unused)),
-                         uchar *key, MI_KEY_PARAM *s_temp)
- {
-   s_temp->key=key;
-@@ -1825,7 +1825,7 @@ _mi_calc_bin_pack_key_length(MI_KEYDEF *keyinfo,uint nod_flag,uchar *next_key,
- 
- /* store key without compression */
- 
--void _mi_store_static_key(MI_KEYDEF *keyinfo __attribute__((unused)),
-+void _mi_store_static_key(MI_KEYDEF *keyinfo MY_ATTRIBUTE((unused)),
-                           register uchar *key_pos,
-                           register MI_KEY_PARAM *s_temp)
- {
-@@ -1840,7 +1840,7 @@ void _mi_store_static_key(MI_KEYDEF *keyinfo __attribute__((unused)),
-   { *((pos)++) = (uchar) ((length) >> 8); *((pos)++) = (uchar) (length);  } }
- 
- 
--void _mi_store_var_pack_key(MI_KEYDEF *keyinfo  __attribute__((unused)),
-+void _mi_store_var_pack_key(MI_KEYDEF *keyinfo  MY_ATTRIBUTE((unused)),
-                             register uchar *key_pos,
-                             register MI_KEY_PARAM *s_temp)
- {
-@@ -1903,7 +1903,7 @@ void _mi_store_var_pack_key(MI_KEYDEF *keyinfo  __attribute__((unused)),
- 
- /* variable length key with prefix compression */
- 
--void _mi_store_bin_pack_key(MI_KEYDEF *keyinfo  __attribute__((unused)),
-+void _mi_store_bin_pack_key(MI_KEYDEF *keyinfo  MY_ATTRIBUTE((unused)),
-                             register uchar *key_pos,
-                             register MI_KEY_PARAM *s_temp)
- {
---- a/storage/myisam/mi_static.c
-+++ b/storage/myisam/mi_static.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -41,7 +41,7 @@ ulonglong myisam_max_temp_length= MAX_FILE_SIZE;
- ulong    myisam_data_pointer_size=4;
- ulonglong    myisam_mmap_size= SIZE_T_MAX, myisam_mmap_used= 0;
- 
--static int always_valid(const char *filename __attribute__((unused)))
-+static int always_valid(const char *filename MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
---- a/storage/myisam/mi_test1.c
-+++ b/storage/myisam/mi_test1.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -586,8 +586,8 @@ static struct my_option my_long_options[] =
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch(optid) {
-   case 'a':
---- a/storage/myisam/myisam_ftdump.c
-+++ b/storage/myisam/myisam_ftdump.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -226,8 +226,8 @@ err:
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
--	       char *argument __attribute__((unused)))
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
-+	       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch(optid) {
-   case 'd':
---- a/storage/myisam/myisamchk.c
-+++ b/storage/myisam/myisamchk.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -466,7 +466,7 @@ TYPELIB myisam_stats_method_typelib= {
- 
- static my_bool
- get_one_option(int optid,
--	       const struct my_option *opt __attribute__((unused)),
-+	       const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch (optid) {
-@@ -1711,7 +1711,7 @@ err:
- 
- static int not_killed= 0;
- 
--volatile int *killed_ptr(MI_CHECK *param __attribute__((unused)))
-+volatile int *killed_ptr(MI_CHECK *param MY_ATTRIBUTE((unused)))
- {
-   return &not_killed;			/* always NULL */
- }
-@@ -1719,7 +1719,7 @@ volatile int *killed_ptr(MI_CHECK *param __attribute__((unused)))
- 	/* print warnings and errors */
- 	/* VARARGS */
- 
--void mi_check_print_info(MI_CHECK *param __attribute__((unused)),
-+void mi_check_print_info(MI_CHECK *param MY_ATTRIBUTE((unused)),
- 			 const char *fmt,...)
- {
-   va_list args;
---- a/storage/myisam/myisamlog.c
-+++ b/storage/myisam/myisamlog.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -695,7 +695,7 @@ static int read_string(IO_CACHE *file, register uchar* *to, register uint length
- }				/* read_string */
- 
- 
--static int file_info_compare(void* cmp_arg __attribute__((unused)),
-+static int file_info_compare(void* cmp_arg MY_ATTRIBUTE((unused)),
- 			     void *a, void *b)
- {
-   long lint;
-@@ -709,7 +709,7 @@ static int file_info_compare(void* cmp_arg __attribute__((unused)),
- 	/* ARGSUSED */
- 
- static int test_if_open (struct file_info *key,
--			 element_count count __attribute__((unused)),
-+			 element_count count MY_ATTRIBUTE((unused)),
- 			 struct test_if_open_param *param)
- {
-   if (!strcmp(key->name,param->name) && key->id > param->max_id)
-@@ -737,7 +737,7 @@ static void fix_blob_pointers(MI_INFO *info, uchar *record)
- 	/* ARGSUSED */
- 
- static int test_when_accessed (struct file_info *key,
--			       element_count count __attribute__((unused)),
-+			       element_count count MY_ATTRIBUTE((unused)),
- 			       struct st_access_param *access_param)
- {
-   if (key->accessed < access_param->min_accessed && ! key->closed)
---- a/storage/myisam/myisampack.c
-+++ b/storage/myisam/myisampack.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -29,6 +29,7 @@
- #endif
- #include <my_getopt.h>
- #include <assert.h>
-+#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
- 
- #if SIZEOF_LONG_LONG > 4
- #define BITS_SAVED 64
-@@ -130,7 +131,7 @@ static void free_counts_and_tree_and_queue(HUFF_TREE *huff_trees,
- 					   uint trees,
- 					   HUFF_COUNTS *huff_counts,
- 					   uint fields);
--static int compare_tree(void* cmp_arg __attribute__((unused)),
-+static int compare_tree(void* cmp_arg MY_ATTRIBUTE((unused)),
- 			const uchar *s,const uchar *t);
- static int get_statistic(PACK_MRG_INFO *mrg,HUFF_COUNTS *huff_counts);
- static void check_counts(HUFF_COUNTS *huff_counts,uint trees,
-@@ -300,9 +301,7 @@ static void print_version(void)
- static void usage(void)
- {
-   print_version();
--  puts("Copyright 2002-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
--  puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,");
--  puts("and you are welcome to modify and redistribute it under the GPL license\n");
-+  puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2002"));
- 
-   puts("Pack a MyISAM-table to take much less space.");
-   puts("Keys are not updated, you must run myisamchk -rq on the datafile");
-@@ -317,7 +316,7 @@ static void usage(void)
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   uint length;
-@@ -1176,7 +1175,7 @@ static int get_statistic(PACK_MRG_INFO *mrg,HUFF_COUNTS *huff_counts)
-   DBUG_RETURN(error != HA_ERR_END_OF_FILE);
- }
- 
--static int compare_huff_elements(void *not_used __attribute__((unused)),
-+static int compare_huff_elements(void *not_used MY_ATTRIBUTE((unused)),
- 				 uchar *a, uchar *b)
- {
-   return *((my_off_t*) a) < *((my_off_t*) b) ? -1 :
-@@ -1693,7 +1692,7 @@ static int make_huff_tree(HUFF_TREE *huff_tree, HUFF_COUNTS *huff_counts)
-   return 0;
- }
- 
--static int compare_tree(void* cmp_arg __attribute__((unused)),
-+static int compare_tree(void* cmp_arg MY_ATTRIBUTE((unused)),
- 			register const uchar *s, register const uchar *t)
- {
-   uint length;
---- a/storage/myisam/rt_test.c
-+++ b/storage/myisam/rt_test.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -79,7 +79,7 @@ static double rt_data[]=
-   -1
- };
- 
--int main(int argc __attribute__((unused)),char *argv[] __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char *argv[] MY_ATTRIBUTE((unused)))
- {
-   MY_INIT(argv[0]);
-   exit(run_test("rt_test"));
-@@ -367,7 +367,7 @@ static int read_with_pos (MI_INFO * file,int silent)
- 
- 
- static void print_record(uchar * record,
--			 my_off_t offs __attribute__((unused)),
-+			 my_off_t offs MY_ATTRIBUTE((unused)),
- 			 const char * tail)
- {
-   int i;
-@@ -420,7 +420,7 @@ static void create_record(uchar *record,uint rownr)
- }
- 
- #else
--int main(int argc __attribute__((unused)),char *argv[] __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char *argv[] MY_ATTRIBUTE((unused)))
- {
-   exit(0);
- }
---- a/storage/myisam/sort.c
-+++ b/storage/myisam/sort.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -886,7 +886,7 @@ static int write_merge_key_varlen(MI_SORT_PARAM *info,
- }
- 
- 
--static int write_merge_key(MI_SORT_PARAM *info __attribute__((unused)),
-+static int write_merge_key(MI_SORT_PARAM *info MY_ATTRIBUTE((unused)),
-                            IO_CACHE *to_file, uchar *key,
-                            uint sort_length, uint count)
- {
---- a/storage/myisam/sp_key.c
-+++ b/storage/myisam/sp_key.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -118,7 +118,7 @@ static int sp_mbr_from_wkb(uchar *wkb, uint size, uint n_dims, double *mbr)
- */
- 
- static int sp_add_point_to_mbr(uchar *(*wkb), uchar *end, uint n_dims, 
--			       uchar byte_order __attribute__((unused)),
-+			       uchar byte_order MY_ATTRIBUTE((unused)),
- 			       double *mbr)
- {
-   double ord;
---- a/storage/myisam/sp_test.c
-+++ b/storage/myisam/sp_test.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -40,7 +40,7 @@ static  void rtree_PrintWKB(uchar *wkb, uint n_dims);
- static char blob_key[MAX_REC_LENGTH];
- 
- 
--int main(int argc  __attribute__((unused)),char *argv[])
-+int main(int argc  MY_ATTRIBUTE((unused)),char *argv[])
- {
-   MY_INIT(argv[0]);
-   exit(run_test("sp_test"));
-@@ -487,7 +487,7 @@ static void rtree_PrintWKB(uchar *wkb, uint n_dims)
- }
- 
- #else
--int main(int argc __attribute__((unused)),char *argv[] __attribute__((unused)))
-+int main(int argc MY_ATTRIBUTE((unused)),char *argv[] MY_ATTRIBUTE((unused)))
- {
-   exit(0);
- }
---- a/storage/myisammrg/ha_myisammrg.cc
-+++ b/storage/myisammrg/ha_myisammrg.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -347,7 +347,7 @@ CPP_UNNAMED_NS_END
-   and adds a child list of TABLE_LIST to the parent handler.
- */
- 
--int ha_myisammrg::open(const char *name, int mode __attribute__((unused)),
-+int ha_myisammrg::open(const char *name, int mode MY_ATTRIBUTE((unused)),
-                        uint test_if_locked_arg)
- {
-   DBUG_ENTER("ha_myisammrg::open");
-@@ -1183,8 +1183,8 @@ int ha_myisammrg::index_last(uchar * buf)
- }
- 
- int ha_myisammrg::index_next_same(uchar * buf,
--                                  const uchar *key __attribute__((unused)),
--                                  uint length __attribute__((unused)))
-+                                  const uchar *key MY_ATTRIBUTE((unused)),
-+                                  uint length MY_ATTRIBUTE((unused)))
- {
-   int error;
-   DBUG_ASSERT(this->file->children_attached);
---- a/storage/ndb/include/ndb_global.h
-+++ b/storage/ndb/include/ndb_global.h
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -251,19 +251,19 @@ extern "C" {
- #endif
- 
- /**
-- *  __attribute__((noreturn)) was introduce in gcc 2.5
-+ *  MY_ATTRIBUTE((noreturn)) was introduce in gcc 2.5
-  */
- #if (GCC_VERSION >= 2005)
--#define ATTRIBUTE_NORETURN __attribute__((noreturn))
-+#define ATTRIBUTE_NORETURN MY_ATTRIBUTE((noreturn))
- #else
- #define ATTRIBUTE_NORETURN
- #endif
- 
- /**
-- *  __attribute__((noinline)) was introduce in gcc 3.1
-+ *  MY_ATTRIBUTE((noinline)) was introduce in gcc 3.1
-  */
- #if (GCC_VERSION >= 3001)
--#define ATTRIBUTE_NOINLINE __attribute__((noinline))
-+#define ATTRIBUTE_NOINLINE MY_ATTRIBUTE((noinline))
- #else
- #define ATTRIBUTE_NOINLINE
- #endif
---- a/storage/ndb/include/util/ndb_opts.h
-+++ b/storage/ndb/include/util/ndb_opts.h
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -123,7 +123,7 @@ void ndb_opt_set_usage_funcs(void (*short_usage)(void),
-                              void (*usage)(void));
- my_bool
- ndb_std_get_one_option(int optid,
--		       const struct my_option *opt __attribute__((unused)),
-+		       const struct my_option *opt MY_ATTRIBUTE((unused)),
-                        char *argument);
- 
- void ndb_usage(void (*usagefunc)(void), const char *load_default_groups[],
---- a/storage/ndb/src/common/util/ndb_opts.c
-+++ b/storage/ndb/src/common/util/ndb_opts.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -82,8 +82,8 @@ void ndb_usage(void (*usagefunc)(void), const char *load_default_groups[],
- 
- my_bool
- ndb_std_get_one_option(int optid,
--                       const struct my_option *opt __attribute__((unused)),
--                       char *argument __attribute__((unused)))
-+                       const struct my_option *opt MY_ATTRIBUTE((unused)),
-+                       char *argument MY_ATTRIBUTE((unused)))
- {
-   switch (optid) {
- #ifndef DBUG_OFF
---- a/storage/ndb/src/cw/cpcd/main.cpp
-+++ b/storage/ndb/src/cw/cpcd/main.cpp
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -63,7 +63,7 @@ static struct my_option my_long_options[] =
- };
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   return 0;
---- a/storage/ndb/tools/restore/restore_main.cpp
-+++ b/storage/ndb/tools/restore/restore_main.cpp
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -415,7 +415,7 @@ static void usage()
- }
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
- #ifndef DBUG_OFF
---- a/strings/conf_to_src.c
-+++ b/strings/conf_to_src.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -145,8 +145,8 @@ static int add_collation(CHARSET_INFO *cs)
- 
- 
- static void
--default_reporter(enum loglevel level  __attribute__ ((unused)),
--                 const char *format  __attribute__ ((unused)),
-+default_reporter(enum loglevel level  MY_ATTRIBUTE ((unused)),
-+                 const char *format  MY_ATTRIBUTE ((unused)),
-                  ...)
- {
- }
-@@ -271,7 +271,7 @@ static void
- fprint_copyright(FILE *file)
- {
-   fprintf(file,
--"/* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.\n"
-+"/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.\n"
- "\n"
- "   This program is free software; you can redistribute it and/or modify\n"
- "   it under the terms of the GNU General Public License as published by\n"
-@@ -290,7 +290,7 @@ fprint_copyright(FILE *file)
- 
- 
- int
--main(int argc, char **argv  __attribute__((unused)))
-+main(int argc, char **argv  MY_ATTRIBUTE((unused)))
- {
-   CHARSET_INFO  ncs;
-   CHARSET_INFO  *cs;
---- a/strings/ctype-big5.c
-+++ b/strings/ctype-big5.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -872,7 +872,7 @@ static int my_strnncoll_big5_internal(const uchar **a_res,
- 
- /* Compare strings */
- 
--static int my_strnncoll_big5(const CHARSET_INFO *cs __attribute__((unused)), 
-+static int my_strnncoll_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), 
- 			     const uchar *a, size_t a_length,
-                              const uchar *b, size_t b_length,
-                              my_bool b_is_prefix)
-@@ -885,7 +885,7 @@ static int my_strnncoll_big5(const CHARSET_INFO *cs __attribute__((unused)),
- 
- /* compare strings, ignore end space */
- 
--static int my_strnncollsp_big5(const CHARSET_INFO* cs __attribute__((unused)),
-+static int my_strnncollsp_big5(const CHARSET_INFO* cs MY_ATTRIBUTE((unused)),
- 			       const uchar *a, size_t a_length, 
- 			       const uchar *b, size_t b_length,
-                                my_bool diff_if_only_endspace_difference)
-@@ -957,14 +957,14 @@ my_strnxfrm_big5(const CHARSET_INFO *cs,
- }
- 
- 
--static uint ismbchar_big5(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                          const char* p, const char *e)
- {
-   return (isbig5head(*(p)) && (e)-(p)>1 && isbig5tail(*((p)+1))? 2: 0);
- }
- 
- 
--static uint mbcharlen_big5(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            uint c)
- {
-   return (isbig5head(c)? 2 : 1);
-@@ -6742,7 +6742,7 @@ static int func_uni_big5_onechar(int code){
- 
- 
- static int
--my_wc_mb_big5(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 	      my_wc_t wc, uchar *s, uchar *e)
- {
- 
-@@ -6771,7 +6771,7 @@ my_wc_mb_big5(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int 
--my_mb_wc_big5(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 	      my_wc_t *pwc,const uchar *s,const uchar *e)
- {
- 
-@@ -6801,7 +6801,7 @@ my_mb_wc_big5(const CHARSET_INFO *cs __attribute__((unused)),
-   CP950 and HKSCS additional characters are also accepted.
- */
- static
--size_t my_well_formed_len_big5(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_big5(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const char *b, const char *e,
-                                size_t pos, int *error)
- {
---- a/strings/ctype-bin.c
-+++ b/strings/ctype-bin.c
-@@ -1,5 +1,5 @@
- /* Copyright (c) 2002 MySQL AB & [email protected]
--   Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-@@ -69,13 +69,13 @@ static uchar bin_char_array[] =
- 
- static my_bool 
- my_coll_init_8bit_bin(CHARSET_INFO *cs,
--                      MY_CHARSET_LOADER *loader __attribute__((unused)))
-+                      MY_CHARSET_LOADER *loader MY_ATTRIBUTE((unused)))
- {
-   cs->max_sort_char=255; 
-   return FALSE;
- }
- 
--static int my_strnncoll_binary(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncoll_binary(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const uchar *s, size_t slen,
-                                const uchar *t, size_t tlen,
-                                my_bool t_is_prefix)
-@@ -86,8 +86,8 @@ static int my_strnncoll_binary(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--size_t my_lengthsp_binary(const CHARSET_INFO *cs __attribute__((unused)),
--                          const char *ptr __attribute__((unused)),
-+size_t my_lengthsp_binary(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                          const char *ptr MY_ATTRIBUTE((unused)),
-                           size_t length)
- {
-   return length;
-@@ -117,18 +117,18 @@ size_t my_lengthsp_binary(const CHARSET_INFO *cs __attribute__((unused)),
- */
- 
- static int my_strnncollsp_binary(const CHARSET_INFO *cs
--                                 __attribute__((unused)),
-+                                 MY_ATTRIBUTE((unused)),
-                                  const uchar *s, size_t slen,
-                                  const uchar *t, size_t tlen,
-                                  my_bool diff_if_only_endspace_difference
--                                 __attribute__((unused)))
-+                                 MY_ATTRIBUTE((unused)))
- {
-   return my_strnncoll_binary(cs,s,slen,t,tlen,0);
- }
- 
- 
- static int my_strnncoll_8bit_bin(const CHARSET_INFO *cs
--                                 __attribute__((unused)),
-+                                 MY_ATTRIBUTE((unused)),
-                                  const uchar *s, size_t slen,
-                                  const uchar *t, size_t tlen,
-                                  my_bool t_is_prefix)
-@@ -165,7 +165,7 @@ static int my_strnncoll_8bit_bin(const CHARSET_INFO *cs
- */
- 
- static int my_strnncollsp_8bit_bin(const CHARSET_INFO *cs
--                                   __attribute__((unused)),
-+                                   MY_ATTRIBUTE((unused)),
-                                    const uchar *a, size_t a_length, 
-                                    const uchar *b, size_t b_length,
-                                    my_bool diff_if_only_endspace_difference)
-@@ -214,41 +214,41 @@ static int my_strnncollsp_8bit_bin(const CHARSET_INFO *cs
- 
- /* This function is used for all conversion functions */
- 
--static size_t my_case_str_bin(const CHARSET_INFO *cs __attribute__((unused)),
--                              char *str __attribute__((unused)))
-+static size_t my_case_str_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                              char *str MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
- 
- 
--static size_t my_case_bin(const CHARSET_INFO *cs __attribute__((unused)),
--                          char *src __attribute__((unused)),
-+static size_t my_case_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                          char *src MY_ATTRIBUTE((unused)),
-                           size_t srclen,
--                          char *dst __attribute__((unused)),
--                          size_t dstlen __attribute__((unused)))
-+                          char *dst MY_ATTRIBUTE((unused)),
-+                          size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   return srclen;
- }
- 
- 
--static int my_strcasecmp_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strcasecmp_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			     const char *s, const char *t)
- {
-   return strcmp(s,t);
- }
- 
- 
--uint my_mbcharlen_8bit(const CHARSET_INFO *cs __attribute__((unused)),
--                      uint c __attribute__((unused)))
-+uint my_mbcharlen_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                      uint c MY_ATTRIBUTE((unused)))
- {
-   return 1;
- }
- 
- 
--static int my_mb_wc_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_mb_wc_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			my_wc_t *wc,
- 			const uchar *str,
--			const uchar *end __attribute__((unused)))
-+			const uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (str >= end)
-     return MY_CS_TOOSMALL;
-@@ -258,10 +258,10 @@ static int my_mb_wc_bin(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--static int my_wc_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_wc_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			my_wc_t wc,
- 			uchar *s,
--			uchar *e __attribute__((unused)))
-+			uchar *e MY_ATTRIBUTE((unused)))
- {
-   if (s >= e)
-     return MY_CS_TOOSMALL;
-@@ -275,7 +275,7 @@ static int my_wc_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--void my_hash_sort_8bit_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_hash_sort_8bit_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            const uchar *key, size_t len,
-                            ulong *nr1, ulong *nr2)
- {
-@@ -296,7 +296,7 @@ void my_hash_sort_8bit_bin(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--void my_hash_sort_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_hash_sort_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		      const uchar *key, size_t len,ulong *nr1, ulong *nr2)
- {
-   const uchar *pos = key;
-@@ -428,7 +428,7 @@ my_strnxfrm_8bit_bin(const CHARSET_INFO *cs,
- 
- 
- static
--uint my_instr_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+uint my_instr_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		  const char *b, size_t b_length,
- 		  const char *s, size_t s_length,
- 		  my_match_t *match, uint nmatch)
---- a/strings/ctype-cp932.c
-+++ b/strings/ctype-cp932.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -182,13 +182,13 @@ static uchar sort_order_cp932[]=
-                        (0x80<=(c) && (c)<=0xfc))
- 
- 
--static uint ismbchar_cp932(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			 const char* p, const char *e)
- {
-   return (iscp932head((uchar) *p) && (e-p)>1 && iscp932tail((uchar)p[1]) ? 2: 0);
- }
- 
--static uint mbcharlen_cp932(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                             uint c)
- {
-   return (iscp932head((uchar) c) ? 2 : 1);
-@@ -1742,7 +1742,7 @@ static int my_strnncoll_cp932_internal(const CHARSET_INFO *cs,
- }
- 
- 
--static int my_strnncoll_cp932(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncoll_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			      const uchar *a, size_t a_length, 
- 			      const uchar *b, size_t b_length,
-                               my_bool b_is_prefix)
-@@ -1755,11 +1755,11 @@ static int my_strnncoll_cp932(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int my_strnncollsp_cp932(const CHARSET_INFO *cs
--                                __attribute__((unused)),
-+                                MY_ATTRIBUTE((unused)),
-                                 const uchar *a, size_t a_length, 
-                                 const uchar *b, size_t b_length,
-                                 my_bool diff_if_only_endspace_difference
--                                __attribute__((unused)))
-+                                MY_ATTRIBUTE((unused)))
- {
-   const uchar *a_end= a + a_length;
-   const uchar *b_end= b + b_length;
-@@ -34601,7 +34601,7 @@ static uint16 unicode_to_cp932[65536]=
- */
- 
- static int
--my_mb_wc_cp932(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_mb_wc_cp932(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 	       my_wc_t *pwc, const uchar *s, const uchar *e){
-   int hi;
- 
-@@ -34645,7 +34645,7 @@ my_mb_wc_cp932(const CHARSET_INFO *cs  __attribute__((unused)),
-   @retval   MY_CS_ILUNI    If the Unicode character does not exist in CP932
- */
- static int
--my_wc_mb_cp932(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 	       my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -34685,7 +34685,7 @@ my_wc_mb_cp932(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--size_t my_numcells_cp932(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numcells_cp932(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                       const char *str, const char *str_end)
- {
-   size_t clen= 0;
-@@ -34720,7 +34720,7 @@ size_t my_numcells_cp932(const CHARSET_INFO *cs __attribute__((unused)),
- 
- static
- size_t my_well_formed_len_cp932(const CHARSET_INFO *cs
--                                __attribute__((unused)),
-+                                MY_ATTRIBUTE((unused)),
-                                 const char *b, const char *e,
-                                 size_t pos, int *error)
- {
---- a/strings/ctype-czech.c
-+++ b/strings/ctype-czech.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -228,7 +228,7 @@ while (1)						\
-   the length of the strings being specified
- */
- 
--static int my_strnncoll_czech(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncoll_czech(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			      const uchar *s1, size_t len1, 
- 			      const uchar *s2, size_t len2,
-                               my_bool s2_is_prefix)
-@@ -266,7 +266,7 @@ int my_strnncollsp_czech(const CHARSET_INFO *cs,
-                          const uchar *s, size_t slen, 
-                          const uchar *t, size_t tlen,
-                          my_bool diff_if_only_endspace_difference
--                         __attribute__((unused)))
-+                         MY_ATTRIBUTE((unused)))
- {
-   for ( ; slen && s[slen-1] == ' ' ; slen--);
-   for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
-@@ -279,7 +279,7 @@ int my_strnncollsp_czech(const CHARSET_INFO *cs,
- */
- static size_t
- my_strnxfrmlen_czech(const CHARSET_INFO *cs
--                     __attribute__((unused)), size_t len)
-+                     MY_ATTRIBUTE((unused)), size_t len)
- {
-   return len * 4 + 4;
- }
-@@ -291,9 +291,9 @@ my_strnxfrmlen_czech(const CHARSET_INFO *cs
- */
- 
- static size_t
--my_strnxfrm_czech(const CHARSET_INFO *cs __attribute__((unused)), 
-+my_strnxfrm_czech(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), 
-                   uchar *dest, size_t len,
--                  uint nweights_arg __attribute__((unused)),
-+                  uint nweights_arg MY_ATTRIBUTE((unused)),
-                   const uchar *src, size_t srclen, uint flags)
- {
-   int value;
-@@ -369,7 +369,7 @@ my_strnxfrm_czech(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static my_bool my_like_range_czech(const CHARSET_INFO *cs
--                                   __attribute__((unused)),
-+                                   MY_ATTRIBUTE((unused)),
- 				   const char *ptr,size_t ptr_length,
- 				   pbool escape, pbool w_one, pbool w_many,
- 				   size_t res_length, char *min_str,
---- a/strings/ctype-euc_kr.c
-+++ b/strings/ctype-euc_kr.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -202,7 +202,7 @@ static uchar sort_order_euc_kr[]=
-                               iseuc_kr_tail3(c))
- 
- 
--static uint ismbchar_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                             const char* p, const char *e)
- {
-   return ((*(uchar*)(p)<0x80)? 0:\
-@@ -210,7 +210,7 @@ static uint ismbchar_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-           0);
- }
- 
--static uint mbcharlen_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                              uint c)
- {
-   return (iseuc_kr_head(c) ? 2 : 1);
-@@ -9877,7 +9877,7 @@ static int func_uni_ksc5601_onechar(int code){
- 
- 
- static int
--my_wc_mb_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		 my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -9905,7 +9905,7 @@ my_wc_mb_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int 
--my_mb_wc_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_euc_kr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		 my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   
-@@ -9934,7 +9934,7 @@ my_mb_wc_euc_kr(const CHARSET_INFO *cs __attribute__((unused)),
-   Returns well formed length of a EUC-KR string.
- */
- static size_t
--my_well_formed_len_euckr(const CHARSET_INFO *cs __attribute__((unused)),
-+my_well_formed_len_euckr(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                          const char *b, const char *e,
-                          size_t pos, int *error)
- {
---- a/strings/ctype-eucjpms.c
-+++ b/strings/ctype-eucjpms.c
-@@ -1,5 +1,5 @@
- /* Copyright (c) 2002 MySQL AB & [email protected]
--   Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-@@ -185,7 +185,7 @@ static uchar sort_order_eucjpms[]=
- #define iseucjpms_ss3(c) (((c)&0xff) == 0x8f)
- 
- 
--static uint ismbchar_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		  const char* p, const char *e)
- {
-   return ((*(uchar*)(p)<0x80)? 0:\
-@@ -195,7 +195,7 @@ static uint ismbchar_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-     0);
- }
- 
--static uint mbcharlen_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                               uint c)
- {
-   return (iseucjpms(c)? 2: iseucjpms_ss2(c)? 2: iseucjpms_ss3(c)? 3: 1);
-@@ -67311,7 +67311,7 @@ static uint16 unicode_to_jisx0212_eucjpms[65536]=
-   @retval   MY_CS_ILSEQ    If a wrong byte sequence was found
- */
- static int
--my_mb_wc_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                  my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   int hi;
-@@ -67371,7 +67371,7 @@ my_mb_wc_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-   @retval   MY_CS_ILUNI    If the Unicode character does not exist in EUCJPMS
- */
- static int
--my_wc_mb_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                  my_wc_t wc, uchar *s, uchar *e)
- {
-   int jp;
-@@ -67427,7 +67427,7 @@ my_wc_mb_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
- 
- static
- size_t my_well_formed_len_eucjpms(const CHARSET_INFO *cs
--                                  __attribute__((unused)),
-+                                  MY_ATTRIBUTE((unused)),
-                                   const char *beg, const char *end, size_t pos,
-                                   int *error)
- {
-@@ -67475,7 +67475,7 @@ size_t my_well_formed_len_eucjpms(const CHARSET_INFO *cs
- 
- 
- static
--size_t my_numcells_eucjpms(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numcells_eucjpms(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            const char *str, const char *str_end)
- {
-   size_t clen;
---- a/strings/ctype-gb2312.c
-+++ b/strings/ctype-gb2312.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -165,13 +165,13 @@ static uchar sort_order_gb2312[]=
- #define isgb2312tail(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)
- 
- 
--static uint ismbchar_gb2312(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		    const char* p, const char *e)
- {
-   return (isgb2312head(*(p)) && (e)-(p)>1 && isgb2312tail(*((p)+1))? 2: 0);
- }
- 
--static uint mbcharlen_gb2312(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                              uint c)
- {
-   return (isgb2312head(c)? 2 : 1);
-@@ -6282,7 +6282,7 @@ static int func_uni_gb2312_onechar(int code){
- 
- 
- static int
--my_wc_mb_gb2312(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_wc_mb_gb2312(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -6310,7 +6310,7 @@ my_wc_mb_gb2312(const CHARSET_INFO *cs  __attribute__((unused)),
- 
- 
- static int 
--my_mb_wc_gb2312(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_mb_wc_gb2312(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		my_wc_t *pwc, const uchar *s, const uchar *e){
-   int hi;
-   
-@@ -6337,7 +6337,7 @@ my_mb_wc_gb2312(const CHARSET_INFO *cs  __attribute__((unused)),
-   Returns well formed length of a EUC-KR string.
- */
- static size_t
--my_well_formed_len_gb2312(const CHARSET_INFO *cs __attribute__((unused)),
-+my_well_formed_len_gb2312(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                           const char *b, const char *e,
-                           size_t pos, int *error)
- {
---- a/strings/ctype-gbk.c
-+++ b/strings/ctype-gbk.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -3475,7 +3475,7 @@ int my_strnncoll_gbk_internal(const uchar **a_res, const uchar **b_res,
- 
- 
- 
--int my_strnncoll_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-+int my_strnncoll_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		     const uchar *a, size_t a_length,
-                      const uchar *b, size_t b_length,
-                      my_bool b_is_prefix)
-@@ -3486,7 +3486,7 @@ int my_strnncoll_gbk(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--static int my_strnncollsp_gbk(const CHARSET_INFO * cs __attribute__((unused)),
-+static int my_strnncollsp_gbk(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)),
- 			      const uchar *a, size_t a_length, 
- 			      const uchar *b, size_t b_length,
-                               my_bool diff_if_only_endspace_difference)
-@@ -3558,13 +3558,13 @@ my_strnxfrm_gbk(const CHARSET_INFO *cs,
- }
- 
- 
--static uint ismbchar_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		 const char* p, const char *e)
- {
-   return (isgbkhead(*(p)) && (e)-(p)>1 && isgbktail(*((p)+1))? 2: 0);
- }
- 
--static uint mbcharlen_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                           uint c)
- {
-   return (isgbkhead(c)? 2 : 1);
-@@ -10675,7 +10675,7 @@ static int func_uni_gbk_onechar(int code){
- }
- 
- static int
--my_wc_mb_gbk(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_wc_mb_gbk(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 	      my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -10701,7 +10701,7 @@ my_wc_mb_gbk(const CHARSET_INFO *cs  __attribute__((unused)),
- }
- 
- static int
--my_mb_wc_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 	      my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   int hi;
-@@ -10732,7 +10732,7 @@ my_mb_wc_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-   Returns well formed length of a GBK string.
- */
- static
--size_t my_well_formed_len_gbk(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_gbk(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                               const char *b, const char *e,
-                               size_t pos, int *error)
- {
---- a/strings/ctype-latin1.c
-+++ b/strings/ctype-latin1.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -356,10 +356,10 @@ NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
- };
- 
- static
--int my_mb_wc_latin1(const CHARSET_INFO *cs  __attribute__((unused)),
-+int my_mb_wc_latin1(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		    my_wc_t *wc,
- 		    const uchar *str,
--		    const uchar *end __attribute__((unused)))
-+		    const uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (str >= end)
-     return MY_CS_TOOSMALL;
-@@ -369,10 +369,10 @@ int my_mb_wc_latin1(const CHARSET_INFO *cs  __attribute__((unused)),
- }
- 
- static
--int my_wc_mb_latin1(const CHARSET_INFO *cs  __attribute__((unused)),
-+int my_wc_mb_latin1(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		    my_wc_t wc,
- 		    uchar *str,
--		    uchar *end __attribute__((unused)))
-+		    uchar *end MY_ATTRIBUTE((unused)))
- {
-   uchar *pl;
-   
-@@ -547,7 +547,7 @@ uchar combo2map[]={
- 
- 
- static int my_strnncoll_latin1_de(const CHARSET_INFO *cs
--                                  __attribute__((unused)),
-+                                  MY_ATTRIBUTE((unused)),
- 				  const uchar *a, size_t a_length,
- 				  const uchar *b, size_t b_length,
-                                   my_bool b_is_prefix)
-@@ -589,7 +589,7 @@ static int my_strnncoll_latin1_de(const CHARSET_INFO *cs
- 
- 
- static int my_strnncollsp_latin1_de(const CHARSET_INFO *cs
--                                    __attribute__((unused)),
-+                                    MY_ATTRIBUTE((unused)),
- 				    const uchar *a, size_t a_length,
- 				    const uchar *b, size_t b_length,
-                                     my_bool diff_if_only_endspace_difference)
-@@ -683,7 +683,7 @@ my_strnxfrm_latin1_de(const CHARSET_INFO *cs,
- }
- 
- 
--void my_hash_sort_latin1_de(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_hash_sort_latin1_de(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			    const uchar *key, size_t len,
- 			    ulong *nr1, ulong *nr2)
- {
---- a/strings/ctype-mb.c
-+++ b/strings/ctype-mb.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -74,8 +74,8 @@ get_case_info_for_ch(const CHARSET_INFO *cs, uint page, uint offs)
-   For character sets which don't change octet length in case conversion.
- */
- size_t my_caseup_mb(const CHARSET_INFO *cs, char *src, size_t srclen,
--                    char *dst __attribute__((unused)),
--                    size_t dstlen __attribute__((unused)))
-+                    char *dst MY_ATTRIBUTE((unused)),
-+                    size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   register uint32 l;
-   register char *srcend= src + srclen;
-@@ -109,8 +109,8 @@ size_t my_caseup_mb(const CHARSET_INFO *cs, char *src, size_t srclen,
- 
- 
- size_t my_casedn_mb(const CHARSET_INFO *cs, char *src, size_t srclen,
--                    char *dst __attribute__((unused)),
--                    size_t dstlen __attribute__((unused)))
-+                    char *dst MY_ATTRIBUTE((unused)),
-+                    size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   register uint32 l;
-   register char *srcend= src + srclen;
-@@ -155,7 +155,7 @@ size_t my_casedn_mb(const CHARSET_INFO *cs, char *src, size_t srclen,
- static size_t
- my_casefold_mb_varlen(const CHARSET_INFO *cs,
-                       char *src, size_t srclen,
--                      char *dst, size_t dstlen __attribute__((unused)),
-+                      char *dst, size_t dstlen MY_ATTRIBUTE((unused)),
-                       uchar *map,
-                       size_t is_upper)
- {
-@@ -373,7 +373,7 @@ int my_wildcmp_mb(const CHARSET_INFO *cs,
- }
- 
- 
--size_t my_numchars_mb(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numchars_mb(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		      const char *pos, const char *end)
- {
-   register size_t count= 0;
-@@ -387,7 +387,7 @@ size_t my_numchars_mb(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--size_t my_charpos_mb(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_charpos_mb(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		     const char *pos, const char *end, size_t length)
- {
-   const char *start= pos;
-@@ -482,7 +482,7 @@ uint my_instr_mb(const CHARSET_INFO *cs,
- /* BINARY collations handlers for MB charsets */
- 
- int
--my_strnncoll_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strnncoll_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                     const uchar *s, size_t slen,
-                     const uchar *t, size_t tlen,
-                     my_bool t_is_prefix)
-@@ -519,7 +519,7 @@ my_strnncoll_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
- */
- 
- int
--my_strnncollsp_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strnncollsp_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                       const uchar *a, size_t a_length, 
-                       const uchar *b, size_t b_length,
-                       my_bool diff_if_only_endspace_difference)
-@@ -670,7 +670,7 @@ pad:
- 
- 
- int
--my_strcasecmp_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strcasecmp_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                      const char *s, const char *t)
- {
-   return strcmp(s,t);
-@@ -678,7 +678,7 @@ my_strcasecmp_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- void
--my_hash_sort_mb_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+my_hash_sort_mb_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                     const uchar *key, size_t len,ulong *nr1, ulong *nr2)
- {
-   const uchar *pos = key;
---- a/strings/ctype-simple.c
-+++ b/strings/ctype-simple.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -216,8 +216,8 @@ size_t my_casedn_str_8bit(const CHARSET_INFO *cs,char *str)
- 
- 
- size_t my_caseup_8bit(const CHARSET_INFO *cs, char *src, size_t srclen,
--                      char *dst __attribute__((unused)),
--                      size_t dstlen __attribute__((unused)))
-+                      char *dst MY_ATTRIBUTE((unused)),
-+                      size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   char *end= src + srclen;
-   register uchar *map= cs->to_upper;
-@@ -229,8 +229,8 @@ size_t my_caseup_8bit(const CHARSET_INFO *cs, char *src, size_t srclen,
- 
- 
- size_t my_casedn_8bit(const CHARSET_INFO *cs, char *src, size_t srclen,
--                      char *dst __attribute__((unused)),
--                      size_t dstlen __attribute__((unused)))
-+                      char *dst MY_ATTRIBUTE((unused)),
-+                      size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   char *end= src + srclen;
-   register uchar *map=cs->to_lower;
-@@ -251,7 +251,7 @@ int my_strcasecmp_8bit(const CHARSET_INFO *cs,const char *s, const char *t)
- 
- int my_mb_wc_8bit(const CHARSET_INFO *cs,my_wc_t *wc,
- 		  const uchar *str,
--		  const uchar *end __attribute__((unused)))
-+		  const uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (str >= end)
-     return MY_CS_TOOSMALL;
-@@ -288,8 +288,8 @@ int my_wc_mb_8bit(const CHARSET_INFO *cs,my_wc_t wc,
-    end buffer must be checked.
- */
- 
--size_t my_snprintf_8bit(const CHARSET_INFO *cs  __attribute__((unused)),
--                        char* to, size_t n  __attribute__((unused)),
-+size_t my_snprintf_8bit(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
-+                        char* to, size_t n  MY_ATTRIBUTE((unused)),
- 		     const char* fmt, ...)
- {
-   va_list args;
-@@ -506,7 +506,7 @@ noconv:
- }
- 
- 
--longlong my_strntoll_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+longlong my_strntoll_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			  const char *nptr, size_t l, int base,
- 			  char **endptr,int *err)
- {
-@@ -714,7 +714,7 @@ noconv:
- */
- 
- 
--double my_strntod_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+double my_strntod_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		       char *str, size_t length,
- 		       char **end, int *err)
- {
-@@ -731,7 +731,7 @@ double my_strntod_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-   Assume len >= 1
- */
- 
--size_t my_long10_to_str_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_long10_to_str_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                              char *dst, size_t len, int radix, long int val)
- {
-   char buffer[66];
-@@ -773,7 +773,7 @@ size_t my_long10_to_str_8bit(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- size_t my_longlong10_to_str_8bit(const CHARSET_INFO *cs
--                                 __attribute__((unused)),
-+                                 MY_ATTRIBUTE((unused)),
-                                  char *dst, size_t len, int radix,
-                                  longlong val)
- {
-@@ -1030,37 +1030,37 @@ size_t my_scan_8bit(const CHARSET_INFO *cs, const char *str, const char *end,
- }
- 
- 
--void my_fill_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_fill_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		   char *s, size_t l, int fill)
- {
-   memset(s, fill, l);
- }
- 
- 
--size_t my_numchars_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numchars_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		      const char *b, const char *e)
- {
-   return (size_t) (e - b);
- }
- 
- 
--size_t my_numcells_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numcells_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                         const char *b, const char *e)
- {
-   return (size_t) (e - b);
- }
- 
- 
--size_t my_charpos_8bit(const CHARSET_INFO *cs __attribute__((unused)),
--                       const char *b  __attribute__((unused)),
--                       const char *e  __attribute__((unused)),
-+size_t my_charpos_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                       const char *b  MY_ATTRIBUTE((unused)),
-+                       const char *e  MY_ATTRIBUTE((unused)),
-                        size_t pos)
- {
-   return pos;
- }
- 
- 
--size_t my_well_formed_len_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const char *start, const char *end,
-                                size_t nchars, int *error)
- {
-@@ -1070,7 +1070,7 @@ size_t my_well_formed_len_8bit(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--size_t my_lengthsp_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_lengthsp_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                         const char *ptr, size_t length)
- {
-   const char *end;
-@@ -1274,14 +1274,14 @@ static void set_max_sort_char(CHARSET_INFO *cs)
- 
- static my_bool
- my_coll_init_simple(CHARSET_INFO *cs,
--                    MY_CHARSET_LOADER *loader __attribute__((unused)))
-+                    MY_CHARSET_LOADER *loader MY_ATTRIBUTE((unused)))
- {
-   set_max_sort_char(cs);
-   return FALSE;
- }
- 
- 
--longlong my_strtoll10_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+longlong my_strtoll10_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            const char *nptr, char **endptr, int *error)
- {
-   return my_strtoll10(nptr, endptr, error);
-@@ -1387,7 +1387,7 @@ static ulonglong d10[DIGITS_IN_ULONGLONG]=
- */
- 
- ulonglong
--my_strntoull10rnd_8bit(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strntoull10rnd_8bit(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                        const char *str, size_t length, int unsigned_flag,
-                        char **endptr, int *error)
- {
-@@ -1665,17 +1665,17 @@ ret_too_big:
- 
- 
- 
--my_bool my_propagate_simple(const CHARSET_INFO *cs __attribute__((unused)),
--                            const uchar *str __attribute__((unused)),
--                            size_t length __attribute__((unused)))
-+my_bool my_propagate_simple(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                            const uchar *str MY_ATTRIBUTE((unused)),
-+                            size_t length MY_ATTRIBUTE((unused)))
- {
-   return 1;
- }
- 
- 
--my_bool my_propagate_complex(const CHARSET_INFO *cs __attribute__((unused)),
--                             const uchar *str __attribute__((unused)),
--                             size_t length __attribute__((unused)))
-+my_bool my_propagate_complex(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                             const uchar *str MY_ATTRIBUTE((unused)),
-+                             size_t length MY_ATTRIBUTE((unused)))
- {
-   return 0;
- }
---- a/strings/ctype-sjis.c
-+++ b/strings/ctype-sjis.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -182,13 +182,13 @@ static uchar sort_order_sjis[]=
-                        (0x80<=(c) && (c)<=0xfc))
- 
- 
--static uint ismbchar_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			 const char* p, const char *e)
- {
-   return (issjishead((uchar) *p) && (e-p)>1 && issjistail((uchar)p[1]) ? 2: 0);
- }
- 
--static uint mbcharlen_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            uint c)
- {
-   return (issjishead((uchar) c) ? 2 : 1);
-@@ -1112,7 +1112,7 @@ static int my_strnncoll_sjis_internal(const CHARSET_INFO *cs,
- }
- 
- 
--static int my_strnncoll_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncoll_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                              const uchar *a, size_t a_length, 
-                              const uchar *b, size_t b_length,
-                              my_bool b_is_prefix)
-@@ -1124,7 +1124,7 @@ static int my_strnncoll_sjis(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--static int my_strnncollsp_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncollsp_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			       const uchar *a, size_t a_length, 
- 			       const uchar *b, size_t b_length,
-                                my_bool diff_if_only_endspace_difference)
-@@ -33968,7 +33968,7 @@ static uint16 unicode_to_sjis[65536]=
-   @retval   MY_CS_ILSEQ    If a wrong byte sequence was found
- */
- static int
--my_mb_wc_sjis(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_mb_wc_sjis(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 	      my_wc_t *pwc, const uchar *s, const uchar *e){
-   int hi;
- 
-@@ -34012,7 +34012,7 @@ my_mb_wc_sjis(const CHARSET_INFO *cs  __attribute__((unused)),
-   @retval   MY_CS_ILUNI    If the Unicode character does not exist in SJIS
- */
- static int
--my_wc_mb_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 	      my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -34061,7 +34061,7 @@ mb:
- 
- 
- static
--size_t my_numcells_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numcells_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                       const char *str, const char *str_end)
- {
-   size_t clen;
-@@ -34094,7 +34094,7 @@ size_t my_numcells_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-   CP932 additional characters are also accepted.
- */
- static
--size_t my_well_formed_len_sjis(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_sjis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const char *b, const char *e,
-                                size_t pos, int *error)
- {
---- a/strings/ctype-tis620.c
-+++ b/strings/ctype-tis620.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -526,7 +526,7 @@ static size_t thai2sortable(uchar *tstr, size_t len)
- */
- 
- static
--int my_strnncoll_tis620(const CHARSET_INFO *cs __attribute__((unused)),
-+int my_strnncoll_tis620(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                         const uchar *s1, size_t len1, 
-                         const uchar *s2, size_t len2,
-                         my_bool s2_is_prefix)
-@@ -556,7 +556,7 @@ int my_strnncoll_tis620(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--int my_strnncollsp_tis620(const CHARSET_INFO * cs __attribute__((unused)),
-+int my_strnncollsp_tis620(const CHARSET_INFO * cs MY_ATTRIBUTE((unused)),
- 			  const uchar *a0, size_t a_length, 
- 			  const uchar *b0, size_t b_length,
-                           my_bool diff_if_only_endspace_difference)
-@@ -841,10 +841,10 @@ NULL,NULL,NULL,NULL,NULL,NULL,NULL,plFF
- 
- 
- static
--int my_mb_wc_tis620(const CHARSET_INFO *cs  __attribute__((unused)),
-+int my_mb_wc_tis620(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		  my_wc_t *wc,
- 		  const uchar *str,
--		  const uchar *end __attribute__((unused)))
-+		  const uchar *end MY_ATTRIBUTE((unused)))
- {
-   if (str >= end)
-     return MY_CS_TOOSMALL;
-@@ -854,10 +854,10 @@ int my_mb_wc_tis620(const CHARSET_INFO *cs  __attribute__((unused)),
- }
- 
- static
--int my_wc_mb_tis620(const CHARSET_INFO *cs  __attribute__((unused)),
-+int my_wc_mb_tis620(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
- 		  my_wc_t wc,
- 		  uchar *str,
--		  uchar *end __attribute__((unused)))
-+		  uchar *end MY_ATTRIBUTE((unused)))
- {
-   uchar *pl;
-   
---- a/strings/ctype-ucs2.c
-+++ b/strings/ctype-ucs2.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-@@ -64,8 +64,8 @@ my_bincmp(const uchar *s, const uchar *se,
- 
- 
- static size_t
--my_caseup_str_mb2_or_mb4(const CHARSET_INFO * cs  __attribute__((unused)), 
--                         char * s __attribute__((unused)))
-+my_caseup_str_mb2_or_mb4(const CHARSET_INFO * cs  MY_ATTRIBUTE((unused)), 
-+                         char * s MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(0);
-   return 0;
-@@ -73,8 +73,8 @@ my_caseup_str_mb2_or_mb4(const CHARSET_INFO * cs  __attribute__((unused)),
- 
- 
- static size_t
--my_casedn_str_mb2_or_mb4(const CHARSET_INFO *cs __attribute__((unused)), 
--                         char * s __attribute__((unused)))
-+my_casedn_str_mb2_or_mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), 
-+                         char * s MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(0);
-   return 0;
-@@ -82,9 +82,9 @@ my_casedn_str_mb2_or_mb4(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_strcasecmp_mb2_or_mb4(const CHARSET_INFO *cs __attribute__((unused)),
--                         const char *s __attribute__((unused)),
--                         const char *t __attribute__((unused)))
-+my_strcasecmp_mb2_or_mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                         const char *s MY_ATTRIBUTE((unused)),
-+                         const char *t MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(0);
-   return 0;
-@@ -1047,7 +1047,7 @@ my_vsnprintf_mb2(char *dst, size_t n, const char* fmt, va_list ap)
- 
- 
- static size_t
--my_snprintf_mb2(const CHARSET_INFO *cs __attribute__((unused)),
-+my_snprintf_mb2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                 char* to, size_t n, const char* fmt, ...)
- {
-   size_t retval;
-@@ -1060,7 +1060,7 @@ my_snprintf_mb2(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static size_t
--my_lengthsp_mb2(const CHARSET_INFO *cs __attribute__((unused)),
-+my_lengthsp_mb2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                 const char *ptr, size_t length)
- {
-   const char *end= ptr + length;
-@@ -1102,7 +1102,7 @@ my_lengthsp_mb2(const CHARSET_INFO *cs __attribute__((unused)),
-                                   ((c & 3) << 8) + d + 0x10000)
- 
- static int
--my_utf16_uni(const CHARSET_INFO *cs __attribute__((unused)),
-+my_utf16_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-              my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   if (s + 2 > e)
-@@ -1135,7 +1135,7 @@ my_utf16_uni(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_uni_utf16(const CHARSET_INFO *cs __attribute__((unused)),
-+my_uni_utf16(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-              my_wc_t wc, uchar *s, uchar *e)
- {
-   if (wc <= 0xFFFF)
-@@ -1201,8 +1201,8 @@ my_tosort_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
- 
- static size_t
- my_caseup_utf16(const CHARSET_INFO *cs, char *src, size_t srclen,
--                char *dst __attribute__((unused)),
--                size_t dstlen __attribute__((unused)))
-+                char *dst MY_ATTRIBUTE((unused)),
-+                size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -1246,8 +1246,8 @@ my_hash_sort_utf16(const CHARSET_INFO *cs, const uchar *s, size_t slen,
- 
- static size_t
- my_casedn_utf16(const CHARSET_INFO *cs, char *src, size_t srclen,
--                char *dst __attribute__((unused)),
--                size_t dstlen __attribute__((unused)))
-+                char *dst MY_ATTRIBUTE((unused)),
-+                size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -1415,8 +1415,8 @@ my_ismbchar_utf16(const CHARSET_INFO *cs, const char *b, const char *e)
- 
- 
- static uint
--my_mbcharlen_utf16(const CHARSET_INFO *cs  __attribute__((unused)),
--                   uint c __attribute__((unused)))
-+my_mbcharlen_utf16(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
-+                   uint c MY_ATTRIBUTE((unused)))
- {
-   DBUG_ASSERT(0);
-   return MY_UTF16_HIGH_HEAD(c) ? 4 : 2;
-@@ -1749,7 +1749,7 @@ CHARSET_INFO my_charset_utf16_bin=
- 
- 
- static int
--my_utf16le_uni(const CHARSET_INFO *cs __attribute__((unused)),
-+my_utf16le_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   my_wc_t lo;
-@@ -1779,7 +1779,7 @@ my_utf16le_uni(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_uni_utf16le(const CHARSET_INFO *cs __attribute__((unused)),
-+my_uni_utf16le(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                my_wc_t wc, uchar *s, uchar *e)
- {
-   if (wc < MY_UTF16_SURROGATE_HIGH_FIRST ||
-@@ -1806,7 +1806,7 @@ my_uni_utf16le(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static size_t
--my_lengthsp_utf16le(const CHARSET_INFO *cs __attribute__((unused)),
-+my_lengthsp_utf16le(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                     const char *ptr, size_t length)
- {
-   const char *end= ptr + length;
-@@ -1922,7 +1922,7 @@ CHARSET_INFO my_charset_utf16le_bin=
- #ifdef HAVE_CHARSET_utf32
- 
- static int
--my_utf32_uni(const CHARSET_INFO *cs __attribute__((unused)),
-+my_utf32_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-              my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   if (s + 4 > e)
-@@ -1933,7 +1933,7 @@ my_utf32_uni(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_uni_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_uni_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-              my_wc_t wc, uchar *s, uchar *e)
- {
-   if (s + 4 > e) 
-@@ -1983,8 +1983,8 @@ my_tosort_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
- 
- static size_t
- my_caseup_utf32(const CHARSET_INFO *cs, char *src, size_t srclen,
--                char *dst __attribute__((unused)),
--                size_t dstlen __attribute__((unused)))
-+                char *dst MY_ATTRIBUTE((unused)),
-+                size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -2039,8 +2039,8 @@ my_hash_sort_utf32(const CHARSET_INFO *cs, const uchar *s, size_t slen,
- 
- static size_t
- my_casedn_utf32(const CHARSET_INFO *cs, char *src, size_t srclen,
--                char *dst __attribute__((unused)),
--                size_t dstlen __attribute__((unused)))
-+                char *dst MY_ATTRIBUTE((unused)),
-+                size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -2198,7 +2198,7 @@ my_strnncollsp_utf32(const CHARSET_INFO *cs,
- 
- 
- static size_t
--my_strnxfrmlen_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strnxfrmlen_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                      size_t len)
- {
-   return len / 2;
-@@ -2206,17 +2206,17 @@ my_strnxfrmlen_utf32(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static uint
--my_ismbchar_utf32(const CHARSET_INFO *cs __attribute__((unused)),
--                  const char *b __attribute__((unused)),
--                  const char *e __attribute__((unused)))
-+my_ismbchar_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                  const char *b MY_ATTRIBUTE((unused)),
-+                  const char *e MY_ATTRIBUTE((unused)))
- {
-   return 4;
- }
- 
- 
- static uint
--my_mbcharlen_utf32(const CHARSET_INFO *cs  __attribute__((unused)) , 
--                   uint c __attribute__((unused)))
-+my_mbcharlen_utf32(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)) , 
-+                   uint c MY_ATTRIBUTE((unused)))
- {
-   return 4;
- }
-@@ -2312,7 +2312,7 @@ my_vsnprintf_utf32(char *dst, size_t n, const char* fmt, va_list ap)
- 
- 
- static size_t
--my_snprintf_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_snprintf_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                   char* to, size_t n, const char* fmt, ...)
- {
-   size_t retval;
-@@ -2325,7 +2325,7 @@ my_snprintf_utf32(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static longlong
--my_strtoll10_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strtoll10_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                    const char *nptr, char **endptr, int *error)
- {
-   const char *s, *end, *start, *n_end, *true_end;
-@@ -2495,7 +2495,7 @@ no_conv:
- 
- 
- static size_t
--my_numchars_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_numchars_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                   const char *b, const char *e)
- {
-   return (size_t) (e - b) / 4;
-@@ -2503,7 +2503,7 @@ my_numchars_utf32(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static size_t
--my_charpos_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_charpos_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                  const char *b, const char *e, size_t pos)
- {
-   size_t string_length= (size_t) (e - b);
-@@ -2512,7 +2512,7 @@ my_charpos_utf32(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static size_t
--my_well_formed_len_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_well_formed_len_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                          const char *b, const char *e,
-                          size_t nchars, int *error)
- {
-@@ -2565,7 +2565,7 @@ void my_fill_utf32(const CHARSET_INFO *cs,
- 
- 
- static size_t
--my_lengthsp_utf32(const CHARSET_INFO *cs __attribute__((unused)),
-+my_lengthsp_utf32(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                   const char *ptr, size_t length)
- {
-   const char *end= ptr + length;
-@@ -2643,11 +2643,11 @@ my_utf32_get(const uchar *s)
- 
- 
- static int
--my_strnncollsp_utf32_bin(const CHARSET_INFO *cs __attribute__((unused)), 
-+my_strnncollsp_utf32_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), 
-                          const uchar *s, size_t slen, 
-                          const uchar *t, size_t tlen,
-                          my_bool diff_if_only_endspace_difference
--                         __attribute__((unused)))
-+                         MY_ATTRIBUTE((unused)))
- {
-   const uchar *se, *te;
-   size_t minlen;
-@@ -2910,7 +2910,7 @@ static uchar to_upper_ucs2[] = {
- };
- 
- 
--static int my_ucs2_uni(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_ucs2_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		       my_wc_t * pwc, const uchar *s, const uchar *e)
- {
-   if (s+2 > e) /* Need 2 characters */
-@@ -2920,7 +2920,7 @@ static int my_ucs2_uni(const CHARSET_INFO *cs __attribute__((unused)),
-   return 2;
- }
- 
--static int my_uni_ucs2(const CHARSET_INFO *cs __attribute__((unused)) ,
-+static int my_uni_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)) ,
- 		       my_wc_t wc, uchar *r, uchar *e)
- {
-   if ( r+2 > e ) 
-@@ -2963,8 +2963,8 @@ my_tosort_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
- 
- 
- static size_t my_caseup_ucs2(const CHARSET_INFO *cs, char *src, size_t srclen,
--                           char *dst __attribute__((unused)),
--                           size_t dstlen __attribute__((unused)))
-+                           char *dst MY_ATTRIBUTE((unused)),
-+                           size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -3008,8 +3008,8 @@ static void my_hash_sort_ucs2(const CHARSET_INFO *cs, const uchar *s,
- 
- 
- static size_t my_casedn_ucs2(const CHARSET_INFO *cs, char *src, size_t srclen,
--                           char *dst __attribute__((unused)),
--                           size_t dstlen __attribute__((unused)))
-+                           char *dst MY_ATTRIBUTE((unused)),
-+                           size_t dstlen MY_ATTRIBUTE((unused)))
- {
-   my_wc_t wc;
-   int res;
-@@ -3030,7 +3030,7 @@ static size_t my_casedn_ucs2(const CHARSET_INFO *cs, char *src, size_t srclen,
- 
- 
- static void
--my_fill_ucs2(const CHARSET_INFO *cs __attribute__((unused)), 
-+my_fill_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), 
-              char *s, size_t l, int fill)
- {
-   DBUG_ASSERT(fill <= 0xFFFF);
-@@ -3101,11 +3101,11 @@ static int my_strnncoll_ucs2(const CHARSET_INFO *cs,
-     > 0  a > b
- */
- 
--static int my_strnncollsp_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_strnncollsp_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const uchar *s, size_t slen,
-                                const uchar *t, size_t tlen,
-                                my_bool diff_if_only_endspace_difference
--			       __attribute__((unused)))
-+			       MY_ATTRIBUTE((unused)))
- {
-   const uchar *se, *te;
-   size_t minlen;
-@@ -3152,23 +3152,23 @@ static int my_strnncollsp_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
- }
- 
- 
--static uint my_ismbchar_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
--                             const char *b __attribute__((unused)),
--                             const char *e __attribute__((unused)))
-+static uint my_ismbchar_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                             const char *b MY_ATTRIBUTE((unused)),
-+                             const char *e MY_ATTRIBUTE((unused)))
- {
-   return 2;
- }
- 
- 
--static uint my_mbcharlen_ucs2(const CHARSET_INFO *cs __attribute__((unused)) ,
--                              uint c __attribute__((unused)))
-+static uint my_mbcharlen_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)) ,
-+                              uint c MY_ATTRIBUTE((unused)))
- {
-   return 2;
- }
- 
- 
- static
--size_t my_numchars_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numchars_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                         const char *b, const char *e)
- {
-   return (size_t) (e-b)/2;
-@@ -3176,9 +3176,9 @@ size_t my_numchars_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--size_t my_charpos_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
--                       const char *b  __attribute__((unused)),
--                       const char *e  __attribute__((unused)),
-+size_t my_charpos_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-+                       const char *b  MY_ATTRIBUTE((unused)),
-+                       const char *e  MY_ATTRIBUTE((unused)),
-                        size_t pos)
- {
-   size_t string_length= (size_t) (e - b);
-@@ -3187,7 +3187,7 @@ size_t my_charpos_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--size_t my_well_formed_len_ucs2(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_ucs2(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const char *b, const char *e,
-                                size_t nchars, int *error)
- {
-@@ -3255,11 +3255,11 @@ int my_strnncoll_ucs2_bin(const CHARSET_INFO *cs,
- }
- 
- static int my_strnncollsp_ucs2_bin(const CHARSET_INFO *cs
--                                   __attribute__((unused)),
-+                                   MY_ATTRIBUTE((unused)),
-                                    const uchar *s, size_t slen, 
-                                    const uchar *t, size_t tlen,
-                                    my_bool diff_if_only_endspace_difference
--                                   __attribute__((unused)))
-+                                   MY_ATTRIBUTE((unused)))
- {
-   const uchar *se, *te;
-   size_t minlen;
-@@ -3303,7 +3303,7 @@ static int my_strnncollsp_ucs2_bin(const CHARSET_INFO *cs
- 
- 
- static
--void my_hash_sort_ucs2_bin(const CHARSET_INFO *cs __attribute__((unused)),
-+void my_hash_sort_ucs2_bin(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			   const uchar *key, size_t len,ulong *nr1, ulong *nr2)
- {
-   const uchar *pos = key;
---- a/strings/ctype-ujis.c
-+++ b/strings/ctype-ujis.c
-@@ -1,5 +1,5 @@
- /* Copyright (c) 2002 MySQL AB & [email protected]
--   Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
-    
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-@@ -184,7 +184,7 @@ static uchar sort_order_ujis[]=
- #define isujis_ss3(c) (((c)&0xff) == 0x8f)
- 
- 
--static uint ismbchar_ujis(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint ismbchar_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 		  const char* p, const char *e)
- {
-   return ((*(uchar*)(p)<0x80)? 0:\
-@@ -194,7 +194,7 @@ static uint ismbchar_ujis(const CHARSET_INFO *cs __attribute__((unused)),
-     0);
- }
- 
--static uint mbcharlen_ujis(const CHARSET_INFO *cs __attribute__((unused)),
-+static uint mbcharlen_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            uint c)
- {
-   return (isujis(c)? 2: isujis_ss2(c)? 2: isujis_ss3(c)? 3: 1);
-@@ -210,7 +210,7 @@ static uint mbcharlen_ujis(const CHARSET_INFO *cs __attribute__((unused)),
- */
- 
- static
--size_t my_well_formed_len_ujis(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_well_formed_len_ujis(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                                const char *beg, const char *end,
-                                size_t pos, int *error)
- {
-@@ -260,7 +260,7 @@ size_t my_well_formed_len_ujis(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--size_t my_numcells_eucjp(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_numcells_eucjp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                        const char *str, const char *str_end)
- {
-   size_t clen;
-@@ -65880,7 +65880,7 @@ static uint16 unicode_to_jisx0212_eucjp[65536]=
-   @retval   MY_CS_ILSEQ    If a wrong byte sequence was found
- */
- static int
--my_mb_wc_euc_jp(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_euc_jp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                 my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   int hi;
-@@ -65940,7 +65940,7 @@ my_mb_wc_euc_jp(const CHARSET_INFO *cs __attribute__((unused)),
-   @retval   MY_CS_ILUNI    If the Unicode character does not exist in UJIS
- */
- static int
--my_wc_mb_euc_jp(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_euc_jp(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                 my_wc_t wc, uchar *s, uchar *e)
- {
-   int jp;
-@@ -67181,7 +67181,7 @@ get_case_info_for_ch(const CHARSET_INFO *cs, uint plane, uint page, uint offs)
- static size_t
- my_casefold_ujis(const CHARSET_INFO *cs,
-                  char *src, size_t srclen,
--                 char *dst, size_t dstlen __attribute__((unused)),
-+                 char *dst, size_t dstlen MY_ATTRIBUTE((unused)),
-                  uchar *map,
-                  size_t is_upper)
- {
---- a/strings/ctype-utf8.c
-+++ b/strings/ctype-utf8.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-@@ -5327,7 +5327,7 @@ static inline int bincmp(const uchar *s, const uchar *se,
- }
- 
- 
--static int my_utf8_uni(const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_utf8_uni(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                        my_wc_t * pwc, const uchar *s, const uchar *e)
- {
-   uchar c;
-@@ -5438,7 +5438,7 @@ static int my_utf8_uni(const CHARSET_INFO *cs __attribute__((unused)),
-   for example, for a null-terminated string
- */
- static int my_utf8_uni_no_range(const CHARSET_INFO *cs
--                                __attribute__((unused)),
-+                                MY_ATTRIBUTE((unused)),
-                                 my_wc_t * pwc, const uchar *s)
- {
-   uchar c;
-@@ -5479,7 +5479,7 @@ static int my_utf8_uni_no_range(const CHARSET_INFO *cs
- }
- 
- 
--static int my_uni_utf8 (const CHARSET_INFO *cs __attribute__((unused)),
-+static int my_uni_utf8 (const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                         my_wc_t wc, uchar *r, uchar *e)
- {
-   int count;
-@@ -5529,7 +5529,7 @@ static int my_uni_utf8 (const CHARSET_INFO *cs __attribute__((unused)),
-   The same as above, but without range check.
- */
- static int my_uni_utf8_no_range(const CHARSET_INFO *cs
--                                __attribute__((unused)),
-+                                MY_ATTRIBUTE((unused)),
-                                 my_wc_t wc, uchar *r)
- {
-   int count;
-@@ -5955,7 +5955,7 @@ int my_wildcmp_utf8(const CHARSET_INFO *cs,
- 
- 
- static
--size_t my_strnxfrmlen_utf8(const CHARSET_INFO *cs __attribute__((unused)),
-+size_t my_strnxfrmlen_utf8(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            size_t len)
- {
-   return (len * 2 + 2) / 3;
-@@ -5963,7 +5963,7 @@ size_t my_strnxfrmlen_utf8(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static
--int my_valid_mbcharlen_utf8(const CHARSET_INFO *cs __attribute__((unused)),
-+int my_valid_mbcharlen_utf8(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                             const uchar *s, const uchar *e)
- {
-   uchar c;
-@@ -6050,7 +6050,7 @@ static uint my_ismbchar_utf8(const CHARSET_INFO *cs,const char *b,
-   return (res>1) ? res : 0;
- }
- 
--static uint my_mbcharlen_utf8(const CHARSET_INFO *cs  __attribute__((unused)),
-+static uint my_mbcharlen_utf8(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
-                               uint c)
- {
-   if (c < 0x80)
-@@ -7575,7 +7575,7 @@ static char filename_safe_char[128]=
- #define MY_FILENAME_ESCAPE '@'
- 
- static int
--my_mb_wc_filename(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_filename(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                   my_wc_t *pwc, const uchar *s, const uchar *e)
- {
-   int byte1, byte2;
-@@ -7635,7 +7635,7 @@ my_mb_wc_filename(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_wc_mb_filename(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_filename(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                   my_wc_t wc, uchar *s, uchar *e)
- {
-   int code;
-@@ -7898,7 +7898,7 @@ bincmp_utf8mb4(const uchar *s, const uchar *se,
- 
- 
- static int
--my_mb_wc_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                  my_wc_t * pwc, const uchar *s, const uchar *e)
- {
-   uchar c;
-@@ -7984,7 +7984,7 @@ my_mb_wc_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-   for example, for a null-terminated string
- */
- static int
--my_mb_wc_utf8mb4_no_range(const CHARSET_INFO *cs __attribute__((unused)),
-+my_mb_wc_utf8mb4_no_range(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                           my_wc_t *pwc, const uchar *s)
- {
-   uchar c;
-@@ -8039,7 +8039,7 @@ my_mb_wc_utf8mb4_no_range(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_wc_mb_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                  my_wc_t wc, uchar *r, uchar *e)
- {
-   int count;
-@@ -8075,7 +8075,7 @@ my_wc_mb_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-   The same as above, but without range check.
- */
- static int
--my_wc_mb_utf8mb4_no_range(const CHARSET_INFO *cs __attribute__((unused)),
-+my_wc_mb_utf8mb4_no_range(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                           my_wc_t wc, uchar *r)
- {
-   int count;
-@@ -8514,7 +8514,7 @@ my_wildcmp_utf8mb4(const CHARSET_INFO *cs,
- 
- 
- static size_t
--my_strnxfrmlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-+my_strnxfrmlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                        size_t len)
- {
-   /* TODO: fix when working on WL "Unicode new version" */
-@@ -8523,7 +8523,7 @@ my_strnxfrmlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
- 
- 
- static int
--my_valid_mbcharlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)),
-+my_valid_mbcharlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
-                            const uchar *s, const uchar *e)
- {
-   uchar c;
-@@ -8605,7 +8605,7 @@ my_ismbchar_utf8mb4(const CHARSET_INFO *cs, const char *b, const char *e)
- 
- 
- static uint
--my_mbcharlen_utf8mb4(const CHARSET_INFO *cs __attribute__((unused)), uint c)
-+my_mbcharlen_utf8mb4(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)), uint c)
- {
-   if (c < 0x80)
-     return 1;
---- a/strings/ctype-win1250ch.c
-+++ b/strings/ctype-win1250ch.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -436,7 +436,7 @@ static struct wordvalue doubles[] = {
- #define IS_END(p, src, len)	(((char *)p - (char *)src) >= (len))
- 
- static int my_strnncoll_win1250ch(const CHARSET_INFO *cs
--                                  __attribute__((unused)),
-+                                  MY_ATTRIBUTE((unused)),
- 				  const uchar *s1, size_t len1,
-                                   const uchar *s2, size_t len2,
-                                   my_bool s2_is_prefix)
-@@ -471,7 +471,7 @@ int my_strnncollsp_win1250ch(const CHARSET_INFO *cs,
- 			     const uchar *s, size_t slen, 
- 			     const uchar *t, size_t tlen,
-                              my_bool diff_if_only_endspace_difference
--                             __attribute__((unused)))
-+                             MY_ATTRIBUTE((unused)))
- {
-   for ( ; slen && s[slen-1] == ' ' ; slen--);
-   for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
-@@ -480,9 +480,9 @@ int my_strnncollsp_win1250ch(const CHARSET_INFO *cs,
- 
- 
- static size_t
--my_strnxfrm_win1250ch(const CHARSET_INFO *cs  __attribute__((unused)),
-+my_strnxfrm_win1250ch(const CHARSET_INFO *cs  MY_ATTRIBUTE((unused)),
-                       uchar *dest, size_t len,
--                      uint nweights_arg __attribute__((unused)),
-+                      uint nweights_arg MY_ATTRIBUTE((unused)),
-                       const uchar *src, size_t srclen, uint flags)
- {
-   int value;
-@@ -614,7 +614,7 @@ static uchar like_range_prefix_max_win1250ch[]=
- */
- 
- static my_bool
--my_like_range_win1250ch(const CHARSET_INFO *cs __attribute__((unused)),
-+my_like_range_win1250ch(const CHARSET_INFO *cs MY_ATTRIBUTE((unused)),
- 			const char *ptr, size_t ptr_length,
- 			pbool escape, pbool w_one, pbool w_many,
- 			size_t res_length,
---- a/tests/mysql_client_fw.c
-+++ b/tests/mysql_client_fw.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights
-+/* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights
-  * reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-@@ -1265,7 +1265,7 @@ static struct my_tests_st *get_my_tests();  /* To be defined in main .c file */
- static struct my_tests_st *my_testlist= 0;
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- char *argument)
- {
-  switch (optid) {
---- a/tests/thread_test.c
-+++ b/tests/thread_test.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -29,9 +29,9 @@ static char *database,*host,*user,*password,*unix_socket,*query;
- uint tcp_port;
- 
- #ifndef __WIN__
--void *test_thread(void *arg __attribute__((unused)))
-+void *test_thread(void *arg MY_ATTRIBUTE((unused)))
- #else
--unsigned __stdcall test_thread(void *arg __attribute__((unused)))
-+unsigned __stdcall test_thread(void *arg MY_ATTRIBUTE((unused)))
- #endif
- {
-   MYSQL *mysql;
-@@ -134,7 +134,7 @@ static void usage()
- 
- 
- static my_bool
--get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
-+get_one_option(int optid, const struct my_option *opt MY_ATTRIBUTE((unused)),
- 	       char *argument)
- {
-   switch (optid) {
---- a/unittest/gunit/rpl_group_set-t.cc
-+++ b/unittest/gunit/rpl_group_set-t.cc
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -472,9 +472,9 @@ TEST_F(GroupTest, Group_containers)
-   push_errtext();                                                       \
-   for (int method_i= 0, combination_i= 0; method_i < MAX_METHOD; method_i++) { \
-     for (int sid_map_i= 0; sid_map_i < MAX_SID_MAP; sid_map_i++, combination_i++) { \
--      Gtid_set &gtid_set __attribute__((unused))=                       \
-+      Gtid_set &gtid_set MY_ATTRIBUTE((unused))=                       \
-         containers[combination_i]->gtid_set;                            \
--      Sid_map *&sid_map __attribute__((unused))=                        \
-+      Sid_map *&sid_map MY_ATTRIBUTE((unused))=                        \
-         sid_maps[sid_map_i];                                            \
-       append_errtext(__LINE__,                                          \
-                      "sid_map_i=%d method_i=%d combination_i=%d",       \
-@@ -489,13 +489,13 @@ TEST_F(GroupTest, Group_containers)
-     for (int end_i= 0; end_i < MAX_END; end_i++) {                      \
-       for (int empty_i= 0; empty_i < MAX_EMPTY; empty_i++) {            \
-         for (int anon_i= 0; anon_i < MAX_ANON; anon_i++, combination_i++) { \
--          Gtid_set &gtid_set __attribute__((unused))=                   \
-+          Gtid_set &gtid_set MY_ATTRIBUTE((unused))=                   \
-             containers[combination_i]->gtid_set;                        \
--          Group_cache &stmt_cache __attribute__((unused))=              \
-+          Group_cache &stmt_cache MY_ATTRIBUTE((unused))=              \
-             containers[combination_i]->stmt_cache;                      \
--          Group_cache &trx_cache __attribute__((unused))=               \
-+          Group_cache &trx_cache MY_ATTRIBUTE((unused))=               \
-             containers[combination_i]->trx_cache;                       \
--          Group_log_state &group_log_state __attribute__((unused))=     \
-+          Group_log_state &group_log_state MY_ATTRIBUTE((unused))=     \
-             containers[combination_i]->group_log_state;                 \
-           append_errtext(__LINE__,                                      \
-                          "type_i=%d end_i=%d empty_i=%d "               \
---- a/unittest/mytap/tap.h
-+++ b/unittest/mytap/tap.h
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 
-+/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. All rights reserved. 
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -126,7 +126,7 @@ void plan(int const count);
- */
- 
- void ok(int const pass, char const *fmt, ...)
--  __attribute__((format(printf,2,3)));
-+  MY_ATTRIBUTE((format(printf,2,3)));
- 
- 
- /**
-@@ -169,7 +169,7 @@ void ok1(int const pass);
-  */
- 
- void skip(int how_many, char const *reason, ...)
--    __attribute__((format(printf,2,3)));
-+    MY_ATTRIBUTE((format(printf,2,3)));
- 
- 
- /**
-@@ -218,7 +218,7 @@ void skip(int how_many, char const *reason, ...)
-  */
- 
- void diag(char const *fmt, ...)
--  __attribute__((format(printf,1,2)));
-+  MY_ATTRIBUTE((format(printf,1,2)));
- 
- 
- /**
-@@ -240,7 +240,7 @@ void diag(char const *fmt, ...)
- */
- 
- void BAIL_OUT(char const *fmt, ...)
--  __attribute__((noreturn, format(printf,1,2)));
-+  MY_ATTRIBUTE((noreturn, format(printf,1,2)));
- 
- 
- /**
-@@ -271,7 +271,7 @@ int exit_status(void);
-  */
- 
- void skip_all(char const *reason, ...)
--  __attribute__((noreturn, format(printf, 1, 2)));
-+  MY_ATTRIBUTE((noreturn, format(printf, 1, 2)));
- 
- 
- /**
-@@ -296,7 +296,7 @@ void skip_all(char const *reason, ...)
- */
- 
- void todo_start(char const *message, ...)
--  __attribute__((format(printf, 1, 2)));
-+  MY_ATTRIBUTE((format(printf, 1, 2)));
- 
- 
- /**
---- a/vio/test-sslclient.c
-+++ b/vio/test-sslclient.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -40,7 +40,7 @@ fatal_error(	const char*	r)
- }
- 
- int
--main(	int	argc __attribute__((unused)),
-+main(	int	argc MY_ATTRIBUTE((unused)),
- 	char**	argv)
- {
- 	char	client_key[] = "../SSL/client-key.pem",	client_cert[] = "../SSL/client-cert.pem";
---- a/vio/test-sslserver.c
-+++ b/vio/test-sslserver.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -75,7 +75,7 @@ client_thread(	void*	arg)
- }
- 
- int
--main(int argc __attribute__((unused)), char** argv)
-+main(int argc MY_ATTRIBUTE((unused)), char** argv)
- {
- 	char	server_key[] = "../SSL/server-key.pem",
- 		server_cert[] = "../SSL/server-cert.pem";
---- a/vio/vio.c
-+++ b/vio/vio.c
-@@ -1,4 +1,4 @@
--/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-@@ -37,16 +37,16 @@
-   @retval 1       The requested I/O event has occurred.
- */
- 
--static int no_io_wait(Vio *vio __attribute__((unused)),
--                      enum enum_vio_io_event event __attribute__((unused)),
--                      int timeout __attribute__((unused)))
-+static int no_io_wait(Vio *vio MY_ATTRIBUTE((unused)),
-+                      enum enum_vio_io_event event MY_ATTRIBUTE((unused)),
-+                      int timeout MY_ATTRIBUTE((unused)))
- {
-   return 1;
- }
- 
- #endif
- 
--static my_bool has_no_data(Vio *vio __attribute__((unused)))
-+static my_bool has_no_data(Vio *vio MY_ATTRIBUTE((unused)))
- {
-   return FALSE;
- }
-@@ -177,7 +177,7 @@ static void vio_init(Vio *vio, enum enum_vio_type type,
- */
- 
- my_bool vio_reset(Vio* vio, enum enum_vio_type type,
--                  my_socket sd, void *ssl __attribute__((unused)), uint flags)
-+                  my_socket sd, void *ssl MY_ATTRIBUTE((unused)), uint flags)
- {
-   int ret= FALSE;
-   Vio new_vio;
---- a/vio/viosocket.c
-+++ b/vio/viosocket.c
-@@ -1,5 +1,5 @@
- /*
--   Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
-+   Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
- 
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License
-@@ -29,7 +29,7 @@
- # include <sys/filio.h>
- #endif
- 
--int vio_errno(Vio *vio __attribute__((unused)))
-+int vio_errno(Vio *vio MY_ATTRIBUTE((unused)))
- {
-   /* These transport types are not Winsock based. */
- #ifdef _WIN32
-@@ -247,8 +247,8 @@ static int vio_set_blocking(Vio *vio, my_bool status)
- 
- 
- int vio_socket_timeout(Vio *vio,
--                       uint which __attribute__((unused)),
--                       my_bool old_mode __attribute__((unused)))
-+                       uint which MY_ATTRIBUTE((unused)),
-+                       my_bool old_mode MY_ATTRIBUTE((unused)))
- {
-   int ret= 0;
-   DBUG_ENTER("vio_socket_timeout");
-@@ -314,7 +314,7 @@ int vio_socket_timeout(Vio *vio,
- }
- 
- 
--int vio_fastsend(Vio * vio __attribute__((unused)))
-+int vio_fastsend(Vio * vio MY_ATTRIBUTE((unused)))
- {
-   int r=0;
-   DBUG_ENTER("vio_fastsend");
-@@ -735,7 +735,7 @@ static my_bool socket_peek_read(Vio *vio, uint *bytes)
- int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout)
- {
-   int ret;
--  short revents __attribute__((unused)) = 0;
-+  short revents MY_ATTRIBUTE((unused)) = 0;
-   struct pollfd pfd;
-   my_socket sd= mysql_socket_getfd(vio->mysql_socket);
-   MYSQL_SOCKET_WAIT_VARIABLES(locker, state) /* no ';' */
-
-
--- a/components/mysql-5-7/Makefile	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/Makefile	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 # MySQL 5.7 is compiled using GCC. Note that the MySQL Server 5.7 for
@@ -31,11 +31,11 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME        = mysql
-COMPONENT_VERSION     = 5.7.11
+COMPONENT_VERSION     = 5.7.17
 COMPONENT_SRC         = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE     = $(COMPONENT_NAME)-boost-$(COMPONENT_VERSION).tar.gz
 COMPONENT_ARCHIVE_HASH= \
-         sha256:ab21347ba004a5aa349b911d829a14e79b1e36e4bcd007d39d75212071414e28
+         sha256:b75bba87199ef6a6ccc5dfbcaf70949009dc12089eafad8c5254afc9002aa903
 COMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.7/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL = http://dev.mysql.com/ 
 COMPONENT_BUGDB       = database/mysql
@@ -100,7 +100,7 @@
 CMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE
 
 COMPONENT_PRE_BUILD_ACTION += cd $(@D);
-COMPONENT_PRE_BUILD_ACTION += export LDFLAGS=$(CMAKE_CXXFLAGS.$(BITS));
+COMPONENT_PRE_BUILD_ACTION += export LDFLAGS="$(CMAKE_CXXFLAGS.$(BITS))";
 COMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS);
 COMPONENT_PRE_BUILD_ACTION += $(CMAKE) . $(CMAKE_OPTIONS);
 
--- a/components/mysql-5-7/Solaris/mysql_57	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/Solaris/mysql_57	Wed Mar 15 23:29:04 2017 -0700
@@ -19,7 +19,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 . /lib/svc/share/smf_include.sh
@@ -40,8 +40,8 @@
 MYSQLCNF=`getproparg mysql/cnf`
 MYSQLBIN=`getproparg mysql/bin`
 MYSQLDATA=`getproparg mysql/data`
-PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid
 LOG_ERROR=${MYSQLDATA}/`/usr/bin/uname -n`.err
+STARTTIMEOUT=180
 
 if [ -z "${MYSQLCNF}" ]; then
         echo "mysql/cnf property not set"
@@ -71,6 +71,52 @@
 	)
 fi
 
+getpidfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--pid-file=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="${MYSQLDATA}/$(/usr/bin/uname -n).pid"
+ echo $ret
+}
+
+getsockfile() {
+ ret=$(${MYSQLBIN}/my_print_defaults --defaults-file=${MYSQLCNF} \
+ mysqld | grep '^--socket=' | cut -d= -f2- | tail -1)
+ [ -z "$ret" ] && ret="/tmp/mysql.sock"
+ echo $ret
+}
+
+PIDFILE=$(getpidfile)
+SOCKFILE=$(getsockfile)
+
+# ping function which return success when mysqld starts accepting connections
+# or return failure in case of timeout after $STARTTIMEOUT seconds.
+# using this function in mysql_start(), method waits/blocks to mysqld is really ready,
+# which might take some time in case of recovery.
+
+mysql_pinger() {    
+    mysqld_safe_pid=$1
+    timer=$STARTTIMEOUT
+    ret=0
+    while [ $timer -gt 0 ]; do
+        sleep 1
+        "${MYSQLBIN}"/mysqladmin --no-defaults --socket=${SOCKFILE} --user=UNKNOWN_MYSQL_USER ping >/dev/null 2>&1 && break
+	timer=$(expr $timer - 1)
+
+	# Check if mysqld_safe is still alive, if not there is no hope
+	if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
+	    ret=1
+	    break
+	fi
+    done
+    
+    # Did we timeout?
+    if [ $timer = 0 ]; then
+	echo "MySQL Database start up timeout after ${STARTTIMEOUT}s"
+	ret=1
+    fi
+    return $ret
+}
+
 # refresh method for this service is not defined because mysqld by itself
 # cannot accept a HUP signal to reload the configuration file my.cnf
 
@@ -78,7 +124,15 @@
 	(
 	exec 2>&1
 	set -x
-	${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null &
+	"${MYSQLBIN}"/mysqld_safe --defaults-file="${MYSQLCNF}" --user=mysql --datadir="${MYSQLDATA}" --pid-file="${PIDFILE}" > /dev/null &
+	
+	if mysql_pinger $! ; then
+            echo "Starting service MySQL"
+        else
+            echo "Failed to start service MySQL"
+            exit $SMF_EXIT_ERR
+        fi
+	
 	)
 }
 
--- a/components/mysql-5-7/mysql-57.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/mysql-57.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -43,10 +43,13 @@
     path=lib/svc/manifest/application/database/mysql_57.xml
 file Solaris/mysql_57 path=lib/svc/method/mysql_57 mode=0555
 file path=usr/mysql/5.7/COPYING
+
+# Regular mysql-57 files
+file path=usr/mysql/5.7/COPYING
+file path=usr/mysql/5.7/README
 file path=usr/mysql/5.7/README
 file path=usr/mysql/5.7/bin/innochecksum
-
-# Regular mysql-57 files
+file path=usr/mysql/5.7/bin/innochecksum
 file path=usr/mysql/5.7/bin/lz4_decompress
 file path=usr/mysql/5.7/bin/my_print_defaults
 file path=usr/mysql/5.7/bin/myisam_ftdump
@@ -65,6 +68,7 @@
 file path=usr/mysql/5.7/bin/mysqld_multi
 file path=usr/mysql/5.7/bin/mysqld_safe
 file path=usr/mysql/5.7/bin/mysqldumpslow
+file path=usr/mysql/5.7/bin/mysqlxtest
 file path=usr/mysql/5.7/bin/perror
 file path=usr/mysql/5.7/bin/replace
 file path=usr/mysql/5.7/bin/resolve_stack_dump
@@ -73,7 +77,6 @@
 file path=usr/mysql/5.7/docs/ChangeLog
 file path=usr/mysql/5.7/docs/INFO_BIN
 file path=usr/mysql/5.7/docs/INFO_SRC
-file path=usr/mysql/5.7/docs/INSTALL-BINARY
 file path=usr/mysql/5.7/include/big_endian.h
 file path=usr/mysql/5.7/include/binary_log_types.h
 file path=usr/mysql/5.7/include/byte_order_generic.h
@@ -150,6 +153,7 @@
 file path=usr/mysql/5.7/include/mysql/service_security_context.h
 file path=usr/mysql/5.7/include/mysql/service_srv_session.h
 file path=usr/mysql/5.7/include/mysql/service_srv_session_info.h
+file path=usr/mysql/5.7/include/mysql/service_ssl_wrapper.h
 file path=usr/mysql/5.7/include/mysql/service_thd_alloc.h
 file path=usr/mysql/5.7/include/mysql/service_thd_engine_lock.h
 file path=usr/mysql/5.7/include/mysql/service_thd_wait.h
@@ -184,10 +188,13 @@
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/adt_null.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/auth.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/auth_test_plugin.so
+file path=usr/mysql/5.7/lib/$(MACH64)/plugin/connection_control.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/daemon_example.ini
+file path=usr/mysql/5.7/lib/$(MACH64)/plugin/group_replication.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/ha_example.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/innodb_engine.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/keyring_file.so
+file path=usr/mysql/5.7/lib/$(MACH64)/plugin/keyring_udf.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/libdaemon_example.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/libmemcached.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/libtest_framework.so
@@ -214,6 +221,7 @@
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/locking_service.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/mypluglib.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/mysql_no_login.so
+file path=usr/mysql/5.7/lib/$(MACH64)/plugin/mysqlx.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/qa_auth_client.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/qa_auth_interface.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/qa_auth_server.so
@@ -223,6 +231,7 @@
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/semisync_master.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/semisync_slave.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/test_security_context.so
+file path=usr/mysql/5.7/lib/$(MACH64)/plugin/test_udf_services.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/validate_password.so
 file path=usr/mysql/5.7/lib/$(MACH64)/plugin/version_token.so
 file path=usr/mysql/5.7/man/man1/comp_err.1
--- a/components/mysql-5-7/mysql-57embedded.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/mysql-57embedded.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr/mysql/5.7/lib/.+ -> set pkg.depend.bypass-generate .*>
@@ -26,6 +26,7 @@
     value=pkg:/database/mysql-57/embedded@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="MySQL 5.7 embedded library"
 set name=com.oracle.info.description value="MySQL 5.7 embedded library"
+set name=com.oracle.info.tpno value=$(TPNO)
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Databases
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
@@ -34,8 +35,8 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
 link path=usr/mysql/5.7/lib/$(MACH64)/libmysqld.so target=libmysqld.so.20
-link path=usr/mysql/5.7/lib/$(MACH64)/libmysqld.so.20 target=libmysqld.so.20.2.0
-file path=usr/mysql/5.7/lib/$(MACH64)/libmysqld.so.20.2.0
+link path=usr/mysql/5.7/lib/$(MACH64)/libmysqld.so.20 target=libmysqld.so.20.3.0
+file path=usr/mysql/5.7/lib/$(MACH64)/libmysqld.so.20.3.0
 link path=usr/mysql/5.7/lib/64 target=$(MACH64)
 license boost.license license="Boost Software License"
 #
--- a/components/mysql-5-7/mysql-57lib.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/mysql-57lib.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr/mysql/5.7/lib/.+ -> set pkg.depend.bypass-generate .*>
@@ -37,8 +37,8 @@
 link path=usr/mysql/5.7/lib/$(MACH64)/libmysqlclient.so \
     target=libmysqlclient.so.20
 link path=usr/mysql/5.7/lib/$(MACH64)/libmysqlclient.so.20 \
-    target=libmysqlclient.so.20.2.0
-file path=usr/mysql/5.7/lib/$(MACH64)/libmysqlclient.so.20.2.0
+    target=libmysqlclient.so.20.3.4
+file path=usr/mysql/5.7/lib/$(MACH64)/libmysqlclient.so.20.3.4
 link path=usr/mysql/5.7/lib/64 target=$(MACH64)
 #
 license mysql-57.license license=GPLv2
--- a/components/mysql-5-7/mysql-57test.p5m	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/mysql-57test.p5m	Wed Mar 15 23:29:04 2017 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
@@ -48,15 +48,14 @@
 file path=usr/mysql/5.7/man/man1/mysqltest.1
 file path=usr/mysql/5.7/man/man1/mysqltest_embedded.1
 dir  path=usr/mysql/5.7/mysql-test
-file path=usr/mysql/5.7/mysql-test/CTestTestfile.cmake
-file path=usr/mysql/5.7/mysql-test/Makefile
 file path=usr/mysql/5.7/mysql-test/README
 file path=usr/mysql/5.7/mysql-test/README.gcov
 file path=usr/mysql/5.7/mysql-test/README.stress
-file path=usr/mysql/5.7/mysql-test/cmake_install.cmake
+file path=usr/mysql/5.7/mysql-test/asan.supp
 dir  path=usr/mysql/5.7/mysql-test/collections
 file path=usr/mysql/5.7/mysql-test/collections/README
 file path=usr/mysql/5.7/mysql-test/collections/README.experimental
+file path=usr/mysql/5.7/mysql-test/collections/coverage.ignore
 file path=usr/mysql/5.7/mysql-test/collections/default.daily
 file path=usr/mysql/5.7/mysql-test/collections/default.daily-valgrind
 file path=usr/mysql/5.7/mysql-test/collections/default.experimental
@@ -72,6 +71,7 @@
 file path=usr/mysql/5.7/mysql-test/collections/disabled-daily.list
 file path=usr/mysql/5.7/mysql-test/collections/disabled-gtid-on.list
 file path=usr/mysql/5.7/mysql-test/collections/disabled-per-push.list
+file path=usr/mysql/5.7/mysql-test/collections/disabled-weekly.list
 file path=usr/mysql/5.7/mysql-test/collections/mysql-5.7-stage.push
 file path=usr/mysql/5.7/mysql-test/collections/mysql-trunk-protocol.weekly
 file path=usr/mysql/5.7/mysql-test/collections/mysql-trunk-stage.push
@@ -81,6 +81,7 @@
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_cache_stat.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_gtid_mode_permissive_set_gtid_next.inc
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_gtid_mode_set_gtid_next.inc
+file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_gtid_next_xa.inc
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_implicit_commit.inc
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_innodb.inc
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/binlog_mysqlbinlog_fill.inc
@@ -107,9 +108,11 @@
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/enforce_gtid_consistency_tmp_violation.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/enforce_gtid_consistency_trx_nontrx_consistent.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/enforce_gtid_consistency_trx_nontrx_violation.test
+file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/gtid_next_begin_caused_trx.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/gtid_next_single_stmt_trx_rollback_with_non-trans_table.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/gtid_next_single_stmt_trx_rollback_with_trans_table.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/gtid_next_xa.test
+file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/gtid_next_xa_error_simul.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/implicit.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/insert_select-binlog.test
 file path=usr/mysql/5.7/mysql-test/extra/binlog_tests/logical_timestamping.inc
@@ -153,6 +156,7 @@
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_filters.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_flsh_tbls.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_foreign_key.test
+file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_generate_mts_gap.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_gtid_drop_table.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_gtid_mts_relay_log_recovery.test
@@ -178,8 +182,10 @@
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_mts_crash_safe.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_mts_crash_safe.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_mts_execute_partial_trx_in_relay_log.inc
+file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_mts_relay_log_recovery.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_mts_transaction_retry.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_multi_query.test
+file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_multi_source_generate_mts_gap.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_multi_update.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_multi_update2.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_multi_update3.test
@@ -193,6 +199,7 @@
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_relayrotate.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_replication_observers_example_plugin_server_startup.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_reset_slave.test
+file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_reset_slave_all_thread_safe.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_rollback_to_savepoint.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_row_001.test
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_row_UUID.test
@@ -237,10 +244,7 @@
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_trx_boundary_parser_all_steps.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_trx_boundary_parser_one_step.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_trx_boundary_parser_warning.inc
-file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_user.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_variables_stm.test
-file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_wait_for_executed_gtid_set_no_timeout.inc
-file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_wait_for_executed_gtid_set_with_sleep.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_xa_gtid_next.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/rpl_xa_mixed_engines.inc
 file path=usr/mysql/5.7/mysql-test/extra/rpl_tests/type_conversions.test
@@ -282,6 +286,7 @@
 file path=usr/mysql/5.7/mysql-test/include/check_key_req.inc
 file path=usr/mysql/5.7/mysql-test/include/check_no_concurrent_insert.inc
 file path=usr/mysql/5.7/mysql-test/include/check_no_row_lock.inc
+file path=usr/mysql/5.7/mysql-test/include/check_plugin_dir.inc
 file path=usr/mysql/5.7/mysql-test/include/check_qep.inc
 file path=usr/mysql/5.7/mysql-test/include/check_shared_row_lock.inc
 file path=usr/mysql/5.7/mysql-test/include/check_slave_is_running.inc
@@ -383,6 +388,7 @@
 file path=usr/mysql/5.7/mysql-test/include/greedy_search_load_tables.inc
 file path=usr/mysql/5.7/mysql-test/include/grep_pattern.inc
 file path=usr/mysql/5.7/mysql-test/include/group_by_fd.inc
+file path=usr/mysql/5.7/mysql-test/include/group_replication_timeouts.inc
 file path=usr/mysql/5.7/mysql-test/include/gtid_prepare_and_execute_stmt.inc
 file path=usr/mysql/5.7/mysql-test/include/gtid_step_assert.inc
 file path=usr/mysql/5.7/mysql-test/include/gtid_step_assert_on_retrieved.inc
@@ -466,6 +472,7 @@
 file path=usr/mysql/5.7/mysql-test/include/have_mysql_no_login_plugin.inc
 file path=usr/mysql/5.7/mysql-test/include/have_mysql_upgrade.inc
 file path=usr/mysql/5.7/mysql-test/include/have_mysqld_safe.inc
+file path=usr/mysql/5.7/mysql-test/include/have_mysqlx_plugin.inc
 file path=usr/mysql/5.7/mysql-test/include/have_ndb.inc
 file path=usr/mysql/5.7/mysql-test/include/have_ndb_debug.inc
 file path=usr/mysql/5.7/mysql-test/include/have_ndb_extra.inc
@@ -474,6 +481,7 @@
 file path=usr/mysql/5.7/mysql-test/include/have_no_undo_tablespaces.inc
 file path=usr/mysql/5.7/mysql-test/include/have_nodebug.inc
 file path=usr/mysql/5.7/mysql-test/include/have_not_innodb_plugin.inc
+file path=usr/mysql/5.7/mysql-test/include/have_not_yassl.inc
 file path=usr/mysql/5.7/mysql-test/include/have_null_audit_plugin.inc
 file path=usr/mysql/5.7/mysql-test/include/have_numa.inc
 file path=usr/mysql/5.7/mysql-test/include/have_openssl.inc
@@ -493,6 +501,7 @@
 file path=usr/mysql/5.7/mysql-test/include/have_semijoin.inc
 file path=usr/mysql/5.7/mysql-test/include/have_semisync_plugin.inc
 file path=usr/mysql/5.7/mysql-test/include/have_sha256_rsa_auth.inc
+file path=usr/mysql/5.7/mysql-test/include/have_shm.inc
 file path=usr/mysql/5.7/mysql-test/include/have_simple_parser.inc
 file path=usr/mysql/5.7/mysql-test/include/have_sjis.inc
 file path=usr/mysql/5.7/mysql-test/include/have_slave_parallel_type_database.inc
@@ -549,7 +558,10 @@
 file path=usr/mysql/5.7/mysql-test/include/ipv6_func.inc
 file path=usr/mysql/5.7/mysql-test/include/is_embedded.inc
 file path=usr/mysql/5.7/mysql-test/include/join_cache.inc
-file path=usr/mysql/5.7/mysql-test/include/json_vs_json_comparator.inc
+file path=usr/mysql/5.7/mysql-test/include/keyring_udf_keyring_plugin_loaded.inc
+file path=usr/mysql/5.7/mysql-test/include/keyring_udf_keyring_plugin_not_loaded.inc
+file path=usr/mysql/5.7/mysql-test/include/keyring_udf_keyring_udf_plugin_not_loaded.inc
+file path=usr/mysql/5.7/mysql-test/include/keyring_udf_missing_plugin.inc
 file path=usr/mysql/5.7/mysql-test/include/kill_and_restart_mysqld.inc
 file path=usr/mysql/5.7/mysql-test/include/kill_at_sync_point.inc
 file path=usr/mysql/5.7/mysql-test/include/kill_mysqld.inc
@@ -650,7 +662,6 @@
 file path=usr/mysql/5.7/mysql-test/include/ps_query_explain_select.inc
 file path=usr/mysql/5.7/mysql-test/include/ps_renew.inc
 file path=usr/mysql/5.7/mysql-test/include/purge_first_log.inc
-file path=usr/mysql/5.7/mysql-test/include/python_with_json.inc
 file path=usr/mysql/5.7/mysql-test/include/query_cache.inc
 file path=usr/mysql/5.7/mysql-test/include/query_cache_sql_prepare.inc
 file path=usr/mysql/5.7/mysql-test/include/rand.inc
@@ -726,6 +737,7 @@
 file path=usr/mysql/5.7/mysql-test/include/set_binlog_format_mixed.sql
 file path=usr/mysql/5.7/mysql-test/include/set_binlog_format_row.sql
 file path=usr/mysql/5.7/mysql-test/include/set_binlog_format_statement.sql
+file path=usr/mysql/5.7/mysql-test/include/set_gtid_next.inc
 file path=usr/mysql/5.7/mysql-test/include/set_gtid_next_gtid_mode_agnostic.inc
 file path=usr/mysql/5.7/mysql-test/include/setup_fake_relay_log.inc
 file path=usr/mysql/5.7/mysql-test/include/show_all_binlogs.inc
@@ -747,13 +759,6 @@
 file path=usr/mysql/5.7/mysql-test/include/show_slave_status.inc
 file path=usr/mysql/5.7/mysql-test/include/shutdown_mysqld.inc
 file path=usr/mysql/5.7/mysql-test/include/sp-vars.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_equalto.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_greaterthan.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_greaterthanequalto.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_lessthan.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_lessthanequalto.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_notequal.inc
-file path=usr/mysql/5.7/mysql-test/include/sql_vs_json_null_safe_equal_to.inc
 file path=usr/mysql/5.7/mysql-test/include/start_group_replication.inc
 file path=usr/mysql/5.7/mysql-test/include/start_mysqld.inc
 file path=usr/mysql/5.7/mysql-test/include/start_slave.inc
@@ -800,6 +805,7 @@
 file path=usr/mysql/5.7/mysql-test/include/wait_condition_or_abort.inc
 file path=usr/mysql/5.7/mysql-test/include/wait_condition_sp.inc
 file path=usr/mysql/5.7/mysql-test/include/wait_for_binlog_event.inc
+file path=usr/mysql/5.7/mysql-test/include/wait_for_file_closed.inc
 file path=usr/mysql/5.7/mysql-test/include/wait_for_ndb_committed_to_binlog.inc
 file path=usr/mysql/5.7/mysql-test/include/wait_for_query_to_fail.inc
 file path=usr/mysql/5.7/mysql-test/include/wait_for_query_to_succeed.inc
@@ -922,6 +928,7 @@
 file path=usr/mysql/5.7/mysql-test/r/archive_symlink.result
 file path=usr/mysql/5.7/mysql-test/r/audit_plugin.result
 file path=usr/mysql/5.7/mysql-test/r/audit_plugin_2.result
+file path=usr/mysql/5.7/mysql-test/r/audit_plugin_bugs.result
 file path=usr/mysql/5.7/mysql-test/r/auth_rpl.result
 file path=usr/mysql/5.7/mysql-test/r/auto_increment.result
 file path=usr/mysql/5.7/mysql-test/r/backup.result
@@ -1182,6 +1189,7 @@
 file path=usr/mysql/5.7/mysql-test/r/grant_alter_user.result
 file path=usr/mysql/5.7/mysql-test/r/grant_alter_user_qa.result
 file path=usr/mysql/5.7/mysql-test/r/grant_cache.result
+file path=usr/mysql/5.7/mysql-test/r/grant_debug.result
 file path=usr/mysql/5.7/mysql-test/r/grant_explain_non_select.result
 file path=usr/mysql/5.7/mysql-test/r/grant_lowercase_fs.result
 file path=usr/mysql/5.7/mysql-test/r/grant_user_lock.result
@@ -1193,6 +1201,7 @@
 file path=usr/mysql/5.7/mysql-test/r/group_by_fd_ps_prot.result
 file path=usr/mysql/5.7/mysql-test/r/group_min_max.result
 file path=usr/mysql/5.7/mysql-test/r/group_min_max_innodb.result
+file path=usr/mysql/5.7/mysql-test/r/gtid_next_xa_binlog_off.result
 file path=usr/mysql/5.7/mysql-test/r/gtids_anonymous_trxs_violations.result
 file path=usr/mysql/5.7/mysql-test/r/handler_innodb.result
 file path=usr/mysql/5.7/mysql-test/r/handler_myisam.result
@@ -1280,6 +1289,7 @@
 file path=usr/mysql/5.7/mysql-test/r/initialize-sha256.result
 file path=usr/mysql/5.7/mysql-test/r/initialize-yassl-warning.result
 file path=usr/mysql/5.7/mysql-test/r/initialize.result
+file path=usr/mysql/5.7/mysql-test/r/initialize_gtid.result
 file path=usr/mysql/5.7/mysql-test/r/innodb_deadlock.result
 file path=usr/mysql/5.7/mysql-test/r/innodb_disabled.result
 file path=usr/mysql/5.7/mysql-test/r/innodb_explain_json_non_select_all.result
@@ -1313,6 +1323,7 @@
 file path=usr/mysql/5.7/mysql-test/r/ipv4_as_ipv6.result
 file path=usr/mysql/5.7/mysql-test/r/ipv6.result
 file path=usr/mysql/5.7/mysql-test/r/is_debug_build.require
+file path=usr/mysql/5.7/mysql-test/r/is_deprecation.result
 file path=usr/mysql/5.7/mysql-test/r/is_embedded.require
 file path=usr/mysql/5.7/mysql-test/r/isam.result
 file path=usr/mysql/5.7/mysql-test/r/join.result
@@ -1330,10 +1341,6 @@
 file path=usr/mysql/5.7/mysql-test/r/join_outer_bka.result
 file path=usr/mysql/5.7/mysql-test/r/join_outer_bka_nixbnl.result
 file path=usr/mysql/5.7/mysql-test/r/join_outer_innodb.result
-file path=usr/mysql/5.7/mysql-test/r/json.result
-file path=usr/mysql/5.7/mysql-test/r/json_client.result
-file path=usr/mysql/5.7/mysql-test/r/json_conversions.result
-file path=usr/mysql/5.7/mysql-test/r/json_index.result
 file path=usr/mysql/5.7/mysql-test/r/key.result
 file path=usr/mysql/5.7/mysql-test/r/key_cache.result
 file path=usr/mysql/5.7/mysql-test/r/key_diff.result
@@ -1424,6 +1431,7 @@
 file path=usr/mysql/5.7/mysql-test/r/mysql_binary_mode.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_client_test.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_client_test_embedded.result
+file path=usr/mysql/5.7/mysql-test/r/mysql_client_test_qcache.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_comments.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_config_editor.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_cp932.result
@@ -1438,6 +1446,7 @@
 file path=usr/mysql/5.7/mysql-test/r/mysql_tzinfo_to_sql.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_tzinfo_to_sql_sys.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_upgrade.result
+file path=usr/mysql/5.7/mysql-test/r/mysql_upgrade_slave_master_info.result
 file path=usr/mysql/5.7/mysql-test/r/mysql_upgrade_ssl.result
 file path=usr/mysql/5.7/mysql-test/r/mysqladmin.result
 file path=usr/mysql/5.7/mysql-test/r/mysqlbinlog.result
@@ -1472,9 +1481,14 @@
 file path=usr/mysql/5.7/mysql-test/r/negation_elimination.result
 file path=usr/mysql/5.7/mysql-test/r/no-threads.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog.result
+file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_empty_statement.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_empty_transaction.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_mode_on.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_mode_on_explicit_prepared_stmts.result
+file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_begin_caused_trx.result
+file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_partially_failed_stmts.result
+file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_partially_failed_stmts_anonymous.result
+file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_partially_failed_stmts_error.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_single_stmt_trx_rollback.result
 file path=usr/mysql/5.7/mysql-test/r/no_binlog_gtid_next_temporary_table.result
 file path=usr/mysql/5.7/mysql-test/r/not_asan.require
@@ -1542,6 +1556,7 @@
 file path=usr/mysql/5.7/mysql-test/r/partition_debug.result
 file path=usr/mysql/5.7/mysql-test/r/partition_debug_sync.result
 file path=usr/mysql/5.7/mysql-test/r/partition_debug_sync_stmt.result
+file path=usr/mysql/5.7/mysql-test/r/partition_deprecation.result
 file path=usr/mysql/5.7/mysql-test/r/partition_error.result
 file path=usr/mysql/5.7/mysql-test/r/partition_exchange.result
 file path=usr/mysql/5.7/mysql-test/r/partition_explicit_prune.result
@@ -1580,6 +1595,7 @@
 file path=usr/mysql/5.7/mysql-test/r/perror.result
 file path=usr/mysql/5.7/mysql-test/r/plugin.result
 file path=usr/mysql/5.7/mysql-test/r/plugin_auth.result
+file path=usr/mysql/5.7/mysql-test/r/plugin_auth_expire.result
 file path=usr/mysql/5.7/mysql-test/r/plugin_auth_qa.result
 file path=usr/mysql/5.7/mysql-test/r/plugin_auth_qa_1.result
 file path=usr/mysql/5.7/mysql-test/r/plugin_auth_qa_2.result
@@ -1645,6 +1661,7 @@
 file path=usr/mysql/5.7/mysql-test/r/rpl_connect_attr.result
 file path=usr/mysql/5.7/mysql-test/r/rpl_extraColmaster_innodb.result
 file path=usr/mysql/5.7/mysql-test/r/rpl_extraColmaster_myisam.result
+file path=usr/mysql/5.7/mysql-test/r/rpl_multi_source_mysqldump_slave.result
 file path=usr/mysql/5.7/mysql-test/r/rpl_mysqldump_slave.result
 file path=usr/mysql/5.7/mysql-test/r/schema.result
 file path=usr/mysql/5.7/mysql-test/r/secure_file_priv_win.result
@@ -1668,12 +1685,12 @@
 file path=usr/mysql/5.7/mysql-test/r/server_offline_4.result
 file path=usr/mysql/5.7/mysql-test/r/server_offline_5.result
 file path=usr/mysql/5.7/mysql-test/r/server_offline_6.result
-file path=usr/mysql/5.7/mysql-test/r/server_startup_shutdown_time.result
 file path=usr/mysql/5.7/mysql-test/r/server_uuid.result
 file path=usr/mysql/5.7/mysql-test/r/server_uuid_embedded.result
 file path=usr/mysql/5.7/mysql-test/r/session_tracker.result
 file path=usr/mysql/5.7/mysql-test/r/session_tracker_trx_state.result
 file path=usr/mysql/5.7/mysql-test/r/shm.result
+file path=usr/mysql/5.7/mysql-test/r/shm_server_restart.result
 file path=usr/mysql/5.7/mysql-test/r/show_check.result
 file path=usr/mysql/5.7/mysql-test/r/show_profile.result
 file path=usr/mysql/5.7/mysql-test/r/show_variables.result
@@ -1723,6 +1740,7 @@
 file path=usr/mysql/5.7/mysql-test/r/ssl_8k_key.result
 file path=usr/mysql/5.7/mysql-test/r/ssl_and_innodb.result
 file path=usr/mysql/5.7/mysql-test/r/ssl_auto_detect_openssl.result
+file path=usr/mysql/5.7/mysql-test/r/ssl_ca.result
 file path=usr/mysql/5.7/mysql-test/r/ssl_cipher.result
 file path=usr/mysql/5.7/mysql-test/r/ssl_compress.result
 file path=usr/mysql/5.7/mysql-test/r/ssl_connect.result
@@ -1845,6 +1863,7 @@
 file path=usr/mysql/5.7/mysql-test/r/type_varchar.result
 file path=usr/mysql/5.7/mysql-test/r/type_year.result
 file path=usr/mysql/5.7/mysql-test/r/udf.result
+file path=usr/mysql/5.7/mysql-test/r/udf_services.result
 file path=usr/mysql/5.7/mysql-test/r/udf_skip_grants.result
 file path=usr/mysql/5.7/mysql-test/r/union.result
 file path=usr/mysql/5.7/mysql-test/r/unsafe_binlog_innodb.result
@@ -1856,9 +1875,11 @@
 file path=usr/mysql/5.7/mysql-test/r/user_var-binlog.result
 file path=usr/mysql/5.7/mysql-test/r/user_var.result
 file path=usr/mysql/5.7/mysql-test/r/validate_password_plugin.result
+file path=usr/mysql/5.7/mysql-test/r/validate_password_plugin_check_user.result
 file path=usr/mysql/5.7/mysql-test/r/varbinary.result
 file path=usr/mysql/5.7/mysql-test/r/variables-big.result
 file path=usr/mysql/5.7/mysql-test/r/variables-notembedded.result
+file path=usr/mysql/5.7/mysql-test/r/variables-win.result
 file path=usr/mysql/5.7/mysql-test/r/variables.result
 file path=usr/mysql/5.7/mysql-test/r/variables_community.result
 file path=usr/mysql/5.7/mysql-test/r/variables_debug.result
@@ -1891,11 +1912,13 @@
 file path=usr/mysql/5.7/mysql-test/r/wl6978.result
 file path=usr/mysql/5.7/mysql-test/r/xa.result
 file path=usr/mysql/5.7/mysql-test/r/xa_debug.result
+file path=usr/mysql/5.7/mysql-test/r/xa_gtid.result
 file path=usr/mysql/5.7/mysql-test/r/xa_prepared_binlog_off.result
 file path=usr/mysql/5.7/mysql-test/r/xml.result
 dir  path=usr/mysql/5.7/mysql-test/std_data
 file path=usr/mysql/5.7/mysql-test/std_data/.mylogin.cnf
 file path=usr/mysql/5.7/mysql-test/std_data/14897.frm
+file path=usr/mysql/5.7/mysql-test/std_data/256kb.json
 file path=usr/mysql/5.7/mysql-test/std_data/55_temporal.MYD
 file path=usr/mysql/5.7/mysql-test/std_data/55_temporal.MYI
 file path=usr/mysql/5.7/mysql-test/std_data/55_temporal.frm
@@ -2112,6 +2135,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/keyring_file.result
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/keyring_file_data.result
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/keyring_file_data_qa.result
+file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/keyring_udf.result
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/mysql_native_plugin.result
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/mysql_no_login.result
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/r/mysql_protocol_types.result
@@ -2164,6 +2188,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/keyring_file_data.test
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/keyring_file_data_qa-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/keyring_file_data_qa.test
+file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/keyring_udf-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/keyring_udf.test
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/mysql_native_plugin.test
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/mysql_no_login-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/auth_sec/t/mysql_no_login.test
@@ -2226,6 +2252,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_crash_safe_master_checksum.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_database.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_delete_and_flush_index.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_dmls_on_tmp_tables_readonly.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_drop_if_exists.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency_create_select_consistent.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency_create_select_violation.result
@@ -2236,13 +2263,16 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency_trx_nontrx_consistent.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_enforce_gtid_consistency_trx_nontrx_violation.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_error_action.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_foreign_key_parent_table_deleted.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_format_switch_in_tmp_table.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_grant.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_grant_alter_user.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_group_commit_flush_crash.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_group_commit_gtid_order.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_group_commit_indefinite_wait.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_group_commit_sync_delay.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_group_commit_sync_no_delay_count.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_automatic_using_rolled_back.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_cache.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_errors.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_exhausted.result
@@ -2255,6 +2285,9 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_innodb.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_myisam.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_start_stop.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_begin_caused_trx.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_partially_failed_grant.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_partially_failed_stmts.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_single_stmt_trx_rollback.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_temporary_table.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_gtid_next_xa.result
@@ -2292,6 +2325,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_mysqlbinlog_start_stop_slave_server_id.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_nogtid_mix_response_packet.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_old_versions.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_purge_binary_logs_stall.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_query_filter_rules.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_reset_master.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_rewrite.result
@@ -2338,6 +2372,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_stm_user_variables.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_switch_inside_trans.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_temporary_tables_user_var_event.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_tmp_table.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_truncate_kill.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_truncate_myisam.result
@@ -2356,6 +2391,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_write_error.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_handling.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_modify_gtid_executed_explicitly.result
+file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_prepare_failure.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_prepared_disconnect.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_select_gtid_executed_explicitly_crash.result
 file path=usr/mysql/5.7/mysql-test/suite/binlog/r/binlog_xa_trx_gtid_response_packet.result
@@ -2385,6 +2421,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_crash_safe_master_checksum.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_database.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_dmls_on_tmp_tables_readonly.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_drop_if_exists.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_enforce_gtid_consistency_create_select_consistent.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_enforce_gtid_consistency_create_select_violation.test
@@ -2396,6 +2433,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_enforce_gtid_consistency_trx_nontrx_violation.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_error_action-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_error_action.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_foreign_key_parent_table_deleted-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_foreign_key_parent_table_deleted.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_format_switch_in_tmp_table.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_grant.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_grant_alter_user-master.opt
@@ -2403,8 +2442,10 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_flush_crash-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_flush_crash.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_gtid_order.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_indefinite_wait.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_sync_delay.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_group_commit_sync_no_delay_count.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_automatic_using_rolled_back.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_cache-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_cache.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_errors-master.opt
@@ -2422,6 +2463,9 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_mysqlbinlog_row_innodb.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_mysqlbinlog_row_myisam.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_mysqlbinlog_start_stop.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_begin_caused_trx.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_partially_failed_grant.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_partially_failed_stmts.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_single_stmt_trx_rollback.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_temporary_table.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_gtid_next_xa.test
@@ -2466,6 +2510,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_mysqlbinlog_start_stop_slave_server_id.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_nogtid_mix_response_packet.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_old_versions.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_purge_binary_logs_stall-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_purge_binary_logs_stall.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_query_filter_rules-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_query_filter_rules.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_reset_master.test
@@ -2524,6 +2570,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_stm_user_variables.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_switch_inside_trans.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_temporary_tables_user_var_event.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_tmp_table.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_truncate_kill.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_truncate_myisam.test
@@ -2546,6 +2593,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_write_error.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_handling.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_modify_gtid_executed_explicitly.test
+file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_prepare_failure.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_prepared_disconnect.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_select_gtid_executed_explicitly_crash.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/binlog_xa_trx_gtid_response_packet-master.opt
@@ -2554,6 +2602,43 @@
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/log_builtin_as_identified_by_password-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/log_builtin_as_identified_by_password.test
 file path=usr/mysql/5.7/mysql-test/suite/binlog/t/show_binlog_events_no_lock.test
+dir  path=usr/mysql/5.7/mysql-test/suite/connection_control
+dir  path=usr/mysql/5.7/mysql-test/suite/connection_control/inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/check_connection_delay.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/cleanup_proxy_accounts.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/have_connection_control_plugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/have_test_plugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/install_connection_control_plugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/set_after_marker.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/set_before_marker.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/setup_proxy_accounts.inc
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/inc/uninstall_connection_control_plugin.inc
+dir  path=usr/mysql/5.7/mysql-test/suite/connection_control/r
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_anonymous_user.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_info_schema_view.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_invalid_users.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_min_max.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_proxy_users.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/connection_delay_valid_users.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/status_variables.result
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/r/system_variables.result
+dir  path=usr/mysql/5.7/mysql-test/suite/connection_control/t
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_anonymous_user-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_anonymous_user.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_info_schema_view-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_info_schema_view.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_invalid_users-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_invalid_users.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_min_max-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_min_max.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_proxy_users-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_proxy_users.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_valid_users-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/connection_delay_valid_users.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/status_variables-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/status_variables.test
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/system_variables-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/connection_control/t/system_variables.test
 dir  path=usr/mysql/5.7/mysql-test/suite/engines
 file path=usr/mysql/5.7/mysql-test/suite/engines/README
 dir  path=usr/mysql/5.7/mysql-test/suite/engines/funcs
@@ -2830,26 +2915,44 @@
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_multicolumn_same.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_multicolumn_same_string.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_analyze.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_analyze_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_check.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_check_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_hash.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_hash_date_function.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_hash_date_function_non_native.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_hash_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_key.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_key_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_linear_key_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_list_directory.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_list_error.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_optimize.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_optimize_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_rebuild.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_rebuild_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_remove.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_remove_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_divide.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_divide_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_merge.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_reorg_merge_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_repair.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_repair_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_sub1.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_sub1_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_sub2.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_sub2_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_value.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_value_error.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_value_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_value_specific.result
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_partition_value_specific_non_native.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_rename.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_rename_across_database.result
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/r/tc_rename_error.result
@@ -3196,26 +3299,44 @@
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_multicolumn_same.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_multicolumn_same_string.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_analyze.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_analyze_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_change_from_range_to_hash_key.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_change_from_range_to_hash_key_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_check.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_check_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_hash.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_hash_date_function.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_hash_date_function_non_native.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_hash_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_key.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_key_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_linear_key.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_linear_key_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_list_directory.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_list_error.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_optimize.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_optimize_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_rebuild.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_rebuild_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_remove.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_remove_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_divide.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_divide_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_hash_key.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_hash_key_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_merge.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_reorg_merge_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_repair.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_repair_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_sub1.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_sub1_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_sub2.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_sub2_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_value.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_value_error.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_value_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_value_specific.test
+file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_partition_value_specific_non_native.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_rename.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_rename_across_database.test
 file path=usr/mysql/5.7/mysql-test/suite/engines/funcs/t/tc_rename_error.test
@@ -3887,6 +4008,712 @@
 file path=usr/mysql/5.7/mysql-test/suite/gis/t/spatial_utility_function_make_envelope.test
 file path=usr/mysql/5.7/mysql-test/suite/gis/t/spatial_utility_function_simplify.test
 file path=usr/mysql/5.7/mysql-test/suite/gis/t/spatial_utility_function_validate.test
+dir  path=usr/mysql/5.7/mysql-test/suite/group_replication
+dir  path=usr/mysql/5.7/mysql-test/suite/group_replication/inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_change_master_hidden.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_clear_bootstrap_group.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_clear_configuration.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_configuration.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_count_primaries_secondaries.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_error_out.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_find_a_primary.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_mts_indexes_commit_order_validation.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_parallel_local_and_remote_transactions.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_set_bootstrap_group.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_single_primary_mode.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_single_primary_with_transaction_isolation.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_start_applier_sql_thread.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_stop_applier_sql_thread.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_wait_for_member_state.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_wait_for_number_of_members.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_wait_for_role_count.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/gr_wait_primary_member_uuid.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/group_replication.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/group_replication_end.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/have_group_replication_gtid_assignment_block_size_1.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/have_group_replication_plugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/have_group_replication_plugin_base.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/kill_and_restart_mysqld.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/start_and_bootstrap_group_replication.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/inc/uninstall_group_replication_plugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/my.cnf
+dir  path=usr/mysql/5.7/mysql-test/suite/group_replication/r
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_DML_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_abort_query_on_plugin_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_abort_query_on_plugin_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_addmember_during_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_addmember_insert_on_donor.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_addmember_insert_on_nondonor.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_applier_early_failure.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_applier_initialization.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_applier_received_set.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_applier_slave_commands.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_applier_thread_error_detection.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_auto_increment_increment.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_auto_increment_start_stop_parallel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_autoincrement_parallel_insert.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_autostart_on_install.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_binlog_replay_to_group.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_blob.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_capture.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_certifier_garbage_collection.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_certifier_message_same_member.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_change_master_hidden.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_change_master_hidden_ps_protocol.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_change_master_not_replicated.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_columns_partition_tables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_command_line_recovery_ssl_validation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_communication_configuration.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_compatibility_rules.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_compatibility_rules_and_force_lower_version_member.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_compound_statements.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_compression_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_concurrent_events_insert_with_select.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_concurrent_uninstall_start.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_concurrent_uninstall_stop.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_core_replication_commands.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_donor_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_donor_server_continuously.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_recovery_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_safe_master.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_server_id.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crash_while_dml_and_some_server_recovering.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_crud_sql_service.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ddl_no_autocommit.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_delayed_view_change_write_local_commit.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_delayed_view_change_write_local_commit_donor_crash.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_delayed_view_change_write_to_binary_log.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_dependent_ddl_dml_same_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_disregard_nonunique_key.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_executed_sets_compatibility.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_filters.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_flow_control_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_flush_applier_channel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_flush_logs.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_error_on_before_commit_listener.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_lower_version_member.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_member_expel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_peer_addresses_3_to_2.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_peer_addresses_option.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_force_peer_addresses_option_parallel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_foreign_checks_disabled.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_foreign_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_foreign_key_on_unique_key.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_full_group_shutdown.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_generated_column.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_gno_exhausted.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_group_gtid_initialize_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_group_members_change.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_group_name_validation_on_boot.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_gtid_assignment_block_size.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_gtid_assignment_blocks_gaps_in_the_beginning.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_gtid_assignment_blocks_near_gno_exhaustion.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_hash_partition_tables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_high_prio_rollback.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_high_prio_trx.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_huge_gtid_executed.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_huge_write_set.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_incorrect_group_name_join.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_inject_join_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_inject_pipeline_error_local_gtid.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_inject_pipeline_error_remote_gtid.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_invoked_features.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ip_whitelist_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_key_rotation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_large_view_change_event_size.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_last_conflict_free_transaction.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_list_partition_tables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_local_applier_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_lock_tables_unblock.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_logged_view_change_events.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_lower_version_member.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_majority_failover_while_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_majority_loss_2_to_1.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_majority_loss_5_to_2.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_majority_loss_5_to_2_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_majority_loss_restart.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_max_group_size.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_member_host_port.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multi_level_foreign_key.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multi_primary_foreign_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multi_primary_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multi_primary_unique_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multi_unique_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multiple_groups_in_group_seeds.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multiple_groups_with_same_name.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_multiple_version_members.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_negative_certification.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_nullable_unique_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_operation_ignore_super_read_only.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_applier_indexes.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_applier_indexes_commit_order.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_applier_sequential_indexes.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_insert.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_inserts_same_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_stop_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_update.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_parallel_update_same_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_partial_trx_in_applier_relay_log.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema_connect_status.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema_group_member_stats.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema_group_members.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema_group_members_number.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_perfschema_parallel_applier.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_pipeline_applier_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_pipeline_certification_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_plugin_components_stop_timeout.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_plugin_reinstall_with_start_on_boot.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_poll_spin_loops.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_prepared_statements.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_prerequisite_variables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_primary_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_primary_key_conflict_xa.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_provisioning_logical_backup.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_provisioning_mysqldump_backup.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_psi_keys.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_random_view_id_generator.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_range_partition_tables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_read_committed_isolation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_read_uncommitted_isolation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_readmode_on_autostart.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_received_sets_compatibility_member_accepted.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_received_sets_compatibility_member_rejected.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_change_master.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_channel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_completion_mode.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_completion_mode_failure.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_completion_mode_live_switch.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_completion_mode_option.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_conflicting_data_failover.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_conflicting_data_failure.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_connection_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_donor_failover.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_donor_retry.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_double_view_update.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_fails_to_detect_thread_stop.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_no_donors.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_no_more_donors.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_purged_donor_failover.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_reconnection_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_single_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_slave_commands.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_ssl_and_ssl_mode.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_stop_super_read_only.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_super_read_only.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_updates.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_recovery_user_password_nonexistent.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_rejoin_bootstrap.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_rejoin_no_bootstrap.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_relay_log_name_change.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_relay_log_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_repeatable_read_isolation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_replicate_group_to_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_replicate_server_to_group.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_replicate_server_to_group_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_reset_master.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_reset_master_before_provisioning.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_reset_slave_channel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_restart.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_restore_super_read_only.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_row_implicit_commit_binlog.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_runtime_verifications.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_serializable_isolation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_server_failover_while_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_server_failover_while_dml_on_other.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_server_id_0.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_set_gtid_mode.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_set_gtid_next.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_set_gtid_next_rollback_on_certification.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_set_read_only_before_leave_group.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_set_super_read_only_before_leave_group.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_show_global_and_session_variables.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_show_gr_activity.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_show_slave_hosts.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_show_slave_status_for_channel_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_and_leader_election.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_and_leader_election_on_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_conflict_detection.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_majority_loss_1.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_majority_loss_2.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_member_off_status_check.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_member_on_status_check.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_mixed_configuration.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_mysqlbinlog.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_read_write_auto_setting.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_ro.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_stop.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_super_read_at_exit.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_var_checks.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_with_foreign_key_cascade.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_single_primary_with_transaction_isolation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_gtid_multiple_servers.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_gtid_remote_server.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_gtid_single_gtid.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_gtid_view_change_event.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_gtid_view_change_full_shutdown.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_performance_schema_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_view_change_event.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_skip_wait_for_view_modification.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_slow_member_garbage_collection.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl_mode.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl_mode_basic.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl_mode_verify_identity_error.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl_options.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_ssl_options2.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stable_set_on_view_change.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_on_boot.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_replication_auto.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_replication_auto_with_ssl_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_replication_auto_write_protection.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_stop_behaviour.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_stop_parallel_applier_database.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_stop_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_stop_slave_channel.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_start_stop_stress.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_startup_verifications.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_startup_verifications_not_binlog.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_startup_verifications_not_gtid.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_startup_verifications_not_log_slave_updates.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_startup_verifications_not_table_repositories.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_gr_during_dml_01.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_gr_during_dml_02.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_procedure_hang.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_when_unreachable.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_with_gtid_gaps.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_stop_with_gtid_gaps_applier.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_storage_engines.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_super_read_only_version_module.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_table_without_primary_key.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_to_binlogless_slave.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_transaction_compatibility_basics.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_uninstall_install_plugin.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_uninstall_while_disabled.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_unique_key_conflict.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_unique_key_table_requirements.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_user.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_user_admin.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_user_recreation.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_variables_default_values.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_variables_mysqladmin.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_view_change_event_wait_break.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_view_change_order.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_view_changes.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_wait_for_executed_gtid_set_no_timeout.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_wait_for_executed_gtid_set_with_sleep.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_without_perfschema.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_write_set_extraction_algorithm.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/gr_xa.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/r/group_replication.result
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/rpl_1slave_base.cnf
+dir  path=usr/mysql/5.7/mysql-test/suite/group_replication/t
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/disabled.def
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_000400_000500_incompatible-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_DML_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_abort_query_on_plugin_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_abort_query_on_plugin_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_during_dml.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_during_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_insert_on_donor.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_insert_on_donor.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_insert_on_nondonor.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_addmember_insert_on_nondonor.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_applier_early_failure.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_applier_initialization.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_applier_received_set.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_applier_slave_commands.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_applier_thread_error_detection.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_auto_increment_increment-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_auto_increment_increment.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_auto_increment_increment.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_auto_increment_start_stop_parallel.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_auto_increment_start_stop_parallel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_autoincrement_parallel_insert.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_autostart_on_install-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_autostart_on_install.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_binlog_replay_to_group.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_binlog_replay_to_group.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_blob.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_capture.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_certifier_garbage_collection.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_certifier_message_same_member-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_certifier_message_same_member.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_change_master_hidden-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_change_master_hidden.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_change_master_hidden_ps_protocol-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_change_master_hidden_ps_protocol.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_change_master_not_replicated.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_columns_partition_tables.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_columns_partition_tables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_command_line_recovery_ssl_validation-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_command_line_recovery_ssl_validation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_communication_configuration.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compatibility_rules.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compatibility_rules_and_force_lower_version_member.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compound_statements.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compression_options-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compression_options-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_compression_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_concurrent_events_insert_with_select.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_concurrent_events_insert_with_select.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_concurrent_uninstall_start.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_concurrent_uninstall_stop.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_core_replication_commands.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_core_replication_commands.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_donor_server.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_donor_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_donor_server_continuously.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_donor_server_continuously.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_recovery_server.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_recovery_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_safe_master-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_safe_master-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_safe_master.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_server_id.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_while_dml_and_some_server_recovering.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crash_while_dml_and_some_server_recovering.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_crud_sql_service.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ddl_no_autocommit.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_local_commit.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_local_commit.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_local_commit_donor_crash.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_local_commit_donor_crash.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_to_binary_log-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_delayed_view_change_write_to_binary_log.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_dependent_ddl_dml_same_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_disregard_nonunique_key.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_executed_sets_compatibility.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_executed_sets_compatibility.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_filters.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_filters.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_flow_control_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_flush_applier_channel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_flush_logs-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_flush_logs.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_error_on_before_commit_listener.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_lower_version_member.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_member_expel.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_member_expel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_peer_addresses_3_to_2.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_peer_addresses_3_to_2.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_peer_addresses_option.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_force_peer_addresses_option_parallel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_foreign_checks_disabled.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_foreign_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_foreign_key_on_unique_key.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_full_group_shutdown.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_full_group_shutdown.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_generated_column.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gno_exhausted.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_gtid_initialize_error-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_gtid_initialize_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_members_change.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_members_change.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_name_validation_on_boot-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_group_name_validation_on_boot.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_block_size-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_block_size.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_blocks_gaps_in_the_beginning-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_blocks_gaps_in_the_beginning-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_blocks_gaps_in_the_beginning.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_gtid_assignment_blocks_near_gno_exhaustion.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_hash_partition_tables.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_hash_partition_tables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_heartbeat-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_high_prio_rollback.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_high_prio_trx.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_huge_gtid_executed.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_huge_write_set.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_incorrect_group_name_join.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_inject_join_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_inject_pipeline_error_local_gtid.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_inject_pipeline_error_remote_gtid.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_invoked_features.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ip_whitelist_options-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ip_whitelist_options-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ip_whitelist_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_key_rotation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_large_view_change_event_size.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_large_view_change_event_size.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_last_conflict_free_transaction.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_list_partition_tables.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_list_partition_tables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_local_applier_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_lock_tables_unblock.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_logged_view_change_events.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_logged_view_change_events.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_lower_version_member.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_failover_while_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_2_to_1.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_5_to_2.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_5_to_2.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_5_to_2_recovery.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_5_to_2_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_majority_loss_restart.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_max_group_size.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_member_host_port.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multi_level_foreign_key.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multi_primary_foreign_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multi_primary_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multi_primary_unique_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multi_unique_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_groups_in_group_seeds.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_groups_in_group_seeds.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_groups_with_same_name.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_groups_with_same_name.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_version_members.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_multiple_version_members.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_negative_certification.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_nullable_unique_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_operation_ignore_super_read_only.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_indexes.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_indexes.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_indexes_commit_order.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_indexes_commit_order.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_sequential_indexes.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_applier_sequential_indexes.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_insert.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_inserts_same_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_stop_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_update.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_parallel_update_same_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_partial_trx_in_applier_relay_log.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_partial_trx_in_applier_relay_log.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_connect_status-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_connect_status-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_connect_status.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_group_member_stats.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_group_members-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_group_members.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_group_members_number.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_group_members_number.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_parallel_applier-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_parallel_applier-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_perfschema_parallel_applier.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_pipeline_applier_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_pipeline_certification_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_plugin_components_stop_timeout.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_plugin_reinstall_with_start_on_boot-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_plugin_reinstall_with_start_on_boot.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_poll_spin_loops.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_prepared_statements.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_prerequisite_variables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_primary_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_primary_key_conflict_xa.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_provisioning_logical_backup.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_provisioning_logical_backup.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_provisioning_mysqldump_backup.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_provisioning_mysqldump_backup.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_psi_keys.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_random_view_id_generator-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_random_view_id_generator.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_range_partition_tables.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_range_partition_tables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_read_committed_isolation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_read_uncommitted_isolation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_readmode_on_autostart-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_readmode_on_autostart.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_received_sets_compatibility.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_received_sets_compatibility_member_accepted.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_received_sets_compatibility_member_accepted.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_received_sets_compatibility_member_rejected.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_received_sets_compatibility_member_rejected.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_change_master-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_change_master.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_channel-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_channel.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_channel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_completion_mode.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_completion_mode_failure.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_completion_mode_live_switch.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_completion_mode_option.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_conflicting_data_failover.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_conflicting_data_failover.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_conflicting_data_failure.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_connection_options.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_connection_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_donor_failover.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_donor_failover.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_donor_retry-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_donor_retry.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_double_view_update.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_fails_to_detect_thread_stop.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_fails_to_detect_thread_stop.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_no_donors.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_no_donors.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_no_more_donors.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_no_more_donors.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_purged_donor_failover.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_purged_donor_failover.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_reconnection_options.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_reconnection_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_single_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_slave_commands.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_ssl_and_ssl_mode-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_ssl_and_ssl_mode-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_ssl_and_ssl_mode.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_stop_super_read_only.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_super_read_only.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_updates.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_updates.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_recovery_user_password_nonexistent.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_rejoin_bootstrap.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_rejoin_no_bootstrap.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_relay_log_name_change.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_relay_log_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_repeatable_read_isolation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_group_to_server.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_group_to_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_server_to_group.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_server_to_group.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_server_to_group_conflict.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_replicate_server_to_group_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_master-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_master.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_master_before_provisioning.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_slave_channel-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_slave_channel-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_slave_channel.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_reset_slave_channel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_restart-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_restart.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_restore_super_read_only.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_row_implicit_commit_binlog.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_runtime_verifications.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_serializable_isolation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_server_failover_while_dml.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_server_failover_while_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_server_failover_while_dml_on_other.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_server_failover_while_dml_on_other.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_server_id_0.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_set_gtid_mode.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_set_gtid_next.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_set_gtid_next_rollback_on_certification.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_set_read_only_before_leave_group.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_set_super_read_only_before_leave_group.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_show_global_and_session_variables.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_show_gr_activity.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_show_slave_hosts.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_show_slave_status_for_channel_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_and_leader_election.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_and_leader_election.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_and_leader_election_on_error.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_and_leader_election_on_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_conflict_detection.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_conflict_detection.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_majority_loss_1.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_majority_loss_1.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_majority_loss_2.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_majority_loss_2.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_member_off_status_check.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_member_on_status_check.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_mixed_configuration.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_mysqlbinlog.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_mysqlbinlog.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_read_write_auto_setting.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_read_write_auto_setting.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_ro.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_stop.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_stop.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_super_read_at_exit.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_var_checks.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_with_foreign_key_cascade.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_single_primary_with_transaction_isolation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_gtid_multiple_servers.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_gtid_remote_server.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_gtid_single_gtid.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_gtid_view_change_event.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_gtid_view_change_full_shutdown.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_performance_schema_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_view_change_event.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_view_change_event.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_skip_wait_for_view_modification.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_slow_member_garbage_collection.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode_basic.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode_verify_identity_error-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode_verify_identity_error-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_mode_verify_identity_error.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_options-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_options.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_options2-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_ssl_options2.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stable_set_on_view_change.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_on_boot-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_on_boot.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_replication_auto-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_replication_auto.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_replication_auto_with_ssl_recovery-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_replication_auto_with_ssl_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_replication_auto_write_protection.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_behaviour.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_parallel_applier_database.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_slave_channel.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_slave_channel.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_stress.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_start_stop_stress.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_binlog-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_binlog-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_binlog.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_gtid-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_gtid.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_log_slave_updates-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_log_slave_updates.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_table_repositories.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_startup_verifications_not_table_repositories.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_gr_during_dml_01.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_gr_during_dml_01.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_gr_during_dml_02.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_gr_during_dml_02.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_procedure_hang.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_when_unreachable.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_when_unreachable.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_with_gtid_gaps.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_stop_with_gtid_gaps_applier.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_storage_engines.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_super_read_only_version_module.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_super_read_only_version_module.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_table_without_primary_key.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_to_binlogless_slave.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_to_binlogless_slave.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_transaction_compatibility_basics-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_transaction_compatibility_basics.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_uninstall_install_plugin.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_uninstall_while_disabled-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_uninstall_while_disabled.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_unique_key_conflict.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_unique_key_table_requirements.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_user-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_user.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_user_admin.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_user_recreation.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_variables_default_values.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_variables_mysqladmin.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_view_change_event_wait_break.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_view_change_order.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_view_changes.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_view_changes.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_wait_for_executed_gtid_set_no_timeout.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_wait_for_executed_gtid_set_with_sleep.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_without_perfschema.cnf
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_without_perfschema.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_write_set_extraction_algorithm-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_write_set_extraction_algorithm.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/gr_xa.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/group_replication.test
+file path=usr/mysql/5.7/mysql-test/suite/group_replication/t/suite.opt
 dir  path=usr/mysql/5.7/mysql-test/suite/innodb
 dir  path=usr/mysql/5.7/mysql-test/suite/innodb/include
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/alter_table_pk_no_sort.inc
@@ -3902,6 +4729,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/default_row_format_tablespace.inc
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/drop_workload_itt.inc
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/import.inc
+file path=usr/mysql/5.7/mysql-test/suite/innodb/include/innodb-multiple-tablespaces-cleanup.inc
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/innodb_bulk_create_index.inc
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/innodb_bulk_create_index_debug.inc
 file path=usr/mysql/5.7/mysql-test/suite/innodb/include/innodb_dict.inc
@@ -3938,6 +4766,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/alter_table_stage_progress.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/analyze_table.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/attachable_trx.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/autoinc_debug.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/blob-crash-16k.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/blob-crash-4k.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/blob-crash.result
@@ -3948,10 +4777,12 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/bulk_create_index_online.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/cascade_lock_wait.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/check_ibd_filesize_16k.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/check_sector_size.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/checksum.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/cmp_per_index.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/crc32_endianness.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create-index.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_isl_with_direct.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_table.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_tablespace.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_tablespace_16k.result
@@ -3963,6 +4794,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_tablespace_notembedded.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_tablespace_partition.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/create_tablespace_replication.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/deadlock_detect.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/default_row_format.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/default_row_format_16k.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/default_row_format_compatibility.result
@@ -3971,6 +4803,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/dropdb.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/file_format_defaults.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/file_format_upgrade_16k.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/flush-hang.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/foreign_key.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/help_verbose.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_1.result
@@ -3982,10 +4815,13 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_7.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_commit_crash.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_debug.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_fk.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/high_prio_trx_rpl.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/i_s_files_debug.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/import.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/import_export_4k.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/import_update_stats.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/index-online-norebuild.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/index_merge_threshold.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/index_tree_operation.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb-2byte-collation.result
@@ -4129,8 +4965,11 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_bulk_create_index_replication.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_bulk_create_index_small.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_corrupt_bit.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_corrupt_readonly.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_ctype_ldml.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_deadlock_with_autoinc.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_file_format.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_file_limit_check.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_force_recovery.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_high_prio_commit_crash.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_high_prio_rpl.result
@@ -4145,6 +4984,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_notembedded.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_page_size_func.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_pagesize_max_recordsize.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_prefix_index_check.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_prefix_index_restart_server.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_rename_index.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_rename_index_err.result
@@ -4156,6 +4996,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_auto_recalc_on_nonexistent.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_create_on_corrupted.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_create_table.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_del_mark.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_drop_locked.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_external_pages.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/innodb_stats_fetch.result
@@ -4213,6 +5054,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/records_in_range.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/row_format_redundant.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/sp_temp_table.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/stored_fk.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/strict_checksum.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/strict_mode.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/sys_tablestats.result
@@ -4239,8 +5081,11 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/update_time.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/update_time_wl6658.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_basic.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_blob.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_debug.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_debug_purge.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_fk.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_fk_restart.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_index.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_purge.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb/r/virtual_stats.result
@@ -4262,6 +5107,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/alter_table_stage_progress.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/analyze_table.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/attachable_trx.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/autoinc_debug.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/blob-crash-16k.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/blob-crash-4k.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/blob-crash.test
@@ -4274,12 +5120,16 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/bulk_create_index_online.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/cascade_lock_wait.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/check_ibd_filesize_16k.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/check_sector_size-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/check_sector_size.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/checksum.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/cmp_per_index-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/cmp_per_index.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/crc32_endianness.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/crc32_endianness.zip
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create-index.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_isl_with_direct-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_isl_with_direct.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_table.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_tablespace.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_tablespace_16k.test
@@ -4291,6 +5141,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_tablespace_notembedded.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_tablespace_partition.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/create_tablespace_replication.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/deadlock_detect.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/default_row_format.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/default_row_format_16k.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/default_row_format_compatibility.test
@@ -4301,6 +5152,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/file_format_defaults-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/file_format_defaults.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/file_format_upgrade_16k.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/flush-hang.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/foreign_key.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/help_verbose.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_1.test
@@ -4312,10 +5164,13 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_7.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_commit_crash.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_debug.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_fk.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/high_prio_trx_rpl.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/i_s_files_debug.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/import.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/import_export_4k.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/import_update_stats.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/index-online-norebuild.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/index_merge_threshold.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/index_tree_operation.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb-2byte-collation-master.opt
@@ -4494,10 +5349,14 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_bulk_create_index_replication.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_bulk_create_index_small.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_corrupt_bit.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_corrupt_readonly.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_ctype_ldml-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_ctype_ldml.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_deadlock_with_autoinc-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_deadlock_with_autoinc.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_file_format-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_file_format.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_file_limit_check.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_force_recovery.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_i_s_innodb_locks.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_i_s_innodb_trx.test
@@ -4513,7 +5372,9 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_mysql_rbk.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_notembedded.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_page_size_func.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_pagesize_max_recordsize.cnf
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_pagesize_max_recordsize.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_prefix_index_check.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_prefix_index_restart_server.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_rename_index.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_rename_index_err.test
@@ -4525,6 +5386,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_auto_recalc_on_nonexistent.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_create_on_corrupted.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_create_table.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_del_mark-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_del_mark.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_drop_locked.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_external_pages.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/innodb_stats_fetch.test
@@ -4585,6 +5448,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/missing_tablespaces.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/monitor.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/monitor_restart.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/mysqldump_max_recordsize.cnf
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/mysqldump_max_recordsize.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/optimizer_temporary_table-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/optimizer_temporary_table.test
@@ -4598,6 +5462,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/records_in_range.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/row_format_redundant.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/sp_temp_table.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/stored_fk.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/strict_checksum.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/strict_mode.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/sys_tablestats.test
@@ -4627,8 +5492,11 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/update_time.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/update_time_wl6658.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_basic.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_blob.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_debug.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_debug_purge.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_fk.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_fk_restart.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_index.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_purge.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb/t/virtual_stats.test
@@ -4664,6 +5532,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/index_table.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/innobase_drop_fts_index_table.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/large_records.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/limit_union.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/mecab_sjis.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/mecab_ujis.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/mecab_utf8.result
@@ -4686,6 +5555,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/stopword.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/stopword_charset.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/subexpr.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/sync.result
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/sync_block.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/tablespace_location.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/tablespace_location_error.result
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/r/transaction.result
@@ -4713,6 +5584,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/index_table.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/innobase_drop_fts_index_table.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/large_records.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/limit_union.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/mecab_sjis-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/mecab_sjis.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/mecab_ujis-master.opt
@@ -4743,6 +5615,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/savepoint.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/stopword.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/subexpr.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/sync.test
+file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/sync_block.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/tablespace_location.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/tablespace_location_error.test
 file path=usr/mysql/5.7/mysql-test/suite/innodb_fts/t/transaction.test
@@ -5308,6 +6182,55 @@
 file path=usr/mysql/5.7/mysql-test/suite/jp/t/jp_where_ucs2.test
 file path=usr/mysql/5.7/mysql-test/suite/jp/t/jp_where_ujis.test
 file path=usr/mysql/5.7/mysql-test/suite/jp/t/jp_where_utf8.test
+dir  path=usr/mysql/5.7/mysql-test/suite/json
+dir  path=usr/mysql/5.7/mysql-test/suite/json/inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_client.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_ddl.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_fulltext.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_functions.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_gcol.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_group_concat.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_insert.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/json_vs_json_comparator.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_equalto.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_greaterthan.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_greaterthanequalto.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_lessthan.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_lessthanequalto.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_notequal.inc
+file path=usr/mysql/5.7/mysql-test/suite/json/inc/sql_vs_json_null_safe_equal_to.inc
+dir  path=usr/mysql/5.7/mysql-test/suite/json/r
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_client_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_client_ndb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_conversions.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_ddl_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_ddl_ndb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_fulltext_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_functions_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_functions_ndb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_gcol_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_group_concat_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_group_concat_ndb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_insert_innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_insert_ndb.result
+file path=usr/mysql/5.7/mysql-test/suite/json/r/json_no_table.result
+dir  path=usr/mysql/5.7/mysql-test/suite/json/t
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_client_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_client_ndb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_conversions.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_ddl_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_ddl_ndb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_fulltext_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_functions_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_functions_ndb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_gcol_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_group_concat_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_group_concat_ndb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_insert_innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_insert_ndb.test
+file path=usr/mysql/5.7/mysql-test/suite/json/t/json_no_table.test
 dir  path=usr/mysql/5.7/mysql-test/suite/large_tests
 file path=usr/mysql/5.7/mysql-test/suite/large_tests/README.TXT
 dir  path=usr/mysql/5.7/mysql-test/suite/large_tests/r
@@ -5455,6 +6378,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/memc283_misc.result
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/memc284_misc.result
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/memc285_FTWRL.result
+file path=usr/mysql/5.7/mysql-test/suite/memcached/r/memcached_alter_column.result
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/memcached_virtual_block.result
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/rpl_memc270_1.result
 file path=usr/mysql/5.7/mysql-test/suite/memcached/r/rpl_memc271_2.result
@@ -5577,6 +6501,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memc284_misc.test
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memc285_FTWRL-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memc285_FTWRL.test
+file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memcached_alter_column-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memcached_alter_column.test
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memcached_virtual_block-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/memcached_virtual_block.test
 file path=usr/mysql/5.7/mysql-test/suite/memcached/t/rpl_memc270_1-master.opt
@@ -6689,7 +7615,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/opt_trace/t/subquery_no_prot.test
 file path=usr/mysql/5.7/mysql-test/suite/opt_trace/t/subquery_ps_prot.test
 file path=usr/mysql/5.7/mysql-test/suite/opt_trace/t/temp_table.test
-file path=usr/mysql/5.7/mysql-test/suite/opt_trace/validate_json.py
+file path=usr/mysql/5.7/mysql-test/suite/opt_trace/validate_json.pl
 dir  path=usr/mysql/5.7/mysql-test/suite/parts
 dir  path=usr/mysql/5.7/mysql-test/suite/parts/inc
 file path=usr/mysql/5.7/mysql-test/suite/parts/inc/methods1.inc
@@ -7159,7 +8085,6 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/include/wait_for_pfs_thread_count.inc
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/include/wait_till_sleep.inc
 dir  path=usr/mysql/5.7/mysql-test/suite/perfschema/r
-file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/aggregate.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/all_tests.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/alter_table_progress.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/bad_option.result
@@ -7369,6 +8294,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/file_misc.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/func_file_io.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/func_mutex.result
+file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/global_objects.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/global_read_lock.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_allow.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_deny.result
@@ -7576,6 +8502,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_2u_3t.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_2t.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/table_lock_aggregate_thread_4u_3t.result
+file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/table_name.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/table_schema.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/tampered_perfschema_table1.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/temp_table_io.result
@@ -7595,7 +8522,6 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/user_var_func.result
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/r/view_table_io.result
 dir  path=usr/mysql/5.7/mysql-test/suite/perfschema/t
-file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/aggregate.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/all_tests.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/alter_table_progress.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/bad_option.test
@@ -7826,6 +8752,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/file_misc.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/func_file_io.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/func_mutex.test
+file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/global_objects-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/global_objects.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/global_read_lock.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_allow.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_deny.test
@@ -8144,6 +9072,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_2u_3t.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_4u_2t.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/table_lock_aggregate_thread_4u_3t.test
+file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/table_name.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/table_schema.test
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/tampered_perfschema_table1-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/perfschema/t/tampered_perfschema_table1.test
@@ -8206,6 +9135,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/digest_collision.result
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/disabled_rule.result
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/engines.result
+file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/error-nodb.result
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/errors.result
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/insert.result
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/r/joins.result
@@ -8239,6 +9169,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/digest_collision.test
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/disabled_rule.test
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/engines.test
+file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/error-nodb-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/error-nodb.test
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/errors-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/errors.test
 file path=usr/mysql/5.7/mysql-test/suite/query_rewrite_plugins/t/insert.test
@@ -8327,15 +9259,18 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_autogen_query_multi_byte_char.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_autoinc_lock_style.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_avoid_temporal_upgrade.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_corruption.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_errors.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_failed_drop_table.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_gcommit_options.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_grant.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_index.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_invalid_event.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_json.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_binlog_sender_fseek.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_bit.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_bit_npk.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_blackhole.result
@@ -8423,11 +9358,9 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_grant.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_grant_plugin.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_commit_deadlock.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_commit_update_commit_group.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_replication_commands.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_replication_start_stop_gr_error.result
-file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_replication_user.result
-file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_replication_wait_for_executed_gtid_set_no_timeout.result
-file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_group_replication_wait_for_executed_gtid_set_with_sleep.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_binary_log_as_relay_log.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_create_select.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_delete_memory_table_after_start_server.result
@@ -8441,6 +9374,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_execution.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_failover.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_heartbeat_2slave.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_huge_gtid_set.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_ignore_table_filter_insensitive.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_ignore_table_filter_sensitive.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_loaddata_s.result
@@ -8460,7 +9394,6 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_split_statements.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_sql_until_before_after.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_stm_insert_delayed.result
-file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_stress_failover.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_table_repository_split_trx.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_temp_table.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_gtid_transaction_split_across_relay_logs.result
@@ -8549,6 +9482,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_logical_clock_timestamping.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_logical_clock_transaction_retry.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_logical_clock_wrong_start_pos.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_relay_log_post_crash_recovery.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_relay_log_recovery_on_error.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_slave_hang_with_partial_trx.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_slave_preserve_commit_order.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_mts_slave_preserve_commit_order_config_error.result
@@ -8573,6 +9508,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_parallel_channels_admin.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_perfschema.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_relay_log.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_relay_log_recovery.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_repo_info_errors.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_repository.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_multi_source_slave_files.result
@@ -8595,6 +9531,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_not_null_innodb.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_not_null_myisam.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_open_temp_tables_warning.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_operation_ignore_super_read_only.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_optimize.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_packet.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_parallel.result
@@ -8624,6 +9561,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_applier_status.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_applier_status_by_coordinator.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_applier_status_by_worker.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_applier_status_by_worker_last_seen_transaction.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_connect_config.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_connect_status.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_perfschema_no_master_uuid.result
@@ -8646,6 +9584,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replicate_rewrite_db.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replicate_same_server_id.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replication_observers_example_before_dml.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replication_observers_example_is_stopping.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replication_observers_example_plugin.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replication_observers_example_plugin_channels.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_replication_observers_example_plugin_channels_initialization.result
@@ -8657,6 +9596,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_report.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_report_port.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_reset_slave_all.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_reset_slave_all_thread_safe.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_rewrt_db.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_rotate_gtid.result
@@ -8724,6 +9664,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_record_find_myisam.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_reset_slave.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_rollback_to_savepoint.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_slave_skip_error_all.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_sp001.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_row_sp003.result
@@ -8785,6 +9726,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_simulate_create_chunk_failure.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_skip_ddl_errors_cli.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_skip_error.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_skip_error_no_binlog_slave.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_skip_incident.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_skip_slave_err_warnings.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
@@ -8804,6 +9746,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_spec_variables.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_special_charset.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_sporadic_master.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_sql_thread_error.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_sql_thread_killed_waiting_commit_lock.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_ssl.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_ssl1.result
@@ -8842,6 +9785,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_stm_until_pos_middle_gtid.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_stm_user_variables.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_stop_slave.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_stop_slave_threads_error.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_sync.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_sync_relay_log_info.result
@@ -8864,6 +9808,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_trunc_temp.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_truncate_2myisam.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_truncate_3innodb.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_trx_boundary_parser_relay_log_recovery.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_trx_boundary_parser_row.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_trx_boundary_parser_stmt.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_trx_boundary_parser_warning.result
@@ -8872,6 +9817,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_udf.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_unknown_ignorable_event.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_unsafe_statements.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_upgrade_slave_master_info.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_user.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_user_if_exists.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_user_lock.result
@@ -8887,7 +9833,10 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_wait_for_gtid_executed_unknown_uuid.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_xa_survive_crash_debug.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_xa_survive_disconnect.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_xa_survive_disconnect_lsu_off.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_xa_survive_disconnect_mixed_engines.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_xa_survive_disconnect_table.result
+file path=usr/mysql/5.7/mysql-test/suite/rpl/r/rpl_zombie_dump_threads.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/r/transactional_ddl_locking.result
 file path=usr/mysql/5.7/mysql-test/suite/rpl/rpl_1slave_base.cnf
 dir  path=usr/mysql/5.7/mysql-test/suite/rpl/t
@@ -8917,6 +9866,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_autogen_query_multi_byte_char.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_autoinc_lock_style.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_avoid_temporal_upgrade.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_begin_commit_rollback-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_begin_commit_rollback-slave.opt
@@ -8924,6 +9874,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_corruption.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_errors-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_errors.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_failed_drop_table-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_failed_drop_table.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_gcommit_options-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_gcommit_options.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_grant.test
@@ -8931,6 +9883,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_invalid_event-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_invalid_event.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_json.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_binlog_sender_fseek.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_bit.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_bit_npk.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_blackhole.test
@@ -9060,12 +10013,10 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_grant_plugin.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_commit_deadlock-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_commit_deadlock.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_commit_update_commit_group.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_commands.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_start_stop_gr_error-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_start_stop_gr_error.test
-file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_user.test
-file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_wait_for_executed_gtid_set_no_timeout.test
-file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_group_replication_wait_for_executed_gtid_set_with_sleep.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_binary_log_as_relay_log.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_create_select.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_delete_memory_table_after_start_server.test
@@ -9088,6 +10039,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_failover.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_heartbeat_2slave.cnf
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_heartbeat_2slave.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_huge_gtid_set.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive.test
@@ -9118,8 +10070,6 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_spanned_trx.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_split_statements.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_sql_until_before_after.test
-file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_stress_failover.cnf
-file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_stress_failover.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_table_repository_split_trx-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_table_repository_split_trx.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_gtid_temp_table.test
@@ -9270,6 +10220,10 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_logical_clock_timestamping.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_logical_clock_transaction_retry.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_logical_clock_wrong_start_pos.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_relay_log_post_crash_recovery-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_relay_log_post_crash_recovery.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_relay_log_recovery_on_error-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_relay_log_recovery_on_error.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_slave_hang_with_partial_trx-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_slave_hang_with_partial_trx.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_mts_slave_preserve_commit_order-slave.opt
@@ -9313,6 +10267,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_perfschema.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_relay_log-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_relay_log.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_relay_log_recovery.cnf
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_relay_log_recovery.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_repo_info_errors.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_repository.cnf
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_multi_source_repository.test
@@ -9341,6 +10297,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_not_null_innodb.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_not_null_myisam.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_open_temp_tables_warning.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_operation_ignore_super_read_only-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_operation_ignore_super_read_only.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_optimize-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_optimize-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_optimize.test
@@ -9379,6 +10337,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_parallel_temp_query-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_parallel_temp_query.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_parallel_worker_error-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_parallel_worker_error.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_partial_gtid_trx_followed_by_anonymous_trx_by_receiver.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_partial_gtid_trx_followed_by_trx_at_startup.test
@@ -9392,6 +10351,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_applier_status_by_coordinator-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_applier_status_by_coordinator.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_applier_status_by_worker.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_applier_status_by_worker_last_seen_transaction.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_connect_config.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_connect_status.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_perfschema_no_master_uuid.test
@@ -9425,6 +10385,9 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replicate_same_server_id.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_before_dml-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_before_dml.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_is_stopping-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_is_stopping-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_is_stopping.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin_channels-master.opt
@@ -9451,6 +10414,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_report_port-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_report_port.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_reset_slave_all.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_reset_slave_all_thread_safe.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_rewrite_db_filter-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_rewrite_db_filter-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_rewrite_db_filter.test
@@ -9549,6 +10513,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_record_find_myisam.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_reset_slave.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_rollback_to_savepoint.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_slave_skip_error_all-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_slave_skip_error_all.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_sp001.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_sp002_innodb.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_row_sp003.test
@@ -9625,6 +10591,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_id_ignore-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_id_ignore-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_id_ignore.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_uuid-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_uuid.cnf
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_server_uuid.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_session_var.test
@@ -9647,6 +10614,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_ddl_errors_cli.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_error-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_error.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_error_no_binlog_slave-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_error_no_binlog_slave.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_incident-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_incident-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_skip_incident.test
@@ -9682,6 +10651,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_special_charset.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sporadic_master-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sporadic_master.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sql_thread_error.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sql_thread_killed_waiting_commit_lock-slave.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sql_thread_killed_waiting_commit_lock.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_ssl.test
@@ -9734,6 +10704,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_stm_until_pos_middle_gtid.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_stm_user_variables.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_stop_slave.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_stop_slave_threads_error-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_stop_slave_threads_error.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_sync-master.opt
@@ -9769,6 +10741,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_trunc_temp.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_truncate_2myisam.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_truncate_3innodb.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_trx_boundary_parser_relay_log_recovery.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_trx_boundary_parser_row.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_trx_boundary_parser_stmt.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_trx_boundary_parser_warning.test
@@ -9780,6 +10753,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_udf.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_unknown_ignorable_event.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_unsafe_statements.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_upgrade_slave_master_info-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_upgrade_slave_master_info.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_user.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_user_if_exists.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_user_lock.test
@@ -9796,7 +10771,12 @@
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_wait_for_gtid_executed_unknown_uuid.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_crash_debug.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect_lsu_off-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect_lsu_off.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect_mixed_engines.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect_table-slave.opt
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_xa_survive_disconnect_table.test
+file path=usr/mysql/5.7/mysql-test/suite/rpl/t/rpl_zombie_dump_threads.test
 file path=usr/mysql/5.7/mysql-test/suite/rpl/t/transactional_ddl_locking.test
 dir  path=usr/mysql/5.7/mysql-test/suite/rpl_ndb
 file path=usr/mysql/5.7/mysql-test/suite/rpl_ndb/my.cnf
@@ -9904,6 +10884,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/myisam_repair_threads_basic.inc
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/myisam_sort_buffer_size_basic.inc
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/net_retry_count_basic.inc
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/parser_max_mem_size_basic.inc
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/query_cache_limit_basic.inc
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/query_cache_min_res_unit_basic.inc
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/inc/query_cache_size_basic.inc
@@ -10086,6 +11067,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_concurrency_tickets_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_data_file_path_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_data_home_dir_basic.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_deadlock_detect_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_default_row_format_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_dict_stats_disabled_debug_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_disable_background_merge_basic.result
@@ -10176,6 +11158,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_sort_buffer_size_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_spin_wait_delay_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_stats_auto_recalc_basic.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_stats_include_delete_marked_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_stats_method_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_stats_on_metadata_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/innodb_stats_persistent_basic.result
@@ -10349,6 +11332,10 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/optimizer_trace_max_mem_size_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/optimizer_trace_offset_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/optimizer_trace_offset_max.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/parser_max_mem_size_32.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/parser_max_mem_size_64.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/parser_max_mem_size_basic_32.result
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/parser_max_mem_size_basic_64.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/performance_schema_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/pfs_accounts_size_basic.result
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/r/pfs_digests_size_basic.result
@@ -10769,6 +11756,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_concurrency_tickets_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_data_file_path_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_data_home_dir_basic.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_deadlock_detect_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_default_row_format_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_dict_stats_disabled_debug_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_disable_background_merge_basic.test
@@ -10834,6 +11822,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_monitor_enable_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_monitor_reset_all_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_monitor_reset_basic.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_old_blocks_pct_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_old_blocks_time_basic.test
@@ -10861,6 +11850,7 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_sort_buffer_size_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_spin_wait_delay_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_stats_auto_recalc_basic.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_stats_include_delete_marked_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_stats_method_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_stats_on_metadata_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/innodb_stats_persistent_basic.test
@@ -11044,6 +12034,14 @@
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/optimizer_trace_offset_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/optimizer_trace_offset_max-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/optimizer_trace_offset_max.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_32-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_32.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_64-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_64.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_basic_32-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_basic_32.test
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_basic_64-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/parser_max_mem_size_basic_64.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/performance_schema_basic-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/performance_schema_basic.test
 file path=usr/mysql/5.7/mysql-test/suite/sys_vars/t/pfs_accounts_size_basic-master.opt
@@ -11365,11 +12363,20 @@
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/fn_ps_thread_account.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/fn_ps_thread_id.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/fn_ps_thread_trx_info.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/fn_quote_identifier.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/fn_sys_get_config.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/mysqldump.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_create_synonym_db.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_diagnostics.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_execute_prepared_stmt.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_reset_to_default.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_disabled.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_disabled_consumers.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_disabled_instruments.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_enabled.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_enabled_consumers.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_setup_show_enabled_instruments.result
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_ps_trace_statement_digest.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_statement_performance_analyzer.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/pr_table_exists.result
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/r/t_sys_config.result
@@ -11434,6 +12441,8 @@
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_extract_schema_from_file_name.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_extract_table_from_file_name.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_bytes.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_path-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_path-master.sh
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_path.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_statement.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_format_time.test
@@ -11447,11 +12456,20 @@
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_ps_thread_account.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_ps_thread_id.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_ps_thread_trx_info.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_quote_identifier.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/fn_sys_get_config.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/mysqldump.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_create_synonym_db.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_diagnostics.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_execute_prepared_stmt.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_reset_to_default.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_disabled.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_disabled_consumers.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_disabled_instruments.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_enabled.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_enabled_consumers.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_setup_show_enabled_instruments.test
+file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_ps_trace_statement_digest.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_statement_performance_analyzer.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/pr_table_exists.test
 file path=usr/mysql/5.7/mysql-test/suite/sysschema/t/t_sys_config.test
@@ -11596,6 +12614,372 @@
 file path=usr/mysql/5.7/mysql-test/suite/test_services/t/test_services.test
 file path=usr/mysql/5.7/mysql-test/suite/test_services/t/test_services_threaded-master.opt
 file path=usr/mysql/5.7/mysql-test/suite/test_services/t/test_services_threaded.test
+dir  path=usr/mysql/5.7/mysql-test/suite/x
+dir  path=usr/mysql/5.7/mysql-test/suite/x/include
+file path=usr/mysql/5.7/mysql-test/suite/x/include/connection_ssl.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/connection_user_authentication.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/have_performance_schema_threads.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/is_local_machine.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/performance_schema_assert_empty_worker_threads.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/restart_mysqld_and_wait_for_xplugin.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/restart_mysqld_pipe.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/wait_until_connected_again_pipe.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/xplugin_install_and_wait.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/xplugin_pfs_instruments_enable.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/xplugin_pfs_instruments_query.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/xplugin_preamble.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/include/xplugin_wait_for_interfaces.inc
+file path=usr/mysql/5.7/mysql-test/suite/x/plugin.defs
+dir  path=usr/mysql/5.7/mysql-test/suite/x/r
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_bogus.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_bogus_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_collection.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_collection_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_index_datetime.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_index_datetime_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_index_string.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_create_index_string_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_ensure_collection.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_ensure_collection_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_kill.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_kill_client_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_list_objects.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_list_objects_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_ping.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_ping_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/admin_xkill.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/binary_log.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/bug_23028052.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/capabilities.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/client_close.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/client_close_abort.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/client_session.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_expire.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_ipv6.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_mysqlxsys.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_nonssl.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_openssl.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_require_secure_transport.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_reset_by_peer.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_skip_grant_table.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_skip_networking.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_skip_networking_win.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_timeout.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_tls_version.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_unixsocket.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_unixsocket_invalid.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_unixsocket_lock.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_unixsocket_rpl.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_user_authentication.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_user_authentication_win.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_without_session.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/connection_yassl.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/create_alter_sql.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/create_drop_collection_crud.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/create_index_crud.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_asterisk.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_create_view.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_debug.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_delete_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_doc_criteria_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_doc_expr_array.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_doc_expr_object.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_drop_view.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_find_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_find_doc_criteria.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_find_doc_groupby.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_insert_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_insert_cast.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_insert_default.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_insert_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_insert_nodoc.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_modify_view.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_myisam_memory.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_octets_content_type.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_order_by.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_pipe.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_resultset_metadata.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_rpl.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_sundries.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_table_criteria_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_table_expr_array.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_table_expr_object.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_update_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_update_table_json.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/crud_view_sundries.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_crud_1.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_crud_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_all.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_bad_collection.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_bad_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_missing_arg.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_multi_by_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_multi_by_id.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_none_by_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_none_table.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_one_by_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_table.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_table_doc.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_del_table_order.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/delete_sql_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/drop_index_crud.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/expect_noerror.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/fieldtypes_all.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_crud_conditionalclauses_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_crud_groupby_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_doc_proj.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_doc_simple.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_docpath_expr.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_funtion_call.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_table_find.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_table_find_as_doc.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/find_table_find_rows_proj.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/forbidden_sql_cmd.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/input_queue.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_crud_1.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_crud_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_doc_bad_proj.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_doc_id.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_doc_id_dup.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_doc_noid.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_sql_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_bad_column.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_bad_column_type.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_bad_numcolumns.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_escape_identifier.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_missing_notnull_column.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/insert_table_string_quoting.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/installxplugin.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/killconnection.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/message_empty_payload.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/message_protobuf_nested.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/multiple_resultsets_and_out_params.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/mysqlx_server_var.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notice_warning.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notice_warning_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notices_disable.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notices_disable_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notices_enable.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/notices_enable_mysqlx.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/performance_schema.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/performance_schema_memory.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/performance_schema_sockets.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/performance_schema_threads.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/performance_schema_unixsockets.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/plugin_license.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/regression.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/result_types.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/session_reset.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/status_bytes_received.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/status_variable_errors_unknown_message_type.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/status_variables.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/status_variables_incrementing.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/stmtexecute_query_no_result.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/stmtexecute_query_result.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/stmtexecute_status_vars.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/stmtexecute_with_args.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/system_variable_bind_address.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/system_variable_max_allowed_packet.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/system_variable_min_worker_threads.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/system_variable_port_open_timeout.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/system_variables.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_arrayappend_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_arrayinsert_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_itemmerge_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_remove_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_crud_replace_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_doc.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_sql_o.result
+file path=usr/mysql/5.7/mysql-test/suite/x/r/update_table.result
+dir  path=usr/mysql/5.7/mysql-test/suite/x/t
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_bogus.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_bogus_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_collection.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_collection_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_index_datetime.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_index_datetime_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_index_string.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_create_index_string_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_ensure_collection.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_ensure_collection_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_kill.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_kill_client_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_list_objects.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_list_objects_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_ping.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_ping_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/admin_xkill.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/binary_log-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/binary_log.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/bug_23028052.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/capabilities-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/capabilities.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/client_close.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/client_close_abort.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/client_session.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_expire.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_ipv6.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_mysqlxsys.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_nonssl-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_nonssl.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_openssl-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_openssl.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_require_secure_transport.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_reset_by_peer.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_skip_grant_table.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_skip_networking.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_skip_networking_win-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_skip_networking_win.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_timeout.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_tls_version-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_tls_version.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_unixsocket.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_unixsocket_invalid.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_unixsocket_lock.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_unixsocket_rpl.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_user_authentication.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_user_authentication_win.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_without_session.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_yassl-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/connection_yassl.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/create_alter_sql.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/create_drop_collection_crud.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/create_index_crud.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_asterisk.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_create_view-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_create_view.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_debug.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_delete_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_doc_criteria_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_doc_expr_array.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_doc_expr_object.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_drop_view.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_find_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_find_doc_criteria.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_find_doc_groupby.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_insert_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_insert_cast.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_insert_default.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_insert_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_insert_nodoc.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_modify_view.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_myisam_memory.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_octets_content_type.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_order_by.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_pipe.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_resultset_metadata.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_rpl.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_sundries.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_table_criteria_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_table_expr_array.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_table_expr_object.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_update_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_update_table_json.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/crud_view_sundries.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_crud_1.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_crud_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_all.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_bad_collection.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_bad_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_missing_arg.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_multi_by_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_multi_by_id.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_none_by_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_none_table.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_one_by_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_table.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_table_doc.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_del_table_order.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/delete_sql_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/disabled.def
+file path=usr/mysql/5.7/mysql-test/suite/x/t/drop_index_crud.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/expect_noerror.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/fieldtypes_all.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_crud_conditionalclauses_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_crud_groupby_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_doc_proj.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_doc_simple.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_docpath_expr.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_funtion_call.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_table_find.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_table_find_as_doc.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/find_table_find_rows_proj.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/forbidden_sql_cmd.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/input_queue.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_crud_1.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_crud_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_doc_bad_proj.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_doc_id.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_doc_id_dup.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_doc_noid.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_sql_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_bad_column.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_bad_column_type.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_bad_numcolumns.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_escape_identifier.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_missing_notnull_column.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/insert_table_string_quoting.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/installxplugin.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/killconnection.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/message_empty_payload.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/message_protobuf_nested-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/message_protobuf_nested.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/multiple_resultsets_and_out_params.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/mysqlx_server_var.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notice_warning.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notice_warning_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_disable-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_disable.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_disable_mysqlx-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_disable_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_enable-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_enable.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_enable_mysqlx-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/notices_enable_mysqlx.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_memory.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_sockets-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_sockets.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_threads-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_threads.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/performance_schema_unixsockets.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/plugin_license.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/regression-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/regression.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/result_types.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/session_reset.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_bytes_received.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_variable_errors_unknown_message_type-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_variable_errors_unknown_message_type.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_variables-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_variables.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/status_variables_incrementing.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/stmtexecute_query_no_result.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/stmtexecute_query_result.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/stmtexecute_status_vars.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/stmtexecute_with_args.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/suite.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variable_bind_address.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variable_max_allowed_packet-master.opt
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variable_max_allowed_packet.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variable_min_worker_threads.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variable_port_open_timeout.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/system_variables.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_arrayappend_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_arrayinsert_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_itemmerge_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_remove_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_crud_replace_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_doc.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_sql_o.test
+file path=usr/mysql/5.7/mysql-test/suite/x/t/update_table.test
 dir  path=usr/mysql/5.7/mysql-test/t
 file path=usr/mysql/5.7/mysql-test/t/1st.test
 file path=usr/mysql/5.7/mysql-test/t/acl_tables_errors_debug.test
@@ -11619,6 +13003,8 @@
 file path=usr/mysql/5.7/mysql-test/t/audit_plugin.test
 file path=usr/mysql/5.7/mysql-test/t/audit_plugin_2-master.opt
 file path=usr/mysql/5.7/mysql-test/t/audit_plugin_2.test
+file path=usr/mysql/5.7/mysql-test/t/audit_plugin_bugs-master.opt
+file path=usr/mysql/5.7/mysql-test/t/audit_plugin_bugs.test
 file path=usr/mysql/5.7/mysql-test/t/auth_rpl-master.opt
 file path=usr/mysql/5.7/mysql-test/t/auth_rpl-slave.opt
 file path=usr/mysql/5.7/mysql-test/t/auth_rpl.test
@@ -11756,6 +13142,7 @@
 file path=usr/mysql/5.7/mysql-test/t/ctype_utf8mb4_uca.test
 file path=usr/mysql/5.7/mysql-test/t/daemonize_opt-master.opt
 file path=usr/mysql/5.7/mysql-test/t/daemonize_opt.test
+file path=usr/mysql/5.7/mysql-test/t/datadir_permission.cnf
 file path=usr/mysql/5.7/mysql-test/t/datadir_permission.test
 file path=usr/mysql/5.7/mysql-test/t/date_formats-master.opt
 file path=usr/mysql/5.7/mysql-test/t/date_formats.test
@@ -11923,6 +13310,7 @@
 file path=usr/mysql/5.7/mysql-test/t/grant_alter_user_qa.test
 file path=usr/mysql/5.7/mysql-test/t/grant_cache-master.opt
 file path=usr/mysql/5.7/mysql-test/t/grant_cache.test
+file path=usr/mysql/5.7/mysql-test/t/grant_debug.test
 file path=usr/mysql/5.7/mysql-test/t/grant_explain_non_select.test
 file path=usr/mysql/5.7/mysql-test/t/grant_lowercase_fs.test
 file path=usr/mysql/5.7/mysql-test/t/grant_user_lock.test
@@ -11936,6 +13324,8 @@
 file path=usr/mysql/5.7/mysql-test/t/group_by_fd_ps_prot.test
 file path=usr/mysql/5.7/mysql-test/t/group_min_max.test
 file path=usr/mysql/5.7/mysql-test/t/group_min_max_innodb.test
+file path=usr/mysql/5.7/mysql-test/t/gtid_next_xa_binlog_off-master.opt
+file path=usr/mysql/5.7/mysql-test/t/gtid_next_xa_binlog_off.test
 file path=usr/mysql/5.7/mysql-test/t/gtids_anonymous_trxs_violations.test
 file path=usr/mysql/5.7/mysql-test/t/handler_innodb.test
 file path=usr/mysql/5.7/mysql-test/t/handler_myisam.test
@@ -11981,6 +13371,7 @@
 file path=usr/mysql/5.7/mysql-test/t/initialize-sha256.test
 file path=usr/mysql/5.7/mysql-test/t/initialize-yassl-warning.test
 file path=usr/mysql/5.7/mysql-test/t/initialize.test
+file path=usr/mysql/5.7/mysql-test/t/initialize_gtid.test
 file path=usr/mysql/5.7/mysql-test/t/innodb_deadlock-master.opt
 file path=usr/mysql/5.7/mysql-test/t/innodb_deadlock.test
 file path=usr/mysql/5.7/mysql-test/t/innodb_disabled-master.opt
@@ -12027,6 +13418,7 @@
 file path=usr/mysql/5.7/mysql-test/t/ipv4_as_ipv6.test
 file path=usr/mysql/5.7/mysql-test/t/ipv6-master.opt
 file path=usr/mysql/5.7/mysql-test/t/ipv6.test
+file path=usr/mysql/5.7/mysql-test/t/is_deprecation.test
 file path=usr/mysql/5.7/mysql-test/t/join.test
 file path=usr/mysql/5.7/mysql-test/t/join_cache_bka.test
 file path=usr/mysql/5.7/mysql-test/t/join_cache_bka_nixbnl.test
@@ -12041,10 +13433,6 @@
 file path=usr/mysql/5.7/mysql-test/t/join_outer_bka.test
 file path=usr/mysql/5.7/mysql-test/t/join_outer_bka_nixbnl.test
 file path=usr/mysql/5.7/mysql-test/t/join_outer_innodb.test
-file path=usr/mysql/5.7/mysql-test/t/json.test
-file path=usr/mysql/5.7/mysql-test/t/json_client.test
-file path=usr/mysql/5.7/mysql-test/t/json_conversions.test
-file path=usr/mysql/5.7/mysql-test/t/json_index.test
 file path=usr/mysql/5.7/mysql-test/t/key.test
 file path=usr/mysql/5.7/mysql-test/t/key_cache-master.opt
 file path=usr/mysql/5.7/mysql-test/t/key_cache.test
@@ -12175,6 +13563,8 @@
 file path=usr/mysql/5.7/mysql-test/t/mysql_client_test-master.opt
 file path=usr/mysql/5.7/mysql-test/t/mysql_client_test.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_client_test_embedded.test
+file path=usr/mysql/5.7/mysql-test/t/mysql_client_test_qcache-master.opt
+file path=usr/mysql/5.7/mysql-test/t/mysql_client_test_qcache.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_comments.sql
 file path=usr/mysql/5.7/mysql-test/t/mysql_comments.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_config_editor.test
@@ -12196,6 +13586,7 @@
 file path=usr/mysql/5.7/mysql-test/t/mysql_tzinfo_to_sql.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_tzinfo_to_sql_sys.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_upgrade.test
+file path=usr/mysql/5.7/mysql-test/t/mysql_upgrade_slave_master_info.test
 file path=usr/mysql/5.7/mysql-test/t/mysql_upgrade_ssl.test
 file path=usr/mysql/5.7/mysql-test/t/mysqladmin.test
 file path=usr/mysql/5.7/mysql-test/t/mysqlbinlog-master.opt
@@ -12237,12 +13628,20 @@
 file path=usr/mysql/5.7/mysql-test/t/no-threads-master.opt
 file path=usr/mysql/5.7/mysql-test/t/no-threads.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog.test
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_empty_statement.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_empty_transaction-master.opt
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_empty_transaction.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_mode_on-master.opt
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_mode_on.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_mode_on_explicit_prepared_stmts-master.opt
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_mode_on_explicit_prepared_stmts.test
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_begin_caused_trx-master.opt
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_begin_caused_trx.test
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_partially_failed_stmts-master.opt
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_partially_failed_stmts.test
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_partially_failed_stmts_anonymous.test
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_partially_failed_stmts_error-master.opt
+file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_partially_failed_stmts_error.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_single_stmt_trx_rollback.test
 file path=usr/mysql/5.7/mysql-test/t/no_binlog_gtid_next_temporary_table.test
 file path=usr/mysql/5.7/mysql-test/t/not_embedded_server-master.opt
@@ -12304,6 +13703,7 @@
 file path=usr/mysql/5.7/mysql-test/t/partition_debug.test
 file path=usr/mysql/5.7/mysql-test/t/partition_debug_sync.test
 file path=usr/mysql/5.7/mysql-test/t/partition_debug_sync_stmt.test
+file path=usr/mysql/5.7/mysql-test/t/partition_deprecation.test
 file path=usr/mysql/5.7/mysql-test/t/partition_error.test
 file path=usr/mysql/5.7/mysql-test/t/partition_exchange.test
 file path=usr/mysql/5.7/mysql-test/t/partition_explicit_prune.test
@@ -12348,6 +13748,8 @@
 file path=usr/mysql/5.7/mysql-test/t/plugin.test
 file path=usr/mysql/5.7/mysql-test/t/plugin_auth-master.opt
 file path=usr/mysql/5.7/mysql-test/t/plugin_auth.test
+file path=usr/mysql/5.7/mysql-test/t/plugin_auth_expire-master.opt
+file path=usr/mysql/5.7/mysql-test/t/plugin_auth_expire.test
 file path=usr/mysql/5.7/mysql-test/t/plugin_auth_qa-master.opt
 file path=usr/mysql/5.7/mysql-test/t/plugin_auth_qa.test
 file path=usr/mysql/5.7/mysql-test/t/plugin_auth_qa_1-master.opt
@@ -12439,6 +13841,7 @@
 file path=usr/mysql/5.7/mysql-test/t/row.test
 file path=usr/mysql/5.7/mysql-test/t/rowid_order_innodb.test
 file path=usr/mysql/5.7/mysql-test/t/rpl_connect_attr.test
+file path=usr/mysql/5.7/mysql-test/t/rpl_multi_source_mysqldump_slave.test
 file path=usr/mysql/5.7/mysql-test/t/rpl_mysqldump_slave.test
 file path=usr/mysql/5.7/mysql-test/t/schema.test
 file path=usr/mysql/5.7/mysql-test/t/secure_file_priv_win-master.opt
@@ -12463,7 +13866,6 @@
 file path=usr/mysql/5.7/mysql-test/t/server_offline_5.test
 file path=usr/mysql/5.7/mysql-test/t/server_offline_6-master.opt
 file path=usr/mysql/5.7/mysql-test/t/server_offline_6.test
-file path=usr/mysql/5.7/mysql-test/t/server_startup_shutdown_time.test
 file path=usr/mysql/5.7/mysql-test/t/server_uuid.test
 file path=usr/mysql/5.7/mysql-test/t/server_uuid_embedded.test
 file path=usr/mysql/5.7/mysql-test/t/session_tracker-master.opt
@@ -12472,6 +13874,8 @@
 file path=usr/mysql/5.7/mysql-test/t/session_tracker_trx_state.test
 file path=usr/mysql/5.7/mysql-test/t/shm-master.opt
 file path=usr/mysql/5.7/mysql-test/t/shm.test
+file path=usr/mysql/5.7/mysql-test/t/shm_server_restart-master.opt
+file path=usr/mysql/5.7/mysql-test/t/shm_server_restart.test
 file path=usr/mysql/5.7/mysql-test/t/show_check-master.opt
 file path=usr/mysql/5.7/mysql-test/t/show_check.test
 file path=usr/mysql/5.7/mysql-test/t/show_profile.test
@@ -12531,6 +13935,8 @@
 file path=usr/mysql/5.7/mysql-test/t/ssl_8k_key-master.opt
 file path=usr/mysql/5.7/mysql-test/t/ssl_8k_key.test
 file path=usr/mysql/5.7/mysql-test/t/ssl_and_innodb.test
+file path=usr/mysql/5.7/mysql-test/t/ssl_ca-master.opt
+file path=usr/mysql/5.7/mysql-test/t/ssl_ca.test
 file path=usr/mysql/5.7/mysql-test/t/ssl_cipher-master.opt
 file path=usr/mysql/5.7/mysql-test/t/ssl_cipher.test
 file path=usr/mysql/5.7/mysql-test/t/ssl_compress.test
@@ -12688,6 +14094,8 @@
 file path=usr/mysql/5.7/mysql-test/t/type_year.test
 file path=usr/mysql/5.7/mysql-test/t/udf-master.opt
 file path=usr/mysql/5.7/mysql-test/t/udf.test
+file path=usr/mysql/5.7/mysql-test/t/udf_services-master.opt
+file path=usr/mysql/5.7/mysql-test/t/udf_services.test
 file path=usr/mysql/5.7/mysql-test/t/udf_skip_grants-master.opt
 file path=usr/mysql/5.7/mysql-test/t/udf_skip_grants.test
 file path=usr/mysql/5.7/mysql-test/t/union-master.opt
@@ -12704,11 +14112,14 @@
 file path=usr/mysql/5.7/mysql-test/t/user_var.test
 file path=usr/mysql/5.7/mysql-test/t/validate_password_plugin-master.opt
 file path=usr/mysql/5.7/mysql-test/t/validate_password_plugin.test
+file path=usr/mysql/5.7/mysql-test/t/validate_password_plugin_check_user-master.opt
+file path=usr/mysql/5.7/mysql-test/t/validate_password_plugin_check_user.test
 file path=usr/mysql/5.7/mysql-test/t/varbinary.test
 file path=usr/mysql/5.7/mysql-test/t/variables-big.test
 file path=usr/mysql/5.7/mysql-test/t/variables-master.opt
 file path=usr/mysql/5.7/mysql-test/t/variables-notembedded-master.opt
 file path=usr/mysql/5.7/mysql-test/t/variables-notembedded.test
+file path=usr/mysql/5.7/mysql-test/t/variables-win.test
 file path=usr/mysql/5.7/mysql-test/t/variables.test
 file path=usr/mysql/5.7/mysql-test/t/variables_community.test
 file path=usr/mysql/5.7/mysql-test/t/variables_debug.test
@@ -12751,6 +14162,8 @@
 file path=usr/mysql/5.7/mysql-test/t/wl6978.test
 file path=usr/mysql/5.7/mysql-test/t/xa.test
 file path=usr/mysql/5.7/mysql-test/t/xa_debug.test
+file path=usr/mysql/5.7/mysql-test/t/xa_gtid-master.opt
+file path=usr/mysql/5.7/mysql-test/t/xa_gtid.test
 file path=usr/mysql/5.7/mysql-test/t/xa_prepared_binlog_off-master.opt
 file path=usr/mysql/5.7/mysql-test/t/xa_prepared_binlog_off.test
 file path=usr/mysql/5.7/mysql-test/t/xml.test
--- a/components/mysql-5-7/patches/bug23022999.patch	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/patches/bug23022999.patch	Wed Mar 15 23:29:04 2017 -0700
@@ -4,7 +4,7 @@
 
 --- a/scripts/mysqld_safe.sh
 +++ b/scripts/mysqld_safe.sh
-@@ -492,28 +492,6 @@ case "$timestamp_format" in
+@@ -492,29 +492,6 @@ case "$timestamp_format" in
                     log_error "unknown data format $timestamp_format, using UTC";;
  esac
  
@@ -30,31 +30,17 @@
 -  fi
 -fi
 -plugin_dir="${plugin_dir}${PLUGIN_VARIANT}"
- 
+-
  # A pid file is created for the mysqld_safe process. This file protects the
  # server instance resources during race conditions.
-@@ -788,11 +766,19 @@ fi
- 
+ safe_pid="$DATADIR/mysqld_safe.pid"
+@@ -789,7 +766,7 @@ fi
  cmd="`mysqld_ld_preload_text`$NOHUP_NICENESS"
  
--for i in  "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
+ for i in  "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
 -  "--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION"
--do
--  cmd="$cmd "`shell_quote_string "$i"`
--done
-+if [ -n "$PLUGIN_DIR" ]; then
-+   for i in  "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
-+     "--datadir=$DATADIR" "--plugin-dir=$PLUGIN_DIR" "$USER_OPTION"
-+   do
-+     cmd="$cmd "`shell_quote_string "$i"`
-+   done
-+else
-+   for i in  "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \
-+     "--datadir=$DATADIR" "$USER_OPTION"
-+   do
-+     cmd="$cmd "`shell_quote_string "$i"`
-+   done
-+fi
- cmd="$cmd $args"
- # Avoid 'nohup: ignoring input' warning
- test -n "$NOHUP_NICENESS" && cmd="$cmd < /dev/null"
++  "--datadir=$DATADIR" "${PLUGIN_DIR:+--plugin-dir="$PLUGIN_DIR"}" "$USER_OPTION"
+ do
+   cmd="$cmd "`shell_quote_string "$i"`
+ done
+
--- a/components/mysql-5-7/patches/disable_static_opt.patch	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/patches/disable_static_opt.patch	Wed Mar 15 23:29:04 2017 -0700
@@ -1,9 +1,9 @@
 This patch adds an "cmake" option DISABLE_STATIC that prevent
 static libraries built from being installed.
 
---- a/cmake/libutils.cmake	2016-02-02 00:31:58.000000000 +0100
-+++ b/cmake/libutils.cmake	2016-03-02 22:54:28.199045221 +0100
-@@ -267,7 +267,7 @@
+--- a/cmake/libutils.cmake
++++ b/cmake/libutils.cmake
+@@ -267,7 +267,7 @@ MACRO(MERGE_LIBRARIES)
    ELSE()
      MESSAGE(FATAL_ERROR "Unknown library type")
    ENDIF()
@@ -13,18 +13,18 @@
        SET(COMP COMPONENT ${ARG_COMPONENT}) 
      ENDIF()
 
---- a/CMakeLists.txt	2016-02-02 00:31:58.000000000 +0100
-+++ b/CMakeLists.txt	2016-03-02 22:36:49.634297070 +0100
-@@ -206,6 +206,8 @@
- INCLUDE(mysql_add_executable)
- 
- # Handle options
-+OPTION(DISABLE_STATIC 
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -214,6 +214,8 @@ ELSE()
+   OPTION(WITH_RAPID
+     "Build additonal code(plugins) that is located in rapid directory" OFF)
+ ENDIF()
++OPTION(DISABLE_STATIC
 + "Don't build static libraries" OFF)
  OPTION(DISABLE_SHARED 
   "Don't build shared libraries, compile code as position-dependent" OFF)
  IF(DISABLE_SHARED)
-@@ -223,7 +225,7 @@
+@@ -231,7 +233,7 @@ IF(NOT WITHOUT_SERVER)
    OPTION (WITH_UNIT_TESTS "Compile MySQL with unit tests" ON)
  ENDIF()
  OPTION(FORCE_UNSUPPORTED_COMPILER "Disable compiler version checks" OFF)
@@ -34,14 +34,13 @@
  
  include(CheckCSourceCompiles)
 
---- a/libservices/CMakeLists.txt	2016-02-02 00:31:58.000000000 +0100
-+++ b/libservices/CMakeLists.txt	2016-03-02 22:53:28.974537132 +0100
-@@ -34,4 +34,6 @@
-   security_context_service.c)
+--- a/libservices/CMakeLists.txt
++++ b/libservices/CMakeLists.txt
+@@ -35,4 +35,6 @@ SET(MYSQLSERVICES_SOURCES
+   mysql_keyring_service.c)
  
  ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES})
 -INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
 +IF(NOT DISABLE_STATIC)
 +  INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development)
 +ENDIF()
-
--- a/components/mysql-5-7/patches/dont-bundle-cpp-runtime.patch	Thu Mar 09 10:47:46 2017 -0800
+++ b/components/mysql-5-7/patches/dont-bundle-cpp-runtime.patch	Wed Mar 15 23:29:04 2017 -0700
@@ -1,9 +1,9 @@
 Userland uses dependencies on C++ runtime libraries, disable
 the bundling of libraries in the install and packages
 
---- a/configure.cmake	Mon Feb  1 15:31:58 2016
-+++ b/configure.cmake	Tue Mar  1 07:59:05 2016
-@@ -126,7 +126,7 @@
+--- a/configure.cmake
++++ b/configure.cmake
+@@ -146,7 +146,7 @@ MACRO(EXTEND_C_LINK_FLAGS LIBRARY_PATH)
      "${CMAKE_SHARED_LIBRARY_C_FLAGS} -R'\$ORIGIN/../lib' -R${LIBRARY_PATH}")
  ENDMACRO()
  
@@ -13,9 +13,9 @@
    SET(LIB_SUFFIX "lib")
    IF(SIZEOF_VOIDP EQUAL 8 AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
 
---- a/libmysql/CMakeLists.txt	Mon Feb  1 15:31:58 2016
-+++ b/libmysql/CMakeLists.txt	Tue Mar  1 08:03:03 2016
-@@ -246,7 +246,7 @@
+--- a/libmysql/CMakeLists.txt
++++ b/libmysql/CMakeLists.txt
+@@ -262,7 +262,7 @@ ENDIF()
  # In our special "mixed" builds, also install libstlport which will
  # be injected into the build tree by the Sun Studio part of the build.