Re: [Pixman] anongit.freedesktop.org

2020-07-13 Thread Alan Coopersmith

On 7/13/20 8:25 AM, John Emmas wrote:

On 13/07/2020 15:57, Alan Coopersmith wrote:


Which URL did you try?  g...@gitlab.freedesktop.org:cairo/cairo.git or
https://gitlab.freedesktop.org/cairo/cairo.git ?



I tried the one you gave me:- https://gitlab.freedesktop.org/cairo/cairo - but 
I've just added ".git" on the end and it's working now!


Sorry - I tried to be clear that the URL I gave was something to go to in your
web browser and it in turn would list the actual URL's to use when you clicked
on the "clone" button there.

--
    -Alan Coopersmith-   alan.coopersm...@oracle.com
 Oracle Solaris Engineering - https://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] anongit.freedesktop.org

2020-07-13 Thread Alan Coopersmith

On 7/13/20 5:54 AM, John Emmas wrote:
This might be a temporary issue but I can't seem to do a git pull any more from 
either pixman or cairo.  In both cases, TortoiseGit seems to fail at the 
following stage:-


     Connecting to anongit.freedesktop.org

Is this just something temporary or have the repos moved somewhere else?  
Thanks,


You should be able to use the URL's shown under the "clone" button on

https://gitlab.freedesktop.org/pixman/pixman
https://gitlab.freedesktop.org/cairo/cairo

--
    -Alan Coopersmith-   alan.coopersm...@oracle.com
 Oracle Solaris Engineering - https://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] 'AV_386_SSSE3' undeclared when building pixman0.34.1 with Solaris10-u2

2016-04-04 Thread Alan Coopersmith

On 04/ 4/16 06:51 PM, Yike Zhang wrote:

Hi Alan,

Thanks so much for your promptly response. Based on your valuable input, I find 
the following RN

http://www.c0t0d0s0.org/archives/4974-Whats-new-in-Solaris-10-1008-also-known-as-Update-6.html
and
x86: Kernel Support for Intel SSSE3, SSE4.1, SSE4.2, and AMD SSE4A

Am I finding the correct path?

It is a little bit embarrassing to say that the build system we kept for 
Solaris is still based on 10-u2, company-wide unfortunately. So to adding a 
fresh new 10-u6 build env might bring much effort.

So may I know if any other simpler solution if we have to stick to 10-u2 (CC 
flag?)


I've not tried it, but I can't see any reason why "cc -DAV_386_SSSE3=0x40"
wouldn't work for that particular bit of code.   If you need to actually call
other functions added in that support, you'd probably need something more 
though.

--
    -Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] 'AV_386_SSSE3' undeclared when building pixman0.34.1 with Solaris10-u2

2016-04-04 Thread Alan Coopersmith

On 04/ 4/16 05:56 PM, Yike Zhang wrote:

Hello there,

May I know if anyone hit the similar issue and guide me how to work around it?

Double check and found that AV_386_SSSE3 is not defined in the solaris10-u2
header file,


According to our bug tracker, it was added in Solaris 10 Update 6 (Solaris 10
8/08).

Can you not update to an OS that's only 8 years old instead of sticking to the
10 year old release?

--
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pixman


[Pixman] CVE-2014-9766 assigned for integer overflow in pixman < 0.32.6

2016-02-24 Thread Alan Coopersmith

See attached emails for discussion from the oss-security mailing list.

The quoted patch was applied to the master branch of the pixman git repo as:

https://cgit.freedesktop.org/pixman/commit/?id=857e40f3d2bc2cfb714913e0cd7e6184cf69aca3

and to the pixman-0.32 branch as:

https://cgit.freedesktop.org/pixman/commit/?id=50d7b5fa8ea2ae119f35c20ab0dd0413d5103cbb

It is included in pixman 0.32.6 and later releases.

--
-Alan Coopersmith-  alan.coopersm...@oracle.com
  X.Org Security Response Team - xorg-secur...@lists.x.org
--- Begin Message ---
 Hi,

There is an (old) integer overflow in create_bits in the pixman library.
Patch and details are available here:

https://web.archive.org/web/20141227044037/http://lists.freedesktop.org/archives/pixman/2014-April/003244.html

Please, assign a CVE to this issue.

Regards,
Gustavo.
--- End Message ---
--- Begin Message ---
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

