summaryrefslogtreecommitdiff
path: root/dev-db/mongodb/mongodb-8.0.12.ebuild
diff options
context:
space:
mode:
authorZ. Liu <zhixu.liu@gmail.com>2025-09-16 04:09:35 +0000
committerSam James <sam@gentoo.org>2025-09-17 22:27:44 +0100
commit575b35af90ef010ee1531f55165de9b5b34d4c7c (patch)
tree3d91e17e4bdc806f98f6b5d032d502778a361163 /dev-db/mongodb/mongodb-8.0.12.ebuild
parent222d189042a6be146c7650ed8d18b2c8fcc26632 (diff)
downloadgentoo-575b35af90ef010ee1531f55165de9b5b34d4c7c.tar.gz
gentoo-575b35af90ef010ee1531f55165de9b5b34d4c7c.tar.bz2
gentoo-575b35af90ef010ee1531f55165de9b5b34d4c7c.zip
dev-db/mongodb: fix build issue w/ clang 20
upstream patch is applied, otherwise the build w/ clang 20 fails with: > src/mongo/bson/util/bsoncolumnbuilder.h:285:49: error: call to deleted constructor of 'const mongo::TrackingAllocator<void> &' However, the build still fails with: > /usr/bin/x86_64-pc-linux-gnu-ld.bfd: build/gentoo/mongo/db/storage/wiredtiger/wiredtiger_record_store.o: in function `mongo::WiredTigerRecordStore::getEarliestOplogTimestamp(mongo::OperationContext*)': > /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/atomic_base.h:1002:(.text+0x7da9): undefined reference to `__atomic_compare_exchange' > clang++: error: linker command failed with exit code 1 (use -v to see invocation) The reason is that Timestamp is a composite type, which requires -latomic when building with clang++ and libstdc++. Mongodb's SConstruct only checks for some basic types ('int64_t', 'uint64_t', 'int32_t', 'uint32_t'), so this case is not detected. Test case below: $ cat a.cc #include <atomic> struct Timestamp { unsigned int t, i; }; template<typename T> struct AtomicWord { std::atomic<T> v; T compareAndSwap(T e, T n) { v.compare_exchange_strong(e,n); return e; } }; int main() { AtomicWord<Timestamp> x; Timestamp a{0,0}, b{1,1}; x.compareAndSwap(a,b); return 0; } $ clang++ -stdlib=libstdc++ a.cc /usr/bin/x86_64-pc-linux-gnu-ld.bfd: /tmp/a-1e3f91.o: in function `std::atomic<Timestamp>::compare_exchange_strong(Timestamp&, Timestamp, std::memory_order, std::memory_order)': a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x222): undefined reference to `__atomic_compare_exchange' /usr/bin/x86_64-pc-linux-gnu-ld.bfd: a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x28d): undefined reference to `__atomic_compare_exchange' /usr/bin/x86_64-pc-linux-gnu-ld.bfd: a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x2f8): undefined reference to `__atomic_compare_exchange' /usr/bin/x86_64-pc-linux-gnu-ld.bfd: a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x3c1): undefined reference to `__atomic_compare_exchange' /usr/bin/x86_64-pc-linux-gnu-ld.bfd: a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x42c): undefined reference to `__atomic_compare_exchange' /usr/bin/x86_64-pc-linux-gnu-ld.bfd: /tmp/a-1e3f91.o:a.cc:(.text._ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_[_ZNSt6atomicI9TimestampE23compare_exchange_strongERS0_S0_St12memory_orderS3_]+0x497): more undefined references to `__atomic_compare_exchange' follow clang++: error: linker command failed with exit code 1 (use -v to see invocation) Signed-off-by: Z. Liu <zhixu.liu@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43808 Closes: https://github.com/gentoo/gentoo/pull/43808 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-db/mongodb/mongodb-8.0.12.ebuild')
-rw-r--r--dev-db/mongodb/mongodb-8.0.12.ebuild2
1 files changed, 2 insertions, 0 deletions
diff --git a/dev-db/mongodb/mongodb-8.0.12.ebuild b/dev-db/mongodb/mongodb-8.0.12.ebuild
index e33182d058bb..d118329a1c89 100644
--- a/dev-db/mongodb/mongodb-8.0.12.ebuild
+++ b/dev-db/mongodb/mongodb-8.0.12.ebuild
@@ -75,6 +75,8 @@ PATCHES=(
"${WORKDIR}/mongodb-8.0.8-patches/${PN}-8.0.6-fixes-for-boost-1.85.patch"
"${WORKDIR}/mongodb-8.0.8-patches/${PN}-8.0.4-scons.patch"
"${WORKDIR}/mongodb-8.0.8-patches/${PN}-8.0.6-use-tenacity.patch"
+ "${FILESDIR}/${PN}-8.0.8-sconstruct.patch"
+ "${FILESDIR}/${PN}-8.0.8-fix-compile-error-due-to-deleted-constructor.patch"
"${FILESDIR}/boost_issue_402.patch"
"${FILESDIR}/${PN}-8.0.12-sconstruct.patch"
)