mysql-cmake/mysql-multilib eclasses: set STACK_DIRECTION to fix cross-compiles
authorMike Frysinger <vapier@gentoo.org>
Sun, 12 Jun 2016 03:09:25 +0000 (23:09 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sun, 12 Jun 2016 03:57:19 +0000 (23:57 -0400)
eclass/mysql-cmake.eclass
eclass/mysql-multilib-r1.eclass
eclass/toolchain-funcs.eclass

index 0f0f5b448fd8eb5958744da741d06ad0d462cba2..f14c9a7cf67b76a4208384d60b11433e958b7878 100644 (file)
@@ -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
index 40ef8f544283bf745e273f7c10f11ed10987dd72..858b9b65d6c480f6e94d2e5170d3d7026fa18b7e 100644 (file)
@@ -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
index cf95d04ad66c856f195dc4b83b36a2b3d6585d8b..e794559bbcfbd43ef71f6192158be5db19372944 100644 (file)
@@ -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: