From 3636e9fb9ca3213d24a9fcd31204fdeca7b8aad2 Mon Sep 17 00:00:00 2001 From: Tee KOBAYASHI Date: Thu, 30 Dec 2021 14:47:56 +0900 Subject: [PATCH] gauche: Fix assertion failure on arm Effectively reverts commit 3aca178a070cbc6baa0f26a0a894704565066886. --- packages/gauche/build.sh | 7 +------ packages/gauche/src-gauche-priv-pairP.h.patch | 11 +++++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 packages/gauche/src-gauche-priv-pairP.h.patch diff --git a/packages/gauche/build.sh b/packages/gauche/build.sh index 5d7cb9df0..3c69da6d7 100644 --- a/packages/gauche/build.sh +++ b/packages/gauche/build.sh @@ -3,18 +3,13 @@ TERMUX_PKG_DESCRIPTION="An R7RS Scheme implementation developed to be a handy sc TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.9.11 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=https://github.com/shirok/Gauche/releases/download/release${TERMUX_PKG_VERSION//./_}/Gauche-${TERMUX_PKG_VERSION}.tgz TERMUX_PKG_SHA256=395e4ffcea496c42a5b929a63f7687217157c76836a25ee4becfcd5f130f38e4 TERMUX_PKG_DEPENDS="binutils, ca-certificates, gdbm, libcrypt, libiconv, mbedtls, zlib" TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_BUILD_IN_SRC=true -# Does not work on arm: -# ``` -# "/home/builder/.termux-build/gauche/src/src/list.c", line 798 (ScmExtendedPairDescriptor *Scm__GetExtendedPairDescriptor(ScmObj)): Assertion failed: (z->hiddenTag&0x7) == 0x7 -# ``` -TERMUX_PKG_BLACKLISTED_ARCHES="arm" - TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --with-ca-bundle=$TERMUX_PREFIX/etc/tls/cert.pem --with-libatomic-ops=no diff --git a/packages/gauche/src-gauche-priv-pairP.h.patch b/packages/gauche/src-gauche-priv-pairP.h.patch new file mode 100644 index 000000000..4ccaeb8ac --- /dev/null +++ b/packages/gauche/src-gauche-priv-pairP.h.patch @@ -0,0 +1,11 @@ +--- a/src/gauche/priv/pairP.h ++++ b/src/gauche/priv/pairP.h +@@ -65,7 +65,7 @@ + * and immutable pairs, but that'll break existing code which tests equality + * of class, rather than is-a relationship. + */ +-typedef struct ScmExtendedPairDescriptorRec { ++typedef __attribute__((__aligned__(8))) struct ScmExtendedPairDescriptorRec { + ScmClass *klass; + u_long flags; + void (*setCar)(ScmObj, ScmObj);