diff --git a/packages/libzthread/build.sh b/packages/libzthread/build.sh new file mode 100644 index 000000000..d71ffc3f7 --- /dev/null +++ b/packages/libzthread/build.sh @@ -0,0 +1,23 @@ +TERMUX_PKG_HOMEPAGE=http://zthread.sourceforge.net/ +TERMUX_PKG_DESCRIPTION="An advanced object-oriented, cross-platform, C++ threading and synchronization library" +TERMUX_PKG_LICENSE="MIT" +TERMUX_PKG_LICENSE_FILE="LICENSE" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=2.3.2 +TERMUX_PKG_SRCURL=https://downloads.sourceforge.net/zthread/ZThread-${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=950908b7473ac10abb046bd1d75acb5934344e302db38c2225b7a90bd1eda854 +TERMUX_PKG_DEPENDS="libc++" + +termux_step_post_get_source() { + termux_download \ + "https://github.com/gentoo/gentoo/raw/ae61075e7fb307c5f13810963099df88f99df426/dev-libs/zthread/files/zthread-2.3.2-no-fpermissive-r1.diff" \ + $TERMUX_PKG_CACHEDIR/zthread-2.3.2-no-fpermissive-r1.diff \ + ac0acd39a1122887c7d62efd078b9649a8f010ce48305c1d225fc81b8452a511 + cat $TERMUX_PKG_CACHEDIR/zthread-2.3.2-no-fpermissive-r1.diff | patch --silent -p1 +} + +termux_step_pre_configure() { + autoreconf -fi -Ishare + + LDFLAGS+=" $($CC -print-libgcc-file-name)" +} diff --git a/packages/libzthread/configure.ac.patch b/packages/libzthread/configure.ac.patch new file mode 100644 index 000000000..6f0faaf1d --- /dev/null +++ b/packages/libzthread/configure.ac.patch @@ -0,0 +1,10 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -70,7 +70,6 @@ + + AM_ENABLE_ATOMIC_LINUX + AM_ENABLE_ATOMIC_GCC +-AM_DETECT_FTIME + + + dnl Setup compiler/linker options based on the target type diff --git a/packages/libzthread/include-zthread-Guard.h.patch b/packages/libzthread/include-zthread-Guard.h.patch new file mode 100644 index 000000000..05cdc7a5c --- /dev/null +++ b/packages/libzthread/include-zthread-Guard.h.patch @@ -0,0 +1,32 @@ +https://bugs.launchpad.net/hugin/+bug/1213585 +https://bugs.debian.org/667430 + +--- a/include/zthread/Guard.h ++++ b/include/zthread/Guard.h +@@ -108,7 +108,7 @@ + } + + template +- static void createScope(LockHolder& l, unsigned long ms) { ++ static bool createScope(LockHolder& l, unsigned long ms) { + + if(Scope1::createScope(l, ms)) + if(!Scope2::createScope(l, ms)) { +@@ -428,7 +428,7 @@ + template + Guard(Guard& g) : LockHolder(g) { + +- LockingPolicy::shareScope(*this, extract(g)); ++ LockingPolicy::shareScope(*this, this->extract(g)); + + } + +@@ -458,7 +458,7 @@ + template + Guard(Guard& g, LockType& lock) : LockHolder(lock) { + +- LockingPolicy::transferScope(*this, extract(g)); ++ LockingPolicy::transferScope(*this, this->extract(g)); + + } +