diff --git a/testing/avida/10-remove-forced-tcmalloc.patch b/testing/avida/10-remove-forced-tcmalloc.patch new file mode 100644 index 0000000000000000000000000000000000000000..09b40cfae624373939942849db01a12b34e04126 --- /dev/null +++ b/testing/avida/10-remove-forced-tcmalloc.patch @@ -0,0 +1,59 @@ +The tcmalloc build currently fails on musl (see e.g. [1]). Avida's build system doesn't make it easy to +disable tcmalloc, so this patch is needed. + +[1] https://github.com/gperftools/gperftools/issues/693 + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 30008d679..f1598704a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -17,7 +17,7 @@ SET(LIBRARY_OUTPUT_PATH + + + ADD_SUBDIRECTORY(libs/apto) +-IF(NOT WIN32) ++IF(NOT WIN32 AND AVD_ENABLE_TCMALLOC) + ADD_SUBDIRECTORY(libs/tcmalloc-1.4) + ENDIF(NOT WIN32) + ADD_SUBDIRECTORY(avida-core) +diff --git a/avida-core/CMakeLists.txt b/avida-core/CMakeLists.txt +index d9d063ef6..053956a91 100644 +--- a/avida-core/CMakeLists.txt ++++ b/avida-core/CMakeLists.txt +@@ -388,36 +388,6 @@ ENDIF(WIN32) + #ENDIF(WIN32) + + +-# Locate TCMalloc +-IF(NOT TARGET tcmalloc-1.4) +- FIND_LIBRARY(TCMALLOC_LIBRARY tcmalloc-1.4 PATHS ${PROJECT_SOURCE_DIR}/../cbuild/lib ${PROJECT_SOURCE_DIR}/../libs/tcmalloc-1.4/cbuild/lib) +- ADD_LIBRARY(tcmalloc-1.4 STATIC IMPORTED) +- SET_PROPERTY(TARGET tcmalloc-1.4 PROPERTY IMPORTED_LOCATION "${TCMALLOC_LIBRARY}") +-ENDIF(NOT TARGET tcmalloc-1.4) +- +- +-# Handle the TCMalloc library +-# ------------------------------------------------------------------------------ +-IF(UNIX) +- IF (CMAKE_CXX_COMPILER MATCHES ".*icpc.*") +- SET(AVD_ENABLE_TCMALLOC FALSE) +- ELSE (CMAKE_CXX_COMPILER MATCHES ".*icpc.*") +- SET(AVD_ENABLE_TCMALLOC TRUE) +- ENDIF (CMAKE_CXX_COMPILER MATCHES ".*icpc.*") +-ELSE(UNIX) +- SET(AVD_ENABLE_TCMALLOC FALSE) +-ENDIF(UNIX) +-IF(AVD_ENABLE_TCMALLOC) +- # Locate TCMalloc +- IF(NOT TARGET tcmalloc-1.4) +- FIND_LIBRARY(TCMALLOC_LIBRARY tcmalloc-1.4 PATHS ${PROJECT_SOURCE_DIR}/../cbuild/lib ${PROJECT_SOURCE_DIR}/../libs/tcmalloc/cbuild/lib) +- ADD_LIBRARY(tcmalloc-1.4 STATIC IMPORTED) +- SET_PROPERTY(TARGET tcmalloc-1.4 PROPERTY IMPORTED_LOCATION "${TCMALLOC_LIBRARY}") +- ENDIF(NOT TARGET tcmalloc-1.4) +-ENDIF(AVD_ENABLE_TCMALLOC) +- +- +- + # Target Processing + # - For each enabled target, process its build instructions. Must occur after + # - avida-core has been defined. diff --git a/testing/avida/APKBUILD b/testing/avida/APKBUILD new file mode 100644 index 0000000000000000000000000000000000000000..adf7dafb210145e23c6c80c81e75e7cab374e979 --- /dev/null +++ b/testing/avida/APKBUILD @@ -0,0 +1,46 @@ +# Maintainer: Adam Jensen <acjensen@gmail.com> +pkgname=avida +pkgver=0_git20190813 +_sha=ca1f311bc1bcaf021390c63bce6aa9455bbd44cc +_apto_sha=9184c91a3a82297c420540baaf355aac80213a29 +pkgrel=0 +pkgdesc="A scientific software platform for conducting and analyzing experiments with self-replicating and evolving computer programs" +url="https://avida.devosoft.org/" +arch="x86 x86_64" # build currently fails on non-intel arches +license="GPL-3.0-only" +makedepends="cmake linux-headers" +source="$pkgname-$pkgver.tar.gz::https://github.com/devosoft/avida/archive/$_sha.tar.gz + apto.tar.gz::https://github.com/dmbryson/apto/archive/$_apto_sha.tar.gz + 10-remove-forced-tcmalloc.patch" +builddir="$srcdir/avida-$_sha" + +prepare() { + rm -rf "$builddir"/libs/apto && mv "$srcdir"/apto-$_apto_sha "$builddir"/libs/apto + + default_prepare +} + +build() { + cmake -B build \ + -DCMAKE_INSTALL_PREFIX:PATH=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -DAVD_UNIT_TESTS:BOOL=ON \ + -DAVD_ENABLE_TCMALLOC:BOOL=OFF \ + -DHAVE_FUSED_MADD:BOOL=OFF \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-expansion-to-defined" + make -C build +} + +check() { + build/bin/unit-tests +} + +package() { + install -Dm755 build/bin/avida "$pkgdir"/usr/bin/avida + mkdir -p "$pkgdir"/usr/share/avida + cp -R avida-core/support/* "$pkgdir"/usr/share/avida +} + +sha512sums="09332469e4aab96c0775f3d8e5a8e9c2544468bd6b461e5a30edac2d6fb0049fbb4db4860e54d94a2f010830a593377bc5345404ca6d78acba1e968a352f889d avida-0_git20190813.tar.gz +e0f8aab74198f07e2edbd0d5083792eaab91a96c4065e1bba6295bb4d6a784665744d812ce1e40393a1da015a9048cbc6c15229dd20da2de9f32692b0d870cfb apto.tar.gz +be92b7f3015cccaa64f2065bb552237176b044cbc16fa6dcef368b02aa53c9c3fdcfbb608b4fea2d6d720fe2a01f3362da87bf427fcb95942486c06fddba2892 10-remove-forced-tcmalloc.patch" \ No newline at end of file