> There is an (old) integer overflow in create_bits in the pixman library.

> https://web.archive.org/web/20141227044037/http://lists.freedesktop.org/archives/pixman/2014-April/003244.html
> https://bugzilla.redhat.com/show_bug.cgi?id=972647

Use CVE-2014-9766.


003244.html has this linked discussion, which is not part of the
definition of the CVE-2014-9766 ID:

  https://bugs.freedesktop.org/show_bug.cgi?id=69014
  https://lists.freedesktop.org/archives/pixman/2013-September/002915.html
  https://bugs.freedesktop.org/attachment.cgi?id=85448

- -- 
CVE assignment team, MITRE CVE Numbering Authority
M/S M300
202 Burlington Road, Bedford, MA 01730 USA
[ PGP key available through http://cve.mitre.org/cve/request_id.html ]
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBCAAGBQJWzdF9AAoJEL54rhJi8gl5BlIQALu4bdEqoZE/fTlEJSOXQj2s
4ZWZYb120yISoKjK3kHfGfDtJMi/JeEkXkMTkQjulreq/wYHBHnBeGBxJBw1laae
7JtS8ULmmR8+WBd/X1ZTmfZ4VhwYcJn0utXaN7su0QK6a3YfG7DasL1Paywf1z6E
eDMXRJgDE2ml3sHTyodAFvfHbYcpMK7EQao7HJA7o49Vr0NcNJVmW+pYqu0Hq0N+
j+WilQ4eYiw1I6GgXxiQQlOKFKdnKmflOJXEJp8qMr8iokP9OX5ewN7d/007uZNA
3gCzt7tpsBACzjx/01exaUdKOFDxHB+l1vglHiC2aFlLN46U637DiJpL0OMN+soF
AYV0vRGIfxKZOSpSk4398gbX10kv2ew9uOG9UbzkRqneZmdXWqZXPMJ2eH/H2doV
hdNpt7B+6mgKQpYZZI3OrMilj5ZXfGNc4R2RSt0ViTfabn6D5gYynTrE+Jh37mgZ
phfBvReUZIP108iAgdxOOi2pLRuUYU4ayeDmQkhNQPaokoAyxkOdy7eorJC8yRD5
HJ/sL6zKuLJkfaBrsr5zbOe3DD2VqtFQ/mGp0kgAjcKpgdvFyR5IG3n0JiBS+p8c
Q/CC7tb/gFLJYR9fReUmeJJ4xIY6dzUaXRaxocWuSts8sOgwwyUEiIdDdEK3vxu2
Gew7VEXZN1T9nBktQhgY
=IpY0
-END PGP SIGNATURE-
--- End Message ---
___
Pixman mailing list
Pixman@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH] Resolve implementation-defined behaviour for division rounded to -infinity

2015-08-26 Thread Alan Coopersmith

On 08/26/15 06:21 AM, Ben Avison wrote:

No, but I'd have thought it was bad practice to assume C99 behaviour when
compiling C89.


Perhaps the AC_PROG_CC_C99 macro should be added to the pixman/configure.ac
to avoid that then.

--
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH 00/10] Cleanups to CPU detection

2012-06-29 Thread Alan Coopersmith
On 06/29/12 01:44 PM, Søren Sandmann Pedersen wrote:
 I was looking at making use of some of the newer x86 SIMD instruction
 sets and realized that (a) we don't ever call cpuid on x86-64, we just
 assume that MMX and SSE2 are present,

I thought the amd64 ABI guaranteed MMX  SSE2 would always be present - is
that not the case?

-- 
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH 00/10] Cleanups to CPU detection

2012-06-29 Thread Alan Coopersmith
On 06/29/12 02:36 PM, sandm...@cs.au.dk wrote:
 Alan Coopersmith alan.coopersm...@oracle.com writes:
 
 On 06/29/12 01:44 PM, Søren Sandmann Pedersen wrote:
 I was looking at making use of some of the newer x86 SIMD instruction
 sets and realized that (a) we don't ever call cpuid on x86-64, we just
 assume that MMX and SSE2 are present,

 I thought the amd64 ABI guaranteed MMX  SSE2 would always be present - is
 that not the case?
 
 The problem is not so much that assumption, but the fact that for newer
 instruction sets such as SSSE3 and AVX, we do need to call cpuid even on
 x86-64. So the main point is just preparing the code for that.
 
 But in fact, I'm pretty sure I saw in some Knight's Corner (which is
 x86-64) manual, linked from here:
 
 http://software.intel.com/en-us/forums/showthread.php?t=105443
 
 that it doesn't support SSE and MMX, only the new 512 bit vector
 instructions. I can't find it now though, so maybe I was
 hallucinating. They do say that that chip is not binary compatible with
 other x86 chips, and in the instruction manual chapter 4.8, they say
 that the state of mm0 through mm7 and xmm0 through xmm7 is NA.

Ah, okay.   It should't hurt, and if it may be useful going forward,
then go for it.


-- 
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH 08/10] Cleanups and simplifications in x86 CPU feature detection

2012-06-29 Thread Alan Coopersmith
On 06/29/12 01:44 PM, Søren Sandmann Pedersen wrote:
  typedef enum
  {
 -NO_FEATURES = 0,
 -MMX = 0x1,
 -MMX_EXTENSIONS = 0x2,
 -SSE = 0x6,
 -SSE2 = 0x8,
 -CMOV = 0x10
 +X86_MMX  = (1  0),
 +X86_MMX_EXTENSIONS   = (1  1),
 +X86_SSE  = (1  2) | X86_MMX_EXTENSIONS,
 +X86_SSE2 = (1  3),
 +X86_CMOV = (1  4)
  } cpu_features_t;
  
 +#ifdef HAVE_GETISAX
  
 -static unsigned int
 +#include sys/auxv.h
 +
 +static cpu_features_t
  detect_cpu_features (void)
  {
 -unsigned int features = 0;
 -unsigned int result = 0;
 -
 -#ifdef HAVE_GETISAX
 +cpu_features_t features;
 +
  if (getisax (result, 1))
  {
   if (result  AV_386_CMOV)
 @@ -69,15 +64,47 @@ detect_cpu_features (void)
   if (result  AV_386_SSE2)
   features |= SSE2;
  }
 +

Don't you need to update the feature flags set in the getisax code to match
the renaming you did to cpu_features_t ?

-- 
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


Re: [Pixman] [PATCH 1/8] Add doubly linked lists

2012-05-30 Thread Alan Coopersmith
On 05/30/12 04:41 PM, Søren Sandmann wrote:
 +#   define OFFSET_OF(type, member)   \
 +((unsigned long)type *)0)-member))
 +#endif

Why not use the offsetof(type, member) macro that C89 guarantees to be provided
by #include stddef.h instead of coding up your own?   Presumably GCC's
__builtin_offsetof is designed to mimic the standard C offsetof.

-- 
-Alan Coopersmith-  alan.coopersm...@oracle.com
 Oracle Solaris Engineering - http://blogs.oracle.com/alanc
___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


[Pixman] [PATCH] Just use xmmintrin.h when building with Solaris Studio compilers

2012-02-24 Thread Alan Coopersmith
Since the Solaris Studio compilers don't have a mode where MMX
instructions are available and SSE instructions are not, we can
just use the xmmintrin.h header directly.

Fixes build failure due to Studio not supporting the __gnu_inline__
or __artificial__ attributes.

Signed-off-by: Alan Coopersmith alan.coopersm...@oracle.com
---
 pixman/pixman-mmx.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index bd44f63..fe31b08 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -57,6 +57,9 @@ _mm_empty (void)
 #endif
 
 #ifdef USE_X86_MMX
+# ifdef __SUNPRO_C
+#  include xmmintrin.h
+# else
 /* We have to compile with -msse to use xmmintrin.h, but that causes SSE
  * instructions to be generated that we don't want. Just duplicate the
  * functions we want to use.  */
@@ -82,6 +85,7 @@ _mm_shuffle_pi16 (__m64 __A, int8_t const __N)
 
 return ret;
 }
+# endif
 #endif
 
 #define _MM_SHUFFLE(fp3,fp2,fp1,fp0) \
-- 
1.7.3.2

___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman


[Pixman] [PATCH] Make mmx code compatible with Solaris Studio 12.3 compilers

2011-12-27 Thread Alan Coopersmith
Rearranged some of the existing gcc  Intel compiler checks to allow
easier sharing of common cases among the compilers.

Signed-off-by: Alan Coopersmith alan.coopersm...@oracle.com
---
 pixman/pixman-mmx.c |   57 ++-
 1 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 5da1f66..937ce8f 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
