Assertion failed on line 59 of DeletedBufferChain.cxx

This patch seems to address the issue, according to someone else who’s built Panda for ARM. I’ll check it in soon.

diff --git a/dtool/src/dtoolbase/atomicAdjustGccImpl.I b/dtool/src/dtoolbase/atomicAdjustGccImpl.I
index 3e462f0..226f293 100644
--- a/dtool/src/dtoolbase/atomicAdjustGccImpl.I
+++ b/dtool/src/dtoolbase/atomicAdjustGccImpl.I
@@ -124,8 +124,8 @@ INLINE AtomicAdjustGccImpl::Integer AtomicAdjustGccImpl::
 compare_and_exchange(TVOLATILE AtomicAdjustGccImpl::Integer &mem,
                      AtomicAdjustGccImpl::Integer old_value,
                      AtomicAdjustGccImpl::Integer new_value) {
-
-  __atomic_compare_exchange_n(&mem, &old_value, new_value, true,
+  assert((((size_t)&mem) & (sizeof(Integer) - 1)) == 0);
+  __atomic_compare_exchange_n(&mem, &old_value, new_value, false,
                               __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
   return old_value;
 }
@@ -142,7 +142,8 @@ compare_and_exchange_ptr(TVOLATILE AtomicAdjustGccImpl::Pointer &mem,
                          AtomicAdjustGccImpl::Pointer old_value,
                          AtomicAdjustGccImpl::Pointer new_value) {

-  __atomic_compare_exchange_n(&mem, &old_value, new_value, true,
+  assert((((size_t)&mem) & (sizeof(Pointer) - 1)) == 0);
+  __atomic_compare_exchange_n(&mem, &old_value, new_value, false,
                               __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
   return old_value;
 }