Fixes for GCC 12

This commit is contained in:
Michal Schorm 2022-01-25 18:27:19 +01:00
parent 0f6b82ffe7
commit ea068f62ad
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,60 @@
[ 47%] Building CXX object components/logging/CMakeFiles/component_log_sink_syseventlog.dir/log_sink_syseventlog.cc.o
cd /builddir/build/BUILD/mysql-8.0.28/redhat-linux-build/components/logging && /usr/bin/g++ -DHAVE_CONFIG_H -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMYSQL_COMPONENT -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Dcomponent_log_sink_syseventlog_EXPORTS -I/builddir/build/BUILD/mysql-8.0.28/redhat-linux-build -I/builddir/build/BUILD/mysql-8.0.28/redhat-linux-build/include -I/builddir/build/BUILD/mysql-8.0.28 -I/builddir/build/BUILD/mysql-8.0.28/include -isystem /builddir/build/BUILD/mysql-8.0.28/extra/rapidjson/include -isystem /usr/include/editline -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -fPIC -fvisibility=hidden -MD -MT components/logging/CMakeFiles/component_log_sink_syseventlog.dir/log_sink_syseventlog.cc.o -MF CMakeFiles/component_log_sink_syseventlog.dir/log_sink_syseventlog.cc.o.d -o CMakeFiles/component_log_sink_syseventlog.dir/log_sink_syseventlog.cc.o -c /builddir/build/BUILD/mysql-8.0.28/components/logging/log_sink_syseventlog.cc
/builddir/build/BUILD/mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc: In static member function 'static int keyring_common::service_definition::Log_builtins_keyring::line_submit(log_line*)':
/builddir/build/BUILD/mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc:266:12: error: 'unique_ptr' is not a member of 'std'
266 | std::unique_ptr<char[]> date{new char[date_length]};
| ^~~~~~~~~~
/builddir/build/BUILD/mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc:49:1: note: 'std::unique_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
48 | #include "mysqld_ername.h"
+++ |+#include <memory>
49 | #endif /* IN_DOXYGEN */
/builddir/build/BUILD/mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc:266:23: error: expected primary-expression before 'char'
266 | std::unique_ptr<char[]> date{new char[date_length]};
| ^~~~
/builddir/build/BUILD/mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc:267:16: error: 'date' was not declared in this scope
267 | strftime(date.get(), date_length, format, &tm);
| ^~~~
gmake[2]: Leaving directory '/builddir/build/BUILD/mysql-8.0.28/redhat-linux-build'
--- mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc 2021-12-17 17:07:27.000000000 +0100
+++ mysql-8.0.28/components/keyrings/common/component_helpers/src/keyring_log_builtins_definition.cc_patched 2022-01-24 13:42:33.252351078 +0100
@@ -26,6 +26,7 @@
#include <iostream>
#include <locale>
#include <sstream>
+#include <memory>
#include <m_string.h>
[ 16%] Linking CXX executable ../runtime_output_directory/comp_client_err
cd /builddir/build/BUILD/mysql-8.0.28/redhat-linux-build/utilities && /usr/bin/cmake -E cmake_link_script CMakeFiles/comp_client_err.dir/link.txt --verbose=1
/usr/bin/g++ -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/.package_note-community-mysql-8.0.28-1.fc36.x86_64.ld -pie -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/.package_note-community-mysql-8.0.28-1.fc36.x86_64.ld CMakeFiles/comp_client_err.dir/comp_client_err.cc.o CMakeFiles/comp_client_err.dir/__/libmysql/errmsg.cc.o -o ../runtime_output_directory/comp_client_err ../archive_output_directory/libmysys.a ../archive_output_directory/libstrings.a ../archive_output_directory/libmysys.a ../archive_output_directory/libstrings.a ../archive_output_directory/libmytime.a /usr/lib64/libz.so /usr/lib64/libzstd.so -lm /usr/lib64/libssl.so /usr/lib64/libcrypto.so
/builddir/build/BUILD/mysql-8.0.28/client/logger.cc: In function 'std::ostream& operator<<(std::ostream&, const Datetime&)':
/builddir/build/BUILD/mysql-8.0.28/client/logger.cc:39:8: error: 'unique_ptr' is not a member of 'std'
39 | std::unique_ptr<char[]> date{new char[date_length]};
| ^~~~~~~~~~
/builddir/build/BUILD/mysql-8.0.28/client/logger.cc:30:1: note: 'std::unique_ptr' is defined in header '<memory>'; did you forget to '#include <memory>'?
29 | #include <locale>
+++ |+#include <memory>
30 |
/builddir/build/BUILD/mysql-8.0.28/client/logger.cc:39:19: error: expected primary-expression before 'char'
39 | std::unique_ptr<char[]> date{new char[date_length]};
| ^~~~
/builddir/build/BUILD/mysql-8.0.28/client/logger.cc:40:12: error: 'date' was not declared in this scope
40 | strftime(date.get(), date_length, format, &tm);
| ^~~~
gmake[2]: *** [client/CMakeFiles/mysql_ssl_rsa_setup.dir/build.make:79: client/CMakeFiles/mysql_ssl_rsa_setup.dir/logger.cc.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
--- mysql-8.0.28/client/logger.cc 2021-12-17 17:07:27.000000000 +0100
+++ mysql-8.0.28/client/logger.cc_patched 2022-01-24 11:52:45.172650792 +0100
@@ -27,6 +27,7 @@
#include <time.h>
#include <iostream>
#include <locale>
+#include <memory>
using namespace std;

View File

@ -122,6 +122,7 @@ Patch56: %{pkgnamepatch}-mtr.patch
Patch75: %{pkgnamepatch}-arm32-timer.patch Patch75: %{pkgnamepatch}-arm32-timer.patch
Patch79: %{pkgnamepatch}-openssl3.patch Patch79: %{pkgnamepatch}-openssl3.patch
Patch80: %{pkgnamepatch}-fix-includes-robin-hood.patch Patch80: %{pkgnamepatch}-fix-includes-robin-hood.patch
Patch81: %{pkgnamepatch}-gcc12.patch
# Patches taken from boost 1.59 # Patches taken from boost 1.59
Patch115: boost-1.58.0-pool.patch Patch115: boost-1.58.0-pool.patch
@ -397,6 +398,11 @@ the MySQL sources.
%endif %endif
%patch80 -p1 %patch80 -p1
# GCC 12 has been introduced to F36
%if 0%{?fedora} >= 36
%patch81 -p1
%endif
# Patch Boost # Patch Boost
pushd boost/boost_$(echo %{boost_bundled_version}| tr . _) pushd boost/boost_$(echo %{boost_bundled_version}| tr . _)
%patch115 -p0 %patch115 -p0