Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / lib / 
pixman


Commits:
83ba0244 by Claude Heiland-Allen at 2022-11-03T12:51:47+00:00
implement r8g8b8 sRGB (without alpha)

Signed-off-by: Claude Heiland-Allen <[email protected]>

- - - - -
40d6c9b2 by Claude Heiland-Allen at 2022-11-03T12:51:47+00:00
add r8g8b8 sRGB to test suite

Signed-off-by: Claude Heiland-Allen <[email protected]>

- - - - -
618e3d42 by Matt Turner at 2022-11-03T09:53:12-04:00
Post-release version bump to 0.42.3

- - - - -
713077d0 by Heiko Lewin at 2022-11-03T19:13:41+00:00
Fix signed-unsigned semantics in reduce_32

- - - - -
eb998d7b by Emanuel Schmidt at 2023-02-08T20:56:05+01:00
Separate meson build options for demos and tests

- - - - -
ee145e53 by Emanuel Schmidt at 2023-02-14T22:20:12+01:00
Changed name of the config-header to "pixman-config.h"

- - - - -
e4c878d1 by Emanuel Schmidt at 2023-02-17T18:52:14+01:00
Fixed missing dependency in libdemo

After the latest changes and separation of demo- and test-targets,
it was visible that a dependency towards `libtestutils_dep` was
missing in one of the demo-dependencies. This change will fix
this particular problem.

- - - - -
48d5df1f by Benjamin Gilbert at 2023-07-08T17:36:00-04:00
meson: don't dllexport when built as static library

If a static Pixman is linked with a dynamic library, Pixman shouldn't
export its own symbols into the latter's ABI.

- - - - -
672f67db by Simon Ser at 2023-07-09T01:48:29+00:00
Add pixman_region{,32}_empty()

Inverse of pixman_region32_not_empty().

Most of the time, callers want to check whether a region is empty,
not whether a region is not empty. This results in code with
double-negatives such as !pixman_region32_not_empty(), which is
confusing to read.

Signed-off-by: Simon Ser <[email protected]>

- - - - -
55845c3d by Simon Ser at 2023-07-09T01:53:48+00:00
Constify pixman_image_set_clip_region()

This function copies the region passed in.

Signed-off-by: Simon Ser <[email protected]>

- - - - -
47d3fbe3 by Benjamin Gilbert at 2023-07-09T01:56:40+00:00
mmx: use xmmintrin.h if building with SSE2

As of mingw-w64 commit 463f00975, winnt.h includes emmintrin.h when
compiling with SSE2, causing redefinition errors for our copied MMX
intrinsics.  If the build is assuming SSE2 anyway, just use the system
header instead.

- - - - -
67490a8b by Heiko Lewin at 2023-07-18T07:20:01+02:00
pixman-arma64: Adjustments to build with llvm integrated assembler

This enables building the aarch64 assembly with clang.
Changes:
1. Use `.func` or `.endfunc` only if available
2. Prefix macro arg names with `\` 
3. Use `\()` instead of `&`
4. Always use commas to separate macro arguments
5. Prefix asm symbols with an undderscore if necessary

- - - - -
593a9702 by Matt Turner at 2023-07-19T15:08:22-04:00
test: Revert to including pixman-private.h

This broke the Visual Studio builds in GTK's CI system.

- - - - -
55eb680a by Dylan Baker at 2023-08-30T10:51:27-04:00
autotools: remove autotools

At this point meson is pretty well tested and seems to pretty much work,
so we can consider dropping an extra build system.

This doesn't solve the problem that pixman's release scripts are part of
the autotools build system (as make targets). One solution might be to
use xorg's release.sh instead.

- - - - -
72c4245b by Dylan Baker at 2023-08-30T10:54:46-04:00
delete win32 make files

meson can handle building for win32 (including using visual studio, and
mingw), and does a good deal more than these could. Since we're dropping
autotools, we might as well drop these too.

- - - - -
2cf9ae1c by Gauthier Östervall at 2023-08-30T11:12:41-04:00
Update build instructions to meson and ninja

- - - - -
f1072b07 by Matt Turner at 2023-08-30T11:14:04-04:00
Remove generic build system information

- - - - -
7169c040 by Matt Turner at 2023-08-30T11:15:00-04:00
Use more Markdown-friendly syntax

- - - - -
7aeeb501 by Simon Ser at 2023-08-30T15:49:50+00:00
Fix const warnings in pixman_image_set_clip_region()

Fixes the following warnings:

    pixman-image.c: In function 'pixman_image_set_clip_region':
    pixman-image.c:601:81: warning: passing argument 2 of 
'pixman_region32_copy_from_region16' discards 'const' qualifier 
from pointer target type [-Wdiscarded-qualifiers]
      601 |         if ((result = pixman_region32_copy_from_region16 
(&common->clip_region, region)))
          |                                                                     
            ^~~~~~
    In file included from pixman-image.c:32:
    pixman-private.h:859:56: note: expected 'pixman_region16_t *' {aka 
'struct pixman_region16 *'} but argument is of type 'const 
pixman_region16_t *' {aka 'const struct pixman_region16 *'}
      859 |                                     pixman_region16_t *src);
          |                                     ~~~~~~~~~~~~~~~~~~~^~~
    pixman-utils.c:240:1: error: conflicting types for 
'pixman_region16_copy_from_region32'; have 
'pixman_bool_t(pixman_region16_t *, pixman_region32_t *)' {aka 
'int(struct pixman_region16 *, struct pixman_region32 *)'}
      240 | pixman_region16_copy_from_region32 (pixman_region16_t *dst,
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from pixman-utils.c:31:
    pixman-private.h:862:1: note: previous declaration of 
'pixman_region16_copy_from_region32' with type 
'pixman_bool_t(pixman_region16_t *, const pixman_region32_t *)' {aka 
'int(struct pixman_region16 *, const struct pixman_region32 *)'}
      862 | pixman_region16_copy_from_region32 (pixman_region16_t *dst,
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    pixman-utils.c:270:1: error: conflicting types for 
'pixman_region32_copy_from_region16'; have 
'pixman_bool_t(pixman_region32_t *, pixman_region16_t *)' {aka 
'int(struct pixman_region32 *, struct pixman_region16 *)'}
      270 | pixman_region32_copy_from_region16 (pixman_region32_t *dst,
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from pixman-utils.c:31:
    pixman-private.h:858:1: note: previous declaration of 
'pixman_region32_copy_from_region16' with type 
'pixman_bool_t(pixman_region32_t *, const pixman_region16_t *)' {aka 
'int(struct pixman_region32 *, const struct pixman_region16 *)'}
      858 | pixman_region32_copy_from_region16 (pixman_region32_t *dst,
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Simon Ser <[email protected]>

- - - - -
753f5e09 by Matt Turner at 2023-08-30T11:58:04-04:00
meson: Fix syntax

- - - - -
634b8196 by Havard Eidnes at 2023-08-30T12:14:26-04:00
vmx: Simplify scaled_nearest_scanline_vmx_8888_8888_OVER

Since combine4() does not take vector variables as arguments, there's no
need to use a vector variable and casts back and forth to normal scalars
for the arguments.

- - - - -
47a1c3d3 by Havard Eidnes at 2023-08-30T12:14:40-04:00
vmx: Reimplement create_mask_32_128 and use it in vmx_fill

Based on suggestion from @siamashka.

This lets the compiler pick the vector instruction to use which is
usually the best idea.

Use create_mask_32_128() instead of create_mask_1x32_128() in
vmx_fill(), avoiding loading memory beyond the filler argument on the
stack.

Remove the now-unused create_mask_1x32_128(). This gets rid of some
(correct) warnings from the compiler about indexing beyond the variable
in question.

- - - - -
08115a42 by Sam James at 2023-11-07T22:31:05+00:00
pixman-bits-image: fix -Walloc-size

GCC 14 introduces a new -Walloc-size included in -Wextra which gives (when 
forced
to be an error):
```
../pixman/pixman-bits-image.c: In function ‘create_bits’:
../pixman/pixman-bits-image.c:1273:16: error: allocation of insufficient size 
‘1’ for type ‘uint32_t’ {aka ‘unsigned int’} with size ‘4’ [-Werror=alloc-size]
 1273 |         return calloc (buf_size, 1);
      |                ^~~~~~~~~~~~~~~~~~~~
```

The calloc prototype is:
```
void *calloc(size_t nmemb, size_t size);
```

So, just swap the number of members and size arguments to match the prototype, 
as
we're initialising 1 element of size `buf_size`. GCC then sees we're not
doing anything wrong.

Signed-off-by: Sam James <[email protected]>

- - - - -
b4b789df by Benjamin Gilbert at 2023-11-08T18:43:10+00:00
meson: avoid linking with -pthread if we don't have pthreads

Meson always returns -pthread in dependency('threads') on non-MSVC
compilers.  Fix a link error when building on MinGW without winpthreads.

- - - - -
86f91623 by Pavel Labath at 2023-12-15T13:10:52+01:00
Fix alignment problem in pixman-fast-path.c

The variable is accessed through uint32_t pointer, so it needs to be
aligned to avoid undefined behavior (crashes on architectures which
require aligned accesses).

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/84

- - - - -
7883ab8d by Simon Ser at 2023-12-15T13:21:09+01:00
ci: upgrade to Fedora 39

Fedora 28 is super old.

Signed-off-by: Simon Ser <[email protected]>

- - - - -
20cc4ee0 by Matt Turner at 2024-01-03T21:24:46-05:00
pixman-sse2: Remove unused functions

- - - - -
af101d3c by Matt Turner at 2024-01-03T21:24:46-05:00
pixman-mmx: Don't redefine _MM_SHUFFLE

- - - - -
7e76c962 by Matt Turner at 2024-01-03T21:24:46-05:00
pixman-access: Mark __dummy__ variables with MAYBE_UNUSED

- - - - -
396e1a76 by Matt Turner at 2024-01-03T21:40:12-05:00
test: Use fabsl on float128

- - - - -
6c2e4a0d by Simon Ser at 2024-01-04T11:01:05+01:00
Pre-release version bump to 0.43.0

Signed-off-by: Simon Ser <[email protected]>

- - - - -
8e4be8c2 by Simon Ser at 2024-01-04T11:48:38+01:00
Post-release version bump to 0.43.1

Signed-off-by: Simon Ser <[email protected]>

- - - - -
8c39ce24 by Simon Ser at 2024-01-27T13:15:28+01:00
Drop automatic DEBUG define

We don't use the historical odd stable release numbering scheme
anymore.

Developers can still enable this debugging code via CFLAGS=-DDEBUG.

Signed-off-by: Simon Ser <[email protected]>
Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/87

- - - - -
43773c69 by Simon Ser at 2024-01-28T12:22:00+00:00
Drop ChangeLog

This file is empty and unused.

Signed-off-by: Simon Ser <[email protected]>

- - - - -
e8bb34e3 by Simon Ser at 2024-01-28T12:23:29+00:00
Drop contrib/ci.sh

This is unused and outdated (Autotools is no longer supported).

Signed-off-by: Simon Ser <[email protected]>

- - - - -
91b8526c by Simon Ser at 2024-01-28T13:26:31+01:00
Pre-release version bump to 0.43.2

- - - - -
fdd71610 by Simon Ser at 2024-01-28T13:32:42+01:00
Post-release version bump to 0.43.3

- - - - -
ac485a9b by Gayathri Berli at 2024-02-24T12:28:30-05:00
Revert the changes to fix the problem in big-endian architectures

This reverts commit b4a105d77232a87304b7b621e2f99e699a8eebd3.

There is an endianness issue in pixman-fast-path.c. In the function
bits_image_fetch_separable_convolution_affine we have this code:

#ifdef WORDS_BIGENDIAN
        buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 
16) | (sbtot << 24);
#else
        buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 
8) | (sbtot << 0);
#endif

This will write out the pixels as BGRA on big endian systems but
obviously that's wrong. Pixel order should be ARGB on big endian systems
so we don't need any #ifdef for big endian here at all. Instead, the
code should be the same on little and big endian, i.e. it should be just
this line instead of the 5 lines above:

        buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 
8) | (sbtot << 0);

Changing the code like this fixes the wrong colors that I get with
pixman on my PowerPC/s390x system.

Here is what cairo.h has to say (which is rooted in pixman):

 * @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with
 *   alpha in the upper 8 bits, then red, then green, then blue.
 *   The 32-bit quantities are stored native-endian. Pre-multiplied
 *   alpha is used. (That is, 50% transparent red is 0x80800000,
 *   not 0x80ff0000.) (Since 1.0)

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/78
Signed-off-by: Gayathri Berli <[email protected]>

- - - - -
8c6d59a9 by Matt Turner at 2024-02-24T12:36:53-05:00
pixman-x86: Use cpuid.h header

- - - - -
63332b4e by Matt Turner at 2024-02-25T17:28:14-05:00
pixman-x86: Move #include "cpuid.h" inside conditionals

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/93
Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/94

- - - - -
74130e84 by Heiko Lewin at 2024-02-29T14:46:55+00:00
Allow to build pixman on clang/arm32

- - - - -
033716e9 by Matt Turner at 2024-02-29T15:41:37+00:00
Revert "Allow to build pixman on clang/arm32"

This reverts merge request !78
- - - - -
63ae6af9 by Makoto Kato at 2024-02-29T10:47:00-05:00
pixman-arm: Fix build on clang/arm32

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/74

- - - - -
add7c8db by Matt Turner at 2024-02-29T10:47:07-05:00
pixman-arm: Use unified syntax

Allows us to use the same assembly without a bunch of #ifdef __clang__.

- - - - -
54cad716 by Matt Turner at 2024-02-29T11:13:20-05:00
Pre-release version bump to 0.43.4

- - - - -
b252d407 by Matt Turner at 2024-02-29T11:19:46-05:00
Post-release version bump to 0.43.5

- - - - -
865e6ce0 by Mike Hommey at 2024-07-12T15:55:33-04:00
pixman: Adjust arm assembly for binutils change

A change in the latest version of binutils broke building pixman for arm.

The binutils change:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/96

- - - - -
3a325068 by Bill Roberts at 2024-07-22T16:57:13-05:00
arm: add include guards on header

Prevent double inclusion of header file.

Signed-off-by: Bill Roberts <[email protected]>

- - - - -
7ed0f8d0 by Bill Roberts at 2024-07-22T16:57:13-05:00
aarch64: support PAC and BTI

Enable Pointer Authentication Codes (PAC) and Branch Target
Identification (BTI) support for ARM 64 targets.

PAC works by signing the LR with either an A key or B key and verifying
the return address. There are quite a few instructions capable of doing
this, however, the Linux ARM ABI is to use hint compatible instructions
that can be safely NOP'd on older hardware and can be assembled and
linked with older binutils. This limits the instruction set to paciasp,
pacibsp, autiasp and autibsp. Instructions prefixed with pac are for
signing and instructions prefixed with aut are for signing. Both
instructions are then followed with an a or b to indicate which signing
key they are using. The keys can be controlled using
-mbranch-protection=pac-ret for the A key and
-mbranch-protection=pac-ret+b-key for the B key.

BTI works by marking all call and jump positions with bti c and bti
j instructions. If execution control transfers to an instruction other
than a BTI instruction, the execution is killed via SIGILL. Note that
to remove one instruction, the aforementioned pac instructions will
also work as a BTI landing pad for bti c usages.

For BTI to work, all object files linked for a unit of execution,
whether an executable or a library must have the GNU Notes section of
the ELF file marked to indicate BTI support. This is so loader/linkers
can apply the proper permission bits (PROT_BRI) on the memory region.

PAC can also be annotated in the GNU ELF notes section, but it's not
required for enablement, as interleaved PAC and non-pac code works as
expected since it's the callee that performs all the checking. The
linker follows the same rules as BTI for discarding the PAC flag from
the GNU Notes section.

Testing was done under the following CFLAGS and CXXFLAGS for all
combinations:
1. -mbranch-protection=none
2. -mbranch-protection=standard
3. -mbranch-protection=pac-ret
4. -mbranch-protection=pac-ret+b-key
5. -mbranch-protection=bti

Signed-off-by: Bill Roberts <[email protected]>

- - - - -
e5f8efc4 by Peter Hutterer at 2024-08-07T09:59:34+10:00
ci: add workflow rules to allow for MR pipelines

See
https://gitlab.freedesktop.org/freedesktop/freedesktop/-/wikis/GitLab-CI#for-project-developers

- - - - -
2e29b7c4 by Matt Turner at 2024-08-13T13:51:36-04:00
iwmmxt: Drop support

In all likelyhood unused for at least many years, and possibly ever.

Support is deprecated and will be removed in gcc-15. See deprecation
notice in https://gcc.gnu.org/gcc-13/changes.html

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/98

- - - - -
5b8e9281 by Marco Trevisan at 2024-08-14T02:41:08+00:00
pixman-region: Make translate a no-op when using 0 offsets

This avoids callers to have to optimize this codepath, in case this scenario 
happens.
And definitely it may happen when the function is not explicitly called.
- - - - -
6410ec79 by Even Rouault at 2024-08-14T02:48:25+00:00
pixman-combine-float.c: fix typo in MAKE_NON_SEPARABLE_PDF_COMBINERS()

There's a copy&paste typo updating sc.g twice when there's a mask
- - - - -
b753a6f4 by Marek Pikuła at 2024-08-14T14:13:07+02:00
mips: Fix a typo in mips_dspr2_flags

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
a7263190 by Marek Pikuła at 2024-08-16T20:03:19+02:00
ci: Add multiarch Docker image build

The image is used in CI pipeline to build and test on different
architectures.

This commit introduces more extensible GitLab CI scheme borrowed from
qemu project.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
15af6fd0 by Marek Pikuła at 2024-08-16T20:03:28+02:00
mips: Widen CPU family check for DSPr2

DSPr2 can be available for targets other than mips32. Some distros
(e.g., Debian) don't support mips32 but still support mipsel. Extending
the check enables use of such images for testing.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
2d35a876 by Marek Pikuła at 2024-08-16T20:03:29+02:00
mips: Add option to force MIPS CPU feature discovery

Used to force feature discovery in CI where /proc/cpuinfo is unreliable.
It can happen, e.g., if executed in qemu-user-static mode.

For such a build, MIPS-specific features need to be manually disabled by
using `PIXMAN_DISABLE` env variable.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
e7ef051a by Marek Pikuła at 2024-08-16T20:04:49+02:00
ci: Build and test on the supported platforms

This commit introduces a build and test CI workflow, which tests the
correctness of execution for nearly all configurations supported by
pixman. The notable exception is ARM iWMMXt, which is omitted as it's
soon to be deprecated as mentioned in #98.

The build and test stage is separated, as a single build can be used to
test multiple configurations for a given platform (e.g., MMX, SSE2,
SSSE3 for x86).

Execution is performed using multi-arch Docker images built in the
`docker` stage. The important thing to note is that the runner needs to
have a relatively recent version of Docker and QEMU, and needs to have
the qemu-user-static+binfmt execution enabled.

Once all tests are complete, coverage reports are merged together in the
`summary` stage. Then the result can be used in a GitLab-native coverage
report summary.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
c35e47bd by Marek Pikuła at 2024-08-16T20:10:21+02:00
ci: Increase granularity of Docker build selection

Now, it's possible to selectively disable Docker image builds. Before,
it was only possible to disable build/test jobs for a given
architecture.

- - - - -
cbf9d7e0 by Marek Pikuła at 2024-08-16T20:15:30+02:00
ci: Add architecture coverage Docker images

Add images providing an environment for architecture coverage tests.
There is a separate build for Linux and Windows, as the Windows image is
really large compared to Linux one. It decreases the execution time of
both targets, as the images needed to be pulled by runners are smaller.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
4047a553 by Marek Pikuła at 2024-08-20T18:05:44+02:00
ci: Add platform coverage targets

Platform coverage checks if the code builds and executes properly for
architectures that are not officially supported by Debian. They don't
contribute to general code coverage report but provide a valuable
insight if all supported platforms are working correctly.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
0cb4fbe3 by Marek Pikuła at 2024-08-21T18:46:07+02:00
ci: Fix Docker change detection

There was a missing wildcard for Docker directory
change detection, so basically this rule was not
checked correctly.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
726d77f6 by Julia DeMille at 2024-09-03T00:35:47+00:00
mmx: Fix compilation with clang-cl

- - - - -
05b5ecd9 by Marek Pikuła at 2024-09-03T18:20:56+02:00
ci: Use env files instead of awk script

It makes per-targe environment declaration more extensible, as it's
possible now to set custom env variables only for the selected target
for the entire pipeline workflow in a centralized way.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
028213b5 by Marek Pikuła at 2024-09-03T18:20:57+02:00
ci: Unify target enable flag

It replaces CODE- and PLT- specific target enable variables. It is a
ground work for unification of codecov and pltcov flows.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
19b1a98e by Marek Pikuła at 2024-09-03T18:20:58+02:00
ci: Unify Docker image as multi-stage build

This commit merges codecov and pltcov Dockerfiles into a single,
multi-stage Dockerfile. This results in more streamlined Docker image
builds with some common layers which can be reused by multiple images.

Also, by making a common Dockerfile, all common dependencies have the
same exact description, which decreases disparity between different
images for all the supported architectures. Mind that package version
disparity cannot be prevented 100%, as different base images may be used
for different architectures (e.g., Debian Sid for riscv64 instead of
Bookworm).

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
44927bf1 by Marek Pikuła at 2024-09-03T18:20:59+02:00
ci: Unify build and test stage as job templates

This commit unifies codecov and pltcov build and test stages as single
parametrizable GitLab job templates. This cleans up the pipeline flow in
preparation for LLVM support in the pipeline.

Each target has now a Meson cross file, even when using a native
compiler, so that the job template can be better generalized. This also
allows to move architecture-specific build configuration to the cross
file instead of using the additional Meson flags in the job declaration.

- - - - -
c0ee08aa by Marek Pikuła at 2024-09-03T18:21:00+02:00
ci: Add LLVM support to the CI workflow

Add support for LLVM for all targets. Mind that in the current state,
some targets fail either build or test stage. For the time being, these
jobs are marked with `:failing` job name suffix.

Relevant issues:
- https://gitlab.freedesktop.org/pixman/pixman/-/issues/105
- https://gitlab.freedesktop.org/pixman/pixman/-/issues/106
- https://gitlab.freedesktop.org/pixman/pixman/-/issues/107
- https://gitlab.freedesktop.org/pixman/pixman/-/issues/108
- https://gitlab.freedesktop.org/pixman/pixman/-/issues/109

- - - - -
51dcfb80 by Marek Pikuła at 2024-09-03T18:21:01+02:00
ci: Add support for LLVM for Windows targets

It uses LLVM MinGW project to get the precompiled LLVM toolchain for
cross-compilation.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
ffa5645a by Marek Pikuła at 2024-09-03T18:21:02+02:00
ci: Add support for Windows on ARM

It uses LLVM MinGW pre-built toolchain, and wine-arm64 base Docker image
from Linaro.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
b7ac7cd1 by Marek Pikuła at 2024-09-25T20:20:08+02:00
ci: Fix Docker image source for MRs

If the MR doesn't modify the Docker context, the pipeline should use the
image from upstream.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
76b133f2 by Marek Pikuła at 2024-09-26T21:54:21+02:00
ci: Fix active target rule for Docker stage

If rule condition for selectively running Docker image builds was ill
formed. It resulted in build of all images even when not all targets
were selected with ACTIVE_TARGET_PATTERN variable.

- - - - -
9176847f by Marek Pikuła at 2024-09-26T23:33:52+02:00
ci: riscv64: Don't force enable RVV globally

RVV compilation will be enabled for RVV implementation alone, similar to
other platforms. This prevents introducing autovectorized code in the
main library, thus making pixman compatible with RISC-V targets without
RVV.

- - - - -
a3d297fa by Marek Pikuła at 2024-09-26T23:33:52+02:00
ci: riscv64: Verify if tests run on target without RVV

To ensure that the runtime discovery works correctly, and RVV code is
disabled for target without RVV extension.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
126b0831 by Marek Pikuła at 2024-09-27T00:22:54+02:00
ci: Add option to use different version of LLVM

Some targets require different version of LLVM, so now it's possible to
set it in the target's environment. Mind that the highest available
version depends on the base Debian image.

The change bumps LLVM version for all Linux targets:
- by default from 14 to 16,
- from 16 to 18 for riscv64 (based on Sid; for now, LLVM 19 doesn't have
  libomp packaged),
- mipsel stays at 14 as there seem to be some missing packages for
  higher versions.

Windows targets stay the same, as they use a different source of LLVM
(MinGW-compatible, which is currently version 18).

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
277f485a by Marek Pikuła at 2024-09-27T00:22:55+02:00
ci: Add missing ":failing" suffix for linux-ppc job

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
11e51bc7 by Marek Pikuła at 2024-10-14T16:12:44+02:00
ci: Disable OpenMP for Win32 target

OpenMP introduces random stack overflow errors for 32-bit Windows
target.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
0476eda3 by Marek Pikuła at 2024-10-21T13:17:25+02:00
ci: Remove MESON_TESTTHREADS workaround

https://github.com/mesonbuild/meson/pull/13604 got merged and released
with Meson 1.6.0, which we already use in the Docker images, so the
workaround can be dropped.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
15336dc7 by Marek Pikuła at 2024-10-21T13:17:47+02:00
ci: Pin gcovr version to 7.x

Temporary version pin of gcovr due to errors in coverage report
generation when running with newly released version 8.x.

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
de59d1a9 by Marek Pikuła at 2024-10-21T16:49:40+02:00
ci: Don't execute failing jobs

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
bc2ec45d by Marek Pikuła at 2024-10-21T16:49:41+02:00
ci: Add auto_cancel policy

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
90f9cf17 by Marek Pikuła at 2024-10-21T16:49:50+02:00
ci: Disable coverage for arm-v5 and mipsel targets

Signed-off-by: Marek Pikuła <[email protected]>

- - - - -
643f098a by Changqing Li at 2024-10-30T01:34:41+00:00
pixman-combine-float.c: fix inlining failed error

Refer [1], always-inline is not suggested to be used if you have indirect
calls. so replace force_inline with inline to fix error like:
In function ‘combine_inner’,
    inlined from ‘combine_soft_light_ca_float’ at 
../pixman/pixman-combine-float.c:655:511:
../pixman/pixman-combine-float.c:655:211: error: inlining failed in call to 
‘always_inline’ ‘combine_soft_light_c’: function not considered for inlining

Test with gcc-9 and gcc-14, both works well

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679

Signed-off-by: Changqing Li <[email protected]>

- - - - -
0e424031 by f wasil at 2024-10-30T03:39:37+00:00
RISC-V floating point operations

- - - - -
a987256b by f wasil at 2024-11-05T03:39:54+00:00
Fixed memory leak in tests

- - - - -
126d61e7 by Lance Arsenault at 2024-11-05T04:31:04+00:00
pixman: Add library destructor

Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/111

- - - - -
ae6646f1 by Matt Turner at 2024-11-05T11:51:31-05:00
Pre-release version bump to 0.44.0

- - - - -


30 changed files:

- .editorconfig
- + .gitlab-ci.d/01-docker.yml
- + .gitlab-ci.d/01-docker/Dockerfile
- + .gitlab-ci.d/01-docker/target-env/linux-386.env
- + .gitlab-ci.d/01-docker/target-env/linux-amd64.env
- + .gitlab-ci.d/01-docker/target-env/linux-arm-v5.env
- + .gitlab-ci.d/01-docker/target-env/linux-arm-v7.env
- + .gitlab-ci.d/01-docker/target-env/linux-arm64-v8.env
- + .gitlab-ci.d/01-docker/target-env/linux-mips.env
- + .gitlab-ci.d/01-docker/target-env/linux-mips64el.env
- + .gitlab-ci.d/01-docker/target-env/linux-mipsel.env
- + .gitlab-ci.d/01-docker/target-env/linux-ppc.env
- + .gitlab-ci.d/01-docker/target-env/linux-ppc64.env
- + .gitlab-ci.d/01-docker/target-env/linux-ppc64le.env
- + .gitlab-ci.d/01-docker/target-env/linux-riscv64.env
- + .gitlab-ci.d/01-docker/target-env/windows-686.env
- + .gitlab-ci.d/01-docker/target-env/windows-amd64.env
- + .gitlab-ci.d/01-docker/target-env/windows-arm64-v8.env
- + .gitlab-ci.d/02-build.yml
- + .gitlab-ci.d/03-test.yml
- + .gitlab-ci.d/04-summary.yml
- + .gitlab-ci.d/meson-cross/linux-386-gnu.meson
- + .gitlab-ci.d/meson-cross/linux-386-llvm.meson
- + .gitlab-ci.d/meson-cross/linux-amd64-gnu.meson
- + .gitlab-ci.d/meson-cross/linux-amd64-llvm.meson
- + .gitlab-ci.d/meson-cross/linux-arm-v5-gnu.meson
- + .gitlab-ci.d/meson-cross/linux-arm-v5-llvm.meson
- + .gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson
- + .gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson
- + .gitlab-ci.d/meson-cross/linux-arm64-v8-gnu.meson


The diff was not included because it is too large.


View it on GitLab: 
https://salsa.debian.org/xorg-team/lib/pixman/-/compare/37216a32839f59e8dcaa4c3951b3fcfc3f07852c...ae6646f1594b94ff781186ba744d89fefe16778f

-- 
View it on GitLab: 
https://salsa.debian.org/xorg-team/lib/pixman/-/compare/37216a32839f59e8dcaa4c3951b3fcfc3f07852c...ae6646f1594b94ff781186ba744d89fefe16778f
You're receiving this email because of your account on salsa.debian.org.


Reply via email to