summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2018-04-17 15:20:05 +0200
committerThomas Deutschmann <whissi@gentoo.org>2018-04-17 15:20:18 +0200
commit0f29ea14c29317389defc689f593aeaa0280b059 (patch)
treeda8c9f3ab21202b8fbaeb6bd3edc3abfe7be0f01 /dev-db
parentx11-libs/gdk-pixbuf: security cleanup (diff)
downloadgentoo-0f29ea14c29317389defc689f593aeaa0280b059.tar.gz
gentoo-0f29ea14c29317389defc689f593aeaa0280b059.tar.bz2
gentoo-0f29ea14c29317389defc689f593aeaa0280b059.zip
dev-db/percona-xtrabackup: Fix build problems
Ebuild changes: =============== - Re-spin "fix-gcc6-isystem" patch. - Keep lz4 source for "xxhash.c". - Force gnu++03 instead of GCC 7's default C++14 to avoid -fpermissive build error. [Bug 87956] Bug: https://bugs.mysql.com/bug.php?id=87956 Closes: https://bugs.gentoo.org/653360 Package-Manager: Portage-2.3.28, Repoman-2.3.9
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.10-fix-gcc6-isystem.patch112
-rw-r--r--dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild12
2 files changed, 120 insertions, 4 deletions
diff --git a/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.10-fix-gcc6-isystem.patch b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.10-fix-gcc6-isystem.patch
new file mode 100644
index 000000000000..c38398a1ce77
--- /dev/null
+++ b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.10-fix-gcc6-isystem.patch
@@ -0,0 +1,112 @@
+Do not use -isystem to add headers, as they break GCC 6's header wrapping.
+See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
+
+--- a/client/CMakeLists.txt
++++ b/client/CMakeLists.txt
+@@ -52,7 +52,7 @@ IF(NOT WITHOUT_SERVER)
+ upgrade/program.cc
+ )
+ ADD_COMPILE_FLAGS(
+- upgrade/program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ upgrade/program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+ TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient client_base mysqlcheck_core)
+ ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs GenSysSchema)
+--- a/client/base/CMakeLists.txt
++++ b/client/base/CMakeLists.txt
+@@ -49,7 +49,7 @@ ADD_COMPILE_FLAGS(
+ mutex.cc
+ mysql_query_runner.cc
+ show_variable_query_extractor.cc
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ TARGET_LINK_LIBRARIES(client_base mysqlclient)
+--- a/client/dump/CMakeLists.txt
++++ b/client/dump/CMakeLists.txt
+@@ -50,7 +50,7 @@ IF(USING_LOCAL_BOOST)
+
+ ADD_COMPILE_FLAGS(
+ ${BOOST_LIB_SOURCES}
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ IF(HAVE_clock_gettime_IN_rt)
+@@ -145,7 +145,7 @@ TARGET_LINK_LIBRARIES(mysqlpump_lib
+
+ ADD_COMPILE_FLAGS(
+ ${MYSQLPUMP_LIB_SOURCES}
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ # Files that use Boost sources that trigger compilation warnings
+@@ -179,7 +179,7 @@ ADD_COMPILE_FLAGS(
+ )
+ MYSQL_ADD_EXECUTABLE(mysqlpump program.cc)
+ ADD_COMPILE_FLAGS(
+- program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ TARGET_LINK_LIBRARIES(mysqlpump mysqlpump_lib ${LOCAL_BOOST_LIB})
+--- a/libmysqld/CMakeLists.txt
++++ b/libmysqld/CMakeLists.txt
+@@ -123,7 +123,7 @@ ADD_COMPILE_FLAGS(
+ ../sql/item_geofunc_setops.cc
+ ../sql/item_json_func.cc
+ ../sql/spatial.cc
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ ADD_COMPILE_FLAGS(
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -311,7 +311,7 @@ ADD_COMPILE_FLAGS(
+ item_geofunc_setops.cc
+ item_json_func.cc
+ spatial.cc
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ ADD_COMPILE_FLAGS(
+--- a/storage/innobase/xtrabackup/src/CMakeLists.txt
++++ b/storage/innobase/xtrabackup/src/CMakeLists.txt
+@@ -79,7 +79,7 @@ SET(keyring_source_files
+
+ ADD_COMPILE_FLAGS(
+ ${keyring_source_files}
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ -DEMBEDDED_LIBRARY
+ )
+
+--- a/unittest/gunit/CMakeLists.txt
++++ b/unittest/gunit/CMakeLists.txt
+@@ -385,7 +385,7 @@ IF (MERGE_UNITTESTS)
+ ENDIF()
+ ADD_COMPILE_FLAGS(
+ ${MERGE_SMALL_TESTS}
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+ # Fixes "C1128: number of sections exceeded object file format limit" in MSVC
+ IF(WIN32)
+@@ -467,11 +467,11 @@ ENDIF(MERGE_UNITTESTS)
+ ENDIF()
+ ADD_COMPILE_FLAGS(
+ bounded_queue-t.cc
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+ ADD_COMPILE_FLAGS(
+ pump_object_filter-t.cc
+- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
+ )
+
+ FOREACH(test ${SERVER_TESTS})
diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild
index 6ff3b357bbfe..ec724c075e65 100644
--- a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild
+++ b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.10.ebuild
@@ -25,7 +25,7 @@ DEPEND="
dev-libs/libgpg-error
dev-python/sphinx
net-misc/curl
- sys-libs/zlib"
+ sys-libs/zlib:="
RDEPEND="
${DEPEND}
@@ -34,16 +34,16 @@ RDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-2.4.6-remove-boost-version-check.patch
- "${FILESDIR}"/${PN}-2.4.6-fix-gcc6-isystem.patch
+ "${FILESDIR}"/${PN}-2.4.10-fix-gcc6-isystem.patch
)
src_prepare() {
cmake-utils_src_prepare
- # remove bundled lz4, boost, libedit, libevent, zlib
+ # remove bundled boost, libedit, libevent, zlib
# just to be safe...
+ # We keep lz4 directory because we use extra/lz4/xxhash.c in cmake/libutils.cmake
rm -rv \
- extra/lz4 \
include/boost_1_59_0 \
cmd-line-utils/libedit \
libevent \
@@ -57,6 +57,10 @@ src_configure() {
#
append-cppflags -DDBUG_OFF
+ # Upstream doesn't support C++14 -- build will fail with -fpermissive error
+ # https://bugs.mysql.com/bug.php?id=87956
+ append-cxxflags $(test-flags-CXX -std=gnu++03) -std=gnu++03
+
local mycmakeargs=(
-DBUILD_CONFIG=xtrabackup_release
-DWITH_EDITLINE=system