Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Nov 2019 19:01:58 +0000 (UTC)
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r517837 - head/astro/oskar/files
Message-ID:  <201911171901.xAHJ1wB4012597@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pkubaj
Date: Sun Nov 17 19:01:58 2019
New Revision: 517837
URL: https://svnweb.freebsd.org/changeset/ports/517837

Log:
  astro/oskar: fix build on powerpc* with clang
  
  There are some Clang-on-PPC-specific issues.
  
  Clang doesn't have ppu_intrinsics.h. mulhdu and mulhwu are required.
  
  PR:		242016
  Approved by:	yuri (maintainer), linimon (mentor)
  Differential Revision:	https://reviews.freebsd.org/D22424

Added:
  head/astro/oskar/files/patch-extern_Random123_features_gccfeatures.h   (contents, props changed)

Added: head/astro/oskar/files/patch-extern_Random123_features_gccfeatures.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/astro/oskar/files/patch-extern_Random123_features_gccfeatures.h	Sun Nov 17 19:01:58 2019	(r517837)
@@ -0,0 +1,32 @@
+--- extern/Random123/features/gccfeatures.h.orig	2019-11-17 00:45:21 UTC
++++ extern/Random123/features/gccfeatures.h
+@@ -60,7 +60,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
+  Please let the authors know of any successes (or failures). */
+ #endif
+ 
+-#ifdef __powerpc__
++#if defined(__powerpc__) && !defined(__clang__)
+ #include <ppu_intrinsics.h>
+ #endif
+ 
+@@ -246,6 +246,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY O
+ #else
+ #define R123_USE_MULHILO64_MULHI_INTRIN 0
+ #endif
++#endif
++
++#if defined(__powerpc__) && defined(__clang__)
++#ifdef __powerpc64__
++static inline unsigned long long __mulhdu(unsigned long long a, unsigned long long b) {
++  __uint128_t c = (__uint128_t) a * (__uint128_t) b;
++  return c >> 64;
++}
++#endif
++
++static inline unsigned int __mulhwu(unsigned int a, unsigned int b) {
++  unsigned long long c = (unsigned long long) a * (unsigned long long) b;
++  return c >> 32;
++}
+ #endif
+ 
+ #ifndef R123_MULHILO64_MULHI_INTRIN



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201911171901.xAHJ1wB4012597>