summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViolet Purcell <vimproved@inventati.org>2023-09-21 21:17:20 -0400
committerSam James <sam@gentoo.org>2023-09-22 16:42:14 +0100
commitacf9acf595f777967f52efca811a3028d7af8431 (patch)
treeaa6f63b988563c07235d55590986d18bccc56514 /media-sound/ardour
parentapp-crypt/xca: add missing doc dependencies (diff)
downloadgentoo-acf9acf595f777967f52efca811a3028d7af8431.tar.gz
gentoo-acf9acf595f777967f52efca811a3028d7af8431.tar.bz2
gentoo-acf9acf595f777967f52efca811a3028d7af8431.zip
media-sound/ardour: Improve libc++ fix
This commit makes the libc++ fix for ardour use the fix from Steinberg's upstream vst3 sdk, which actually provides an implementation for AtomicAdd, unlike the previous fix. Additionally, this fix does not require an extra configure arg. Upstream-PR: https://github.com/Ardour/ardour/pull/822 Signed-off-by: Violet Purcell <vimproved@inventati.org> Closes: https://github.com/gentoo/gentoo/pull/32981 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-sound/ardour')
-rw-r--r--media-sound/ardour/ardour-7.4-r3.ebuild (renamed from media-sound/ardour/ardour-7.4-r2.ebuild)2
-rw-r--r--media-sound/ardour/ardour-7.5-r1.ebuild (renamed from media-sound/ardour/ardour-7.5.ebuild)2
-rw-r--r--media-sound/ardour/ardour-9999.ebuild2
-rw-r--r--media-sound/ardour/files/ardour-7.4-libc++.patch56
4 files changed, 33 insertions, 29 deletions
diff --git a/media-sound/ardour/ardour-7.4-r2.ebuild b/media-sound/ardour/ardour-7.4-r3.ebuild
index 2bfcbebca1ea..0fee9b81252e 100644
--- a/media-sound/ardour/ardour-7.4-r2.ebuild
+++ b/media-sound/ardour/ardour-7.4-r3.ebuild
@@ -146,8 +146,6 @@ src_configure() {
# not possible right now --use-external-libs
)
- [[ "$(tc-get-cxx-stdlib)" = "libc++" ]] && myconf+=( --use-libc++ )
-
waf-utils_src_configure "${myconf[@]}"
}
diff --git a/media-sound/ardour/ardour-7.5.ebuild b/media-sound/ardour/ardour-7.5-r1.ebuild
index 2bef74d90d7e..e012233b45d4 100644
--- a/media-sound/ardour/ardour-7.5.ebuild
+++ b/media-sound/ardour/ardour-7.5-r1.ebuild
@@ -146,8 +146,6 @@ src_configure() {
# not possible right now --use-external-libs
)
- [[ "$(tc-get-cxx-stdlib)" = "libc++" ]] && myconf+=( --use-libc++ )
-
waf-utils_src_configure "${myconf[@]}"
}
diff --git a/media-sound/ardour/ardour-9999.ebuild b/media-sound/ardour/ardour-9999.ebuild
index 607dfeed3930..029d71ed7696 100644
--- a/media-sound/ardour/ardour-9999.ebuild
+++ b/media-sound/ardour/ardour-9999.ebuild
@@ -146,8 +146,6 @@ src_configure() {
# not possible right now --use-external-libs
)
- [[ "$(tc-get-cxx-stdlib)" = "libc++" ]] && myconf+=( --use-libc++ )
-
waf-utils_src_configure "${myconf[@]}"
}
diff --git a/media-sound/ardour/files/ardour-7.4-libc++.patch b/media-sound/ardour/files/ardour-7.4-libc++.patch
index 85f13ba47dbc..a596fafba0f7 100644
--- a/media-sound/ardour/files/ardour-7.4-libc++.patch
+++ b/media-sound/ardour/files/ardour-7.4-libc++.patch
@@ -1,39 +1,49 @@
-From d8e42490b18bd0c8a827d96608e951bf5bc875e4 Mon Sep 17 00:00:00 2001
+From https://github.com/Ardour/ardour/pull/822/commits/c2ac82bfbacc583c49b306826dedec754633bbe7 Mon Sep 17 00:00:00 2001
From: Violet Purcell <vimproved@inventati.org>
-Date: Sun, 4 Jun 2023 04:56:58 -0400
-Subject: [PATCH] Fix build with libc++ on linux
+Date: Thu, 21 Sep 2023 21:09:30 -0400
+Subject: [PATCH] Backport VST3 libc++ fix on linux
+LLVM libc++ does not have the ext/atomicity.h header. This fix is copied
+from the upstream vst3_pluginterfaces repo.
+
+Signed-off-by: Violet Purcell <vimproved@inventati.org>
--- a/libs/vst3/pluginterfaces/base/funknown.cpp
+++ b/libs/vst3/pluginterfaces/base/funknown.cpp
-@@ -44,7 +44,9 @@
+@@ -44,13 +44,23 @@
#endif
#if SMTG_OS_LINUX
-+#ifndef USE_LIBCXX
++#if !defined (SMTG_USE_STDATOMIC_H)
++#if defined (_LIBCPP_VERSION)
++#define SMTG_USE_STDATOMIC_H 1
++#else
#include <ext/atomicity.h>
+#endif
++#endif
/* UUID */
#include <string>
#include <boost/uuid/uuid.hpp>
-@@ -83,7 +85,7 @@ int32 PLUGIN_API atomicAdd (int32& var, int32 d)
+ #include <boost/uuid/uuid_generators.hpp>
+ #endif
+
++#if defined (SMTG_USE_STDATOMIC_H) && SMTG_USE_STDATOMIC_H
++#include <stdatomic.h>
++#endif
++
+ namespace Steinberg {
+
+ //------------------------------------------------------------------------
+@@ -79,7 +89,9 @@ namespace FUnknownPrivate {
+ //------------------------------------------------------------------------
+ int32 PLUGIN_API atomicAdd (int32& var, int32 d)
+ {
+-#if SMTG_OS_WINDOWS
++#if SMTG_USE_STDATOMIC_H
++ return atomic_fetch_add (reinterpret_cast<atomic_int_least32_t*> (&var), d) +d;
++#elif SMTG_OS_WINDOWS
return InterlockedExchangeAdd ((volatile long int*)&var, d) + d;
#elif SMTG_OS_MACOS
return OSAtomicAdd32Barrier (d, (int32_t*)&var);
--#elif SMTG_OS_LINUX
-+#elif SMTG_OS_LINUX && !defined USE_LIBCXX
- __gnu_cxx::__atomic_add (&var, d);
- return var;
- #else
---- a/wscript
-+++ b/wscript
-@@ -545,6 +545,8 @@ int main() { return 0; }''',
- if opt.use_libcpp or conf.env['build_host'] in [ 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' ]:
- cxx_flags.append('--stdlib=libc++')
- linker_flags.append('--stdlib=libc++')
-+ if platform == 'linux':
-+ cxx_flags.append('-DUSE_LIBCXX')
-
- if conf.options.cxx11 or conf.env['build_host'] in [ 'mavericks', 'yosemite', 'el_capitan', 'sierra', 'high_sierra', 'mojave', 'catalina' , 'bigsur', 'monterey', 'ventura' ]:
- conf.check_cxx(cxxflags=["-std=c++11"])
--
-2.40.1
+2.42.0
+