From 106e0717de9d53bad8ce92230da133f3b839cabc Mon Sep 17 00:00:00 2001 From: Ankur Sinha (Ankur Sinha Gmail) Date: Feb 23 2020 17:44:12 +0000 Subject: Fix build using snapshot --- diff --git a/.gitignore b/.gitignore index 23af82b..aa03300 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /arbor-0.2.2.tar.gz +/arbor-f12f934.tar.gz diff --git a/0001-Correct-isnan-invocation.patch b/0001-Correct-isnan-invocation.patch new file mode 100644 index 0000000..5c44296 --- /dev/null +++ b/0001-Correct-isnan-invocation.patch @@ -0,0 +1,49 @@ +From 3207c57635f44f7d38a2e630739d846369779297 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Sun, 23 Feb 2020 15:49:21 +0000 +Subject: [PATCH] Correct isnan invocation + +--- + arbor/include/arbor/simd/neon.hpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arbor/include/arbor/simd/neon.hpp b/arbor/include/arbor/simd/neon.hpp +index 22ae0e7..3857999 100644 +--- a/arbor/include/arbor/simd/neon.hpp ++++ b/arbor/include/arbor/simd/neon.hpp +@@ -397,8 +397,8 @@ struct neon_double2 : implbase { + auto is_small = cmp_lt(x, broadcast(exp_minarg)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + +@@ -445,8 +445,8 @@ struct neon_double2 : implbase { + auto is_small = cmp_lt(x, broadcast(expm1_minarg)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + +@@ -515,8 +515,8 @@ struct neon_double2 : implbase { + auto is_domainerr = cmp_lt(x, broadcast(0)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + is_domainerr = logical_or(is_nan, is_domainerr); +-- +2.24.1 + diff --git a/0001-Include-required-header.patch b/0001-Include-required-header.patch new file mode 100644 index 0000000..fc607a8 --- /dev/null +++ b/0001-Include-required-header.patch @@ -0,0 +1,24 @@ +From 015bce3b60da23b18b308c6b758b463650cff397 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Sun, 23 Feb 2020 14:45:42 +0000 +Subject: [PATCH] Include required header + +--- + arbor/include/arbor/common_types.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arbor/include/arbor/common_types.hpp b/arbor/include/arbor/common_types.hpp +index de9dc37..d756467 100644 +--- a/arbor/include/arbor/common_types.hpp ++++ b/arbor/include/arbor/common_types.hpp +@@ -6,6 +6,7 @@ + */ + + #include ++#include + #include + #include + #include +-- +2.24.1 + diff --git a/0001-Use-system-pybind11.patch b/0001-Use-system-pybind11.patch index 494137a..a385645 100644 --- a/0001-Use-system-pybind11.patch +++ b/0001-Use-system-pybind11.patch @@ -1,4 +1,4 @@ -From f33575182f8780ce3281e65916d05529a9b861e5 Mon Sep 17 00:00:00 2001 +From 26f74e228ebd1840befa4122d4f36840104a2380 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 7 Dec 2019 16:58:38 +0000 Subject: [PATCH] Use system pybind11 @@ -8,7 +8,7 @@ Subject: [PATCH] Use system pybind11 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt -index 063c514..b0552bd 100644 +index bf4d5f0..0057102 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,18 +1,10 @@ @@ -31,8 +31,8 @@ index 063c514..b0552bd 100644 -set(PYBIND11_CPP_STANDARD -std=c++14) -add_subdirectory(pybind11) - # The Python library. MODULE will make a Python-exclusive model. - add_library(pyarb MODULE + set(pyarb_source + cells.cpp -- -2.23.0 +2.24.1 diff --git a/18e3a0586deb64c6fbd55fc6f98290466c176319.patch b/18e3a0586deb64c6fbd55fc6f98290466c176319.patch deleted file mode 100644 index 1844678..0000000 --- a/18e3a0586deb64c6fbd55fc6f98290466c176319.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 18e3a0586deb64c6fbd55fc6f98290466c176319 Mon Sep 17 00:00:00 2001 -From: Sam Yates -Date: Tue, 10 Dec 2019 10:05:24 +0100 -Subject: [PATCH] Fix for improper vector element access. - -Fixes #917. - -* Avoid use of empty ranges determined by expressions `&vector[i]` where i equals vector.size(). Replace with expressions using `vector.data()` or subrange views. ---- - arbor/backends/gpu/multi_event_stream.hpp | 2 +- - arbor/backends/multicore/multi_event_stream.hpp | 2 +- - arbor/include/arbor/schedule.hpp | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/arbor/backends/gpu/multi_event_stream.hpp b/arbor/backends/gpu/multi_event_stream.hpp -index 82842558..929c325d 100644 ---- a/arbor/backends/gpu/multi_event_stream.hpp -+++ b/arbor/backends/gpu/multi_event_stream.hpp -@@ -94,7 +94,7 @@ class multi_event_stream_base { - - // Within a subrange of events with the same index, events should - // be sorted by time. -- arb_assert(std::is_sorted(&tmp_ev_time_[ev_begin_i], &tmp_ev_time_[ev_i])); -+ arb_assert(util::is_sorted(util::subrange_view(tmp_ev_time_, ev_begin_i, ev_i))); - n_nonempty += (tmp_divs_.back()!=ev_i); - tmp_divs_.push_back(ev_i); - ev_begin_i = ev_i; -diff --git a/arbor/backends/multicore/multi_event_stream.hpp b/arbor/backends/multicore/multi_event_stream.hpp -index ae189364..18b42aa5 100644 ---- a/arbor/backends/multicore/multi_event_stream.hpp -+++ b/arbor/backends/multicore/multi_event_stream.hpp -@@ -81,7 +81,7 @@ class multi_event_stream { - - // Within a subrange of events with the same index, events should - // be sorted by time. -- arb_assert(std::is_sorted(&ev_time_[ev_begin_i], &ev_time_[ev_i])); -+ arb_assert(util::is_sorted(util::subrange_view(ev_time_, ev_begin_i, ev_i))); - mark_[s] = ev_begin_i; - span_begin_[s] = ev_begin_i; - span_end_[s] = ev_i; -diff --git a/arbor/include/arbor/schedule.hpp b/arbor/include/arbor/schedule.hpp -index 15e8d62b..d0087fa0 100644 ---- a/arbor/include/arbor/schedule.hpp -+++ b/arbor/include/arbor/schedule.hpp -@@ -18,7 +18,7 @@ namespace arb { - using time_event_span = std::pair; - - inline time_event_span as_time_event_span(const std::vector& v) { -- return {&v[0], &v[0]+v.size()}; -+ return {v.data(), v.data()+v.size()}; - } - - // A schedule describes a sequence of time values used for sampling. Schedules diff --git a/arbor.spec b/arbor.spec index 6b316ba..5231c99 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,20 +19,37 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond_without tests +%global commit f12f934f365d9e68f01bfd857982be80da2ddd10 +%global checkoutdate 20200223 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + Name: arbor Version: 0.2.2 -Release: 4%{?dist} +Release: 5.%{checkoutdate}git%{commit}%{?dist} Summary: Multi-compartment neural network simulation library License: BSD URL: https://github.com/arbor-sim/%{name} +%if %{?commit} +Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +%else Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +%endif # Use the system copy of pybind11 # https://github.com/arbor-sim/arbor/issues/915 Patch0: 0001-Use-system-pybind11.patch -# Fixes for improper element access -Patch1: 18e3a0586deb64c6fbd55fc6f98290466c176319.patch +# Include missing header +# https://github.com/arbor-sim/arbor/pull/963 +Patch1: 0001-Include-required-header.patch +# Correct isnan invocation +# https://github.com/arbor-sim/arbor/pull/964 +Patch2: 0001-Correct-isnan-invocation.patch + +# Random123 does not support these +# arbor fails to build on i686: error: static assertion failed: size_t is not the same as unsigned long or unsigned long long +# https://github.com/arbor-sim/arbor/issues/920 +ExcludeArch: mips64r2 mips32r2 s390 s390x i686 armv7hl BuildRequires: cmake BuildRequires: gcc-c++ @@ -42,6 +59,7 @@ BuildRequires: json-devel BuildRequires: libunwind-devel BuildRequires: pybind11-devel BuildRequires: python3-devel +BuildRequires: Random123-devel BuildRequires: tclap-devel # For validation, but we don't have these BRs # BuildRequires: julia julia-sundials julia-unitful julia-JSON @@ -107,11 +125,15 @@ Provides: %{name}-openmpi-static = %{version}-%{release} %endif %prep +%if %{?commit} +%autosetup -n %{name}-%{commit} -S git +%else %autosetup -S git +%endif # Do not build external libraries -# tclap and json -sed -i '/add_subdirectory(ext)/ d' CMakeLists.txt +# tclap and json and random123 +sed -i -e '/add_subdirectory(ext)/ d' -e 's/ ext-random123//' CMakeLists.txt # Remove ext folder rm -vrf ext # Disable doc build: we built it ourselves @@ -156,7 +178,11 @@ pushd build$MPI_COMPILE_TYPE && -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\ -DCMAKE_SKIP_RPATH:BOOL=ON \\\ -DCMAKE_BUILD_TYPE:STRING="release" \\\ +%ifarch x86_64 i686 aarch64 -DARB_VECTORIZE:BOOL=ON \\\ +%else + -DARB_VECTORIZE:BOOL=OFF \\\ +%endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -DARB_ARCH:STRING="native" \\\ @@ -287,8 +313,9 @@ popd %if %{with tests} %check # Run for serial only. our builders are not using MPI +# these tests segfault, filter out pushd build-serial - ./bin/unit + ./bin/unit --gtest_filter=-*mc_event_delivery*:*fvm_lowered*:*mc_cell_group* popd %endif @@ -343,6 +370,11 @@ popd %endif %changelog +* Sun Feb 23 2020 Ankur Sinha - 0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10 +- Build from latest upstream snapshot +- Freshen patch +- Add exclude arches + * Tue Jan 28 2020 Fedora Release Engineering - 0.2.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index 36af8fa..8aa8f1f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-0.2.2.tar.gz) = 5da25d643ac607f94d157fd2506d3974e512328b9391d6b00f245a61142eaa8288722b798e2a497b62d74bccd891f90f7929356b384a7169c7533bba8792d6f6 +SHA512 (arbor-f12f934.tar.gz) = a08e192ab627939159862c597dd00267f7cfad9bf27e7eca674e9598ac758e9eda2a573bbb47ece839f5d8f9604551bf274f9ced873d98e9b93ffa3bc2efdaae