@@ -77,17 +77,38 @@ _mm_empty (void)
 
 /* --- MMX primitives - */
 
-#ifdef __GNUC__
+/* If __m64 is defined as a struct or union, then define M64_MEMBER to be
+ * the name of the member used to access the data.
+ * If __m64 requires using mm_cvt* intrinsics functions to convert between
+ * uint64_t and __m64 values, then define USE_CVT_INTRINSICS.
+ * If __m64 and uint64_t values can just be cast to each other directly,
+ * then define USE_M64_CASTS.
+ */
+#ifdef _MSC_VER
+# define M64_MEMBER m64_u64
+#elif defined(__ICC)
+# define USE_CVT_INTRINSICS
+#elif defined(__GNUC__)
+# define USE_M64_CASTS
+#elif defined(__SUNPRO_C)
+# if (__SUNPRO_C = 0x5120)  !defined(__NOVECTORSIZE__)
+/* Solaris Studio 12.3 (Sun C 5.12) introduces __attribute__(__vector_size__)
+ * support, and defaults to using it to define __m64, unless __NOVECTORSIZE__
+ * is defined.   If it is used, then the mm_cvt* intrinsics must be used.
+ */
+#  define USE_CVT_INTRINSICS
+# else
+/* For Studio 12.2 or older, or when __attribute__(__vector_size__) is
+ * disabled, __m64 is defined as a struct containing unsigned long long l_.
+ */
+#  define M64_MEMBER l_
+# endif
+#endif
+
+#if defined(USE_M64_CASTS) || defined(USE_CVT_INTRINSICS)
 typedef uint64_t mmxdatafield;
 #else
 typedef __m64 mmxdatafield;
-/* If __m64 is defined as a struct or union, define M64_MEMBER to be the
-   name of the member used to access the data */
-# ifdef _MSC_VER
-#  define M64_MEMBER m64_u64
-# elif defined(__SUNPRO_C)
-#  define M64_MEMBER l_
-# endif
 #endif
 
 typedef struct
@@ -113,7 +134,7 @@ typedef struct
 # define MMXDATA_INIT(field, val) { val ## UI64 }
 #elif defined(M64_MEMBER)   /* __m64 is a struct, not an integral type */
 # define MMXDATA_INIT(field, val) field =   { val ## ULL }
-#else   /* __m64 is an integral type */
+#else   /* mmxdatafield is an integral type */
 # define MMXDATA_INIT(field, val) field =   val ## ULL
 #endif
 
@@ -136,12 +157,10 @@ static const mmx_data_t c =
 MMXDATA_INIT (.mmx_, 0x),
 };
 
-#ifdef __GNUC__
-#ifdef __ICC
-#define MC(x) to_m64 (c.mmx_ ## x)
-#else
-#define MC(x) ((__m64)c.mmx_ ## x)
-#endif
+#ifdef USE_CVT_INTRINSICS
+#define MC(x) to_m64 (c.mmx_ ## x)
+#elif defined(USE_M64_CASTS)
+#define MC(x) ((__m64)c.mmx_ ## x)
 #else
 #define MC(x) c.mmx_ ## x
 #endif
@@ -149,14 +168,14 @@ static const mmx_data_t c =
 static force_inline __m64
 to_m64 (uint64_t x)
 {
-#ifdef __ICC
+#ifdef USE_CVT_INTRINSICS
 return _mm_cvtsi64_m64 (x);
 #elif defined M64_MEMBER/* __m64 is a struct, not an integral type */
 __m64 res;
 
 res.M64_MEMBER = x;
 return res;
-#else   /* __m64 is an integral type */
+#else /* USE_M64_CASTS */
 return (__m64)x;
 #endif
 }
@@ -164,12 +183,12 @@ to_m64 (uint64_t x)
 static force_inline uint64_t
 to_uint64 (__m64 x)
 {
-#ifdef __ICC
+#ifdef USE_CVT_INTRINSICS
 return _mm_cvtm64_si64 (x);
 #elif defined M64_MEMBER/* __m64 is a struct, not an integral type */
 uint64_t res = x.M64_MEMBER;
 return res;
-#else   /* __m64 is an integral type */
+#else /* USE_M64_CASTS */
 return (uint64_t)x;
 #endif
 }
-- 
1.7.3.2

___
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman