commit: 027dcae26afbe794cd4eef929f8bdc27bb602880 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> AuthorDate: Sun Jun 12 03:09:25 2016 +0000 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> CommitDate: Sun Jun 12 03:57:19 2016 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=027dcae2
mysql-cmake/mysql-multilib eclasses: set STACK_DIRECTION to fix cross-compiles eclass/mysql-cmake.eclass | 6 +++++- eclass/mysql-multilib-r1.eclass | 3 +++ eclass/toolchain-funcs.eclass | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/eclass/mysql-cmake.eclass b/eclass/mysql-cmake.eclass index 0f0f5b4..f14c9a7 100644 --- a/eclass/mysql-cmake.eclass +++ b/eclass/mysql-cmake.eclass @@ -16,7 +16,7 @@ # the src_prepare, src_configure, src_compile, and src_install # phase hooks. -inherit cmake-utils flag-o-matic multilib prefix eutils +inherit cmake-utils flag-o-matic multilib prefix eutils toolchain-funcs # # HELPER FUNCTIONS: @@ -243,6 +243,10 @@ configure_cmake_standard() { if mysql_version_is_at_least "10.1.2" ; then mycmakeargs+=( $(mysql-cmake_use_plugin cracklib CRACKLIB_PASSWORD_CHECK ) ) fi + + # The build forces this to be defined when cross-compiling. We pass it + # all the time for simplicity and to make sure it is actually correct. + mycmakeargs+=( -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) ) else mycmakeargs+=( $(cmake-utils_use_with extraengine FEDERATED_STORAGE_ENGINE) ) fi diff --git a/eclass/mysql-multilib-r1.eclass b/eclass/mysql-multilib-r1.eclass index 40ef8f5..858b9b6 100644 --- a/eclass/mysql-multilib-r1.eclass +++ b/eclass/mysql-multilib-r1.eclass @@ -401,6 +401,9 @@ multilib_src_configure() { -DWITH_DEFAULT_FEATURE_SET=0 -DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)" -DENABLE_STATIC_LIBS=$(usex static-libs) + # The build forces this to be defined when cross-compiling. We pass it + # all the time for simplicity and to make sure it is actually correct. + -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1) ) if use test ; then diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass index cf95d04..e794559 100644 --- a/eclass/toolchain-funcs.eclass +++ b/eclass/toolchain-funcs.eclass @@ -221,6 +221,21 @@ tc-is-static-only() { [[ ${host} == *-mint* ]] } +# @FUNCTION: tc-stack-grows-down +# @DESCRIPTION: +# Return shell true if the stack grows down. This is the default behavior +# for the vast majority of systems out there and usually projects shouldn't +# care about such internal details. +tc-stack-grows-down() { + # List the few that grow up. + case ${ARCH} in + hppa|metag) return 1 ;; + esac + + # Assume all others grow down. + return 0 +} + # @FUNCTION: tc-export_build_env # @USAGE: [compiler variables] # @DESCRIPTION: