ruby: Build with -O1 on 32-bit arm (see #1520)
[termux-packages] / build-package.sh
index 7487f4c..b009c45 100755 (executable)
@@ -365,7 +365,7 @@ termux_step_start_build() {
        TERMUX_STANDALONE_TOOLCHAIN="$TERMUX_TOPDIR/_lib/${TERMUX_NDK_VERSION}-${TERMUX_ARCH}-${TERMUX_PKG_API_LEVEL}"
        # Bump the below version if a change is made in toolchain setup to ensure
        # that everyone gets an updated toolchain:
-       TERMUX_STANDALONE_TOOLCHAIN+="-v12"
+       TERMUX_STANDALONE_TOOLCHAIN+="-v14"
 
        if [ -n "${TERMUX_PKG_BLACKLISTED_ARCHES:=""}" ] && [ "$TERMUX_PKG_BLACKLISTED_ARCHES" != "${TERMUX_PKG_BLACKLISTED_ARCHES/$TERMUX_ARCH/}" ]; then
                echo "Skipping building $TERMUX_PKG_NAME for arch $TERMUX_ARCH"
@@ -574,8 +574,14 @@ termux_step_setup_toolchain() {
                if [ "$TERMUX_PKG_CLANG" = "no" ]; then
                        CFLAGS+=" -Os"
                else
-                       # -Oz seems good for clang, see https://github.com/android-ndk/ndk/issues/133
-                       CFLAGS+=" -Oz"
+                       if [ "$TERMUX_PKG_NAME" = "ruby" -a "$TERMUX_ARCH" = arm ]; then
+                               # This exception is to avoid a broken ruby on 32-bit arm
+                               # with NDK r15c and ruby 2.4.2 - see #1520.
+                               CFLAGS+=" -O1"
+                       else
+                               # -Oz seems good for clang, see https://github.com/android-ndk/ndk/issues/133
+                               CFLAGS+=" -Oz"
+                       fi
                fi
        fi