Commit Graph

258 Commits

Author SHA1 Message Date
Søren Sandmann Pedersen
87eea99e44 Pre-release version bump to 0.32.6 2014-07-05 18:55:43 -04:00
Siarhei Siamashka
9f18ea3483 configure.ac: Check if the compiler supports GCC vector extensions
The Intel Compiler 14.0.0 claims version GCC 4.7.3 compatibility
via __GNUC__/__GNUC__MINOR__ macros, but does not provide the same
level of GCC vector extensions support as the original GCC compiler:
    http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html

Which results in the following compilation failure:

In file included from ../test/utils.h(7),
                 from ../test/utils.c(3):
../test/utils-prng.h(138): error: expression must have integral type
      uint32x4 e = x->a - ((x->b << 27) + (x->b >> (32 - 27)));
                            ^

The problem is fixed by doing a special check in configure for
this feature.
2014-07-04 20:52:59 -04:00
Matt Turner
dae5a758e2 Post-release version bump to 0.32.5 2013-11-17 17:48:54 -08:00
Matt Turner
4b3a66b05e Pre-release version bump to 0.32.4 2013-11-17 17:46:52 -08:00
Søren Sandmann
917a52003d Post-release version bump to 0.32.3 2013-11-11 19:55:18 -05:00
Søren Sandmann
a980f83a68 Pre-release version bump to 0.32.2 2013-11-11 19:44:54 -05:00
Søren Sandmann
7a00965d7a Post-release version bump to 0.32.1 2013-11-11 19:07:35 -05:00
Søren Sandmann
895e7e05b7 Pre-release version bump to 0.32.0 2013-11-10 18:05:47 -05:00
Søren Sandmann Pedersen
8cbc7da4e5 Post-release version bump to 0.31.3 2013-11-01 20:52:00 -04:00
Søren Sandmann Pedersen
99e8605be0 Pre-release version bump to 0.31.2 2013-11-01 20:39:46 -04:00
Brad Smith
8ef7e0d18e Fix pixman build with older GCC releases
The following patch fixes building pixman with older GCC releases
such as GCC 3.3 and older (OpenBSD; some older archs use GCC 3.3.6)
by changing the method of detecting the presence of __builtin_clz
to utilizing an autoconf check to determine its presence. Compilers
that pretend to be GCC, implement __builtin_clz and are already
utilizing the intrinsic include LLVM/Clang, Open64, EKOPath and
PCC.
2013-11-01 20:14:33 -04:00
Siarhei Siamashka
9e81419ed5 configure.ac: check and use -Wdeclaration-after-statement GCC option
The accidental use of declaration after statement breaks compilation
with C89 compilers such as MSVC. Assuming that MSVC is one of the
supported compilers, it makes sense to ask GCC to at least report
warnings for such problematic code.
2013-10-14 00:27:04 +03:00
Søren Sandmann Pedersen
8f75f638ab configure.ac: Add check for pmulhuw assembly
Clang 3.0 chokes on the following bit of assembly

    asm ("pmulhuw %1, %0\n\t"
        : "+y" (__A)
        : "y" (__B)
    );

from pixman-mmx.c with this error message:

    fatal error: error in backend: Unsupported asm: input constraint
        with a matching output constraint of incompatible type!

So add a check in configure to only enable MMX when the compiler can
deal with it.
2013-10-12 15:04:27 -04:00
Søren Sandmann Pedersen
6582950407 Rename HAVE_PTHREAD_SETSPECIFIC to HAVE_PTHREADS
The test for pthread_setspecific() can be used as a general test for
whether pthreads are available, so rename the variable from
HAVE_PTHREAD_SETSPECIFIC to HAVE_PTHREADS and run the test even when
better support for thread local variables are available.

However, the pthread arguments are still only added to CFLAGS and
LDFLAGS when pthread_setspecific() is used for thread local variables.

V2: AC_SUBST(PTHREAD_CFLAGS)
2013-10-01 23:33:35 +03:00
Søren Sandmann Pedersen
f1792b3221 Add empty SSSE3 implementation
This commit adds a new, empty SSSE3 implementation and the associated
build system support.

configure.ac:   detect whether the compiler understands SSSE3
                intrinsics and set up the required CFLAGS

Makefile.am:    Add libpixman-ssse3.la

pixman-x86.c:   Add X86_SSSE3 feature flag and detect it in
                detect_cpu_features().

pixman-ssse3.c: New file with an empty SSSE3 implementation

V2: Remove SSSE3_LDFLAGS since it isn't necessary unless Solaris
support is added.
2013-09-16 16:50:35 -04:00
Matt Turner
8ad63f90cd iwmmxt: Disallow if gcc version is < 4.8.
Later versions of gcc-4.7.x are capable of generating iwMMXt
instructions properly, but gcc-4.8 contains better support and other
fixes, including iwMMXt in conjunction with hardfp. The existing 4.5
requirement was based on attempts to have OLPC use a patched gcc to
build pixman. Let's just require gcc-4.8.
2013-09-04 23:48:52 -07:00
Alexander Troosh
279bdcda7e Require GTK+ version >= 2.16
I'm got bug in my system:

lcc: "scale.c", line 374: warning: function "gtk_scale_add_mark" declared
          implicitly [-Wimplicit-function-declaration]
      gtk_scale_add_mark (GTK_SCALE (widget), 0.0, GTK_POS_LEFT, NULL);
      ^

  CCLD   scale
scale.o: In function `app_new':
(.text+0x23e4): undefined reference to `gtk_scale_add_mark'
scale.o: In function `app_new':
(.text+0x250c): undefined reference to `gtk_scale_add_mark'
scale.o: In function `app_new':
(.text+0x2634): undefined reference to `gtk_scale_add_mark'
make[2]: *** [scale] Error 1
make[2]: Target `all' not remade because of errors.

$ pkg-config --modversion gtk+-2.0
2.12.1

The demos/scale.c use call to gtk_scale_add_mark() function from 2.16+
version of GTK+. Need do support old GTK+ (rewrite scale.c) or simple
demand of high version of GTK+, like this:
2013-06-11 12:09:49 -04:00
Matthieu Herrb
889f118946 configure.ac: Don't use '+=' since it's not POSIX
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
2013-06-08 10:21:54 -07:00
Markos Chandras
d77d75cc6e Use AC_LINK_IFELSE to check if the Loongson MMI code can link
The Loongson code is compiled with -march=loongson2f to enable the MMI
instructions, but binutils refuses to link object code compiled with
different -march settings, leading to link failures later in the
compile. This avoids that problem by checking if we can link code
compiled for Loongson.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
2013-05-19 09:01:34 -07:00
Søren Sandmann Pedersen
d70141955e Post-release version bump to 0.31.1 2013-05-08 19:40:12 -04:00
Søren Sandmann Pedersen
41daf50aae Pre-release version bump to 0.30.0 2013-05-08 19:31:22 -04:00
Søren Sandmann Pedersen
5a7179191d Post-release version bump to 0.29.5 2013-04-30 18:57:43 -04:00
Søren Sandmann Pedersen
2714b5d201 Pre-release version bump to 0.29.4 2013-04-30 18:50:04 -04:00
Peter Breitenlohner
9d0bb10312 Check for missing sqrtf() as, e.g., for Solaris 9
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
2013-04-08 14:33:25 -04:00
Søren Sandmann Pedersen
958bd334b3 Post-release version bump to 0.29.3 2013-01-29 21:42:02 -05:00
Søren Sandmann Pedersen
a56707e23b Pre-release version bump to 0.29.2 2013-01-29 21:14:51 -05:00
Siarhei Siamashka
09600ae7e3 configure.ac: Added detection for __float128 support
GCC supports 128-bit floating point data type on some platforms (including
but not limited to x86 and x86-64). This may be useful for tests, which
need prefectly accurate reference implementations of certain algorithms.
2013-01-27 20:50:26 +02:00
Marko Lindqvist
480dd38fd1 Fix build with automake-1.13
Automake-1.13 has removed long obsolete AM_CONFIG_HEADER macro (
http://lists.gnu.org/archive/html/automake/2012-12/msg00038.html )
and autoreconf errors out upon seeing it.

Attached patch replaces obsolete AM_CONFIG_HEADER with now proper
AC_CONFIG_HEADERS.
2013-01-04 01:54:10 +02:00
Benjamin Gilbert
7e39861da3 Fix thread safety on mingw-w64 and clang
After finding a working TLS storage class specifier, configure was
continuing to test other candidates.  This caused it to prefer
__declspec(thread) over __thread.  However, __declspec(thread) is
ignored with a warning by mingw-w64 [1] and silently ignored by clang [2].
The resulting binary behaved as if PIXMAN_NO_TLS was defined.

Bug introduced by a069da6c.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=57591
[2] http://lists.freedesktop.org/archives/pixman/2012-October/002320.html
2012-12-08 16:41:10 +02:00
Søren Sandmann Pedersen
f2ada9e63f Post-release version bump to 0.29.1 2012-11-07 13:45:09 -05:00
Søren Sandmann Pedersen
8a2ff3e0ef Pre-release version bump to 0.28.0 2012-11-07 13:41:15 -05:00
Søren Sandmann Pedersen
4b91f6ca72 Post-release version bump to 0.27.5 2012-10-25 10:42:26 -04:00
Søren Sandmann Pedersen
0de3f33449 Pre-release version bump to 0.27.4 2012-10-25 10:35:27 -04:00
Benny Siegert
af803be17b configure.ac: PIXMAN_LINK_WITH_ENV fix
(fixes bug #52101)

On MirBSD, the compiler produces a (harmless) warning when the compiler
is called without the standard CFLAGS:

foo.c:0: note: someone does not honour COPTS correctly, passed 0 times

However, PIXMAN_LINK_WITH_ENV considers _any_ output on stderr as an
error, even if the exit status of the compiler is 0. Furthermore, it
resets CFLAGS and LDFLAGS at the start. On MirBSD, this will lead to a
warning in each test, making all such tests fail. In particular, the
pthread_setspecific test fails, thus pixman is compiled without thread
support. This leads to compile errors later on, or at least it did when
I tried this on pkgsrc. Re-adding the saved CFLAGS, LDFLAGS and LIBS
before the test makes it work.

The second hunk inverts the order of the pthread flag checks. On BSD
systems (this is true at least on OpenBSD and MirBSD), both -lpthread
and -pthread work but the latter is "preferred", whatever this means.
2012-10-17 14:42:56 -04:00
Søren Sandmann Pedersen
8ccda2be30 Don't auto-generate pixman-combine32.[ch] anymore
Since pixman-combine64.[ch] are not used anymore, there is no point
generating these files from pixman-combine.[ch].template.

Also get rid of dependency on perl in configure.ac.
2012-10-04 03:33:50 -04:00
Matt Turner
3124a51abb build: Remove useless DEP_CFLAGS/DEP_LIBS variables 2012-09-15 23:46:21 -07:00
Søren Sandmann Pedersen
da5268cc19 Post-release version bump to 0.27.3 2012-08-01 15:56:13 -04:00
Søren Sandmann Pedersen
e8ddef78b6 Pre-release version bump to 0.27.2 2012-08-01 15:22:57 -04:00
Søren Sandmann Pedersen
f9c91ee2f2 Use a compile-time constant for the "K" constraint in the MMX detection.
When compiling with -O0, gcc doesn't understand that in

     signed char x = 0;

     ...

     asm ("...",
     	  : "K" (x));

x is constant. Fix this by using an immediate constant instead of a
variable.
2012-07-02 18:21:21 -04:00
Matt Turner
367b78fd5c configure.ac: add iwmmxt2 configure flag
The flag allows the user to select whether pixman-mmx.c is compiled with
-march=iwmmxt or -march=iwmmxt2.

gcc has scheduling support for the Marvell CPU in the XO 1.75 when
building with -march=iwmmxt2.
2012-06-09 16:57:16 -04:00
Matt Turner
31a6563ec5 autotools: use custom build rule to build iwMMXt code
gcc has no sane way of enabling iwmmxt code generation, like -msse for
SSE, so you have to use -march=iwmmxt{,2}. User CFLAGS are placed after
-march=iwmmxt and override the march value, so we have to use a custom
build rule to order the CFLAGS such that pixman-mmx.c will be built with
the necessary CFLAGS.
2012-06-09 16:57:16 -04:00
Søren Sandmann Pedersen
6491c70e3a Post-release version bump to 0.27.1 2012-05-26 16:34:13 -04:00
Søren Sandmann Pedersen
b1a401e6c9 Pre-release version bump to 0.26.0 2012-05-26 16:17:14 -04:00
Matt Turner
55698584be configure.ac: Fail the ARM/iwMMXt test if not compiling with -march=iwmmxt
If not compiling with -march=iwmmxt, the configure test will still pass,
thinking that the __builtin_arm_* intrinsic is a function instead of
generating a single instruction. Since no linking is done, the configure
test doesn't catch this, and we get linking errors in the build.
2012-05-15 16:41:22 -04:00
Søren Sandmann Pedersen
3682b61515 Post-release version bump to 0.25.7 2012-05-15 13:38:44 -04:00
Søren Sandmann Pedersen
1e1a00e964 Pre-release version bump to 0.25.6
Note that 0.25.4 was a botched release that doesn't have a tag and
doesn't correspond to any commit ID. It was however uploaded and
announced, so I'll just use the 0.25.6 version number.
2012-05-15 13:20:09 -04:00
Matt Turner
50d3088d78 configure.ac: Rename loongson -> loongson-mmi
Make it match with the other fast paths, and the PIXMAN_DISABLE value is
already loongson-mmi.
2012-05-11 21:59:13 -04:00
Matt Turner
a0a40cb822 configure.ac: Fix loongson-mmi out-of-tree builds
When building out-of-tree, gcc wasn't able to find loongson-mmintrin.h
to compile the test program. Add -I$srcdir to CFLAGS to point gcc to it.
2012-05-11 21:49:42 -04:00
Matt Turner
2beabd9fed configure.ac: make -march=loongson2f come before CFLAGS
Otherwise we'd have -march=loongson2f being overridden by automake's
CFLAGS ordering which causes build failures when -march=<not loongson2f>
is specified by the user.
2012-05-10 16:15:34 -04:00
Matt Turner
c78e986085 mmx: compile on MIPS for Loongson MMI optimizations
image               image16
           evolution   32.985 ->  29.667    27.314 ->  23.870
firefox-planet-gnome  197.982 -> 180.437   220.986 -> 205.057
gnome-system-monitor   48.482 ->  49.752    52.820 ->  49.528
  gnome-terminal-vim   60.799 ->  50.528    51.655 ->  44.131
      grads-heat-map    3.167 ->   3.181     3.328 ->   3.321
                gvim   38.646 ->  32.552    38.126 ->  34.453
       midori-zoomed   44.371 ->  43.338    28.860 ->  28.865
           ocitysmap   23.065 ->  18.057    23.046 ->  18.055
             poppler   43.676 ->  36.077    43.065 ->  36.090
  swfdec-giant-steps   20.166 ->  20.365    22.354 ->  16.578
      swfdec-youtube   31.502 ->  28.118    44.052 ->  41.771
   xfce4-terminal-a1   69.517 ->  51.288    62.225 ->  53.309
2012-04-27 13:35:05 -04:00