On Mon, 10 May 2021 20:10:48 +0000
Charlene Wendling <[email protected]> wrote:
> __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 is not defined on powerpc because
> there is no instruction on that arch for that. Nonetheless we
> can use 8 byte __sync_* operators [0].
>
> This code addresses issues with old gcc versions that are not used on
> macppc anymore. This has been removed from the latest qtwebkit
> developments [1]. As such i've simply excluded powerpc from that.
>
> With the below diff i can successfully build qtwebkit on macppc [2],
> as expected it has no impact on amd64.
ok gkoehler@
powerpc64 clang also defines __powerpc__, the macro in your diff, but
your diff is still correct. powerpc64 (unlike powerpc) does define
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, so it doesn't compile this code,
before or after your diff.
I can't build qtwebkit on powerpc right now because I am waiting for
my macppc to build other things. I didn't look further to see
whether the code used __sync_* or __atomic_* or what. --George
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/qt5/qtwebkit/Makefile,v
> retrieving revision 1.31
> diff -u -p -u -p -r1.31 Makefile
> --- Makefile 8 May 2021 14:58:43 -0000 1.31
> +++ Makefile 10 May 2021 13:35:03 -0000
> @@ -15,7 +15,7 @@ PKGNAME = qtwebkit-${VERSION}
> PKGSPEC = qtwebkit->=${VERSION}v0
>
> EPOCH = 0
> -REVISION = 3
> +REVISION = 4
>
>
> SHARED_LIBS += Qt5WebKit 3.1 # 5.9
> Index: patches/patch-Source_WTF_wtf_Atomics_cpp
> ===================================================================
> RCS file: patches/patch-Source_WTF_wtf_Atomics_cpp
> diff -N patches/patch-Source_WTF_wtf_Atomics_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-Source_WTF_wtf_Atomics_cpp 10 May 2021 13:35:03 -0000
> @@ -0,0 +1,17 @@
> +$OpenBSD$
> +
> +powerpc fix: don't redefine 64-bits __sync_* built-ins operators
> +
> +Index: Source/WTF/wtf/Atomics.cpp
> +--- Source/WTF/wtf/Atomics.cpp.orig
> ++++ Source/WTF/wtf/Atomics.cpp
> +@@ -32,7 +32,8 @@
> + // (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8 will
> support __atomic_* builtin
> + // functions for this purpose for all the GCC targets, but for current
> compilers we have to include
> + // our own implementation.
> +-#if COMPILER(GCC_OR_CLANG) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)
> && USE(PTHREADS)
> ++#if !defined(__powerpc__) \
> ++ && COMPILER(GCC_OR_CLANG) &&
> !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) && USE(PTHREADS)
> +
> + #include "ThreadingPrimitives.h"
> +
>
--
George Koehler <[email protected]>