New comment by mvf on void-packages repository https://github.com/void-linux/void-packages/pull/23498#issuecomment-656507808 Comment: **TL;DR** - the TR1 flavor of `alembic` is useless - `libatomic` is required on `armv6l*` **Prose** > what's up with that tr1 change TR1 is an obsolete non-standard C++ extension that has been effectively superseded by C++11. `alembic`'s TR1 build option is merely a fallback for people stuck on GCC < 4.8. Enabling it changes `alembic`'s interfaces, making it useless on modern systems. That's also why a build option makes no sense. From the README: ``` Some examples of OPTIONS you may want or need to use include: [...] -DALEMBIC_LIB_USES_TR1=ON or -DALEMBIC_LIB_USES_BOOST=ON if you do not have a C++11 capable compiler specify one of these to use TR1, or boost as a dependency of the Alembic library. ``` My guess is that the original `alembic` packager wasn't a C++ person and thought enabling TR1 was a neat way to get it to link without patching. From `lib/Alembic/CMakeLists.txt`: ```cmake # link in atomic if we are using tr1 and the compiler is new enough # to want __atomic_compare_exchange_n IF ( ${ALEMBIC_LIB_USES_TR1} AND CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8 ) TARGET_LINK_LIBRARIES( Alembic atomic ) ENDIF() ``` > without tr1, atomic shouldn't be necessary at all `armv6l*` disagrees: ``` /usr/lib/gcc/arm-linux-gnueabihf/9.3.0/../../../../arm-linux-gnueabihf/bin/ld: ../../libAlembic.so.1.7.12: undefined reference to `__atomic_fetch_or_8' /usr/lib/gcc/arm-linux-gnueabihf/9.3.0/../../../../arm-linux-gnueabihf/bin/ld: ../../libAlembic.so.1.7.12: undefined reference to `__atomic_compare_exchange_8' /usr/lib/gcc/arm-linux-gnueabihf/9.3.0/../../../../arm-linux-gnueabihf/bin/ld: ../../libAlembic.so.1.7.12: undefined reference to `__atomic_load_8' /usr/lib/gcc/arm-linux-gnueabihf/9.3.0/../../../../arm-linux-gnueabihf/bin/ld: ../../libAlembic.so.1.7.12: undefined reference to `__atomic_store_8' ```