Commit aca640da authored by Leo's avatar Leo
Browse files

main/pixman: upgrade to 0.40.0

parent 445d5437
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pixman
pkgver=0.38.4
pkgver=0.40.0
pkgrel=0
pkgdesc="Low-level pixel manipulation library"
url="http://xorg.freedesktop.org"
url="https://gitlab.freedesktop.org/pixman"
arch="all"
license="MIT"
subpackages="$pkgname-static $pkgname-dev $pkgname-dbg"
makedepends="perl linux-headers"
source="https://www.x.org/releases/individual/lib/$pkgname-$pkgver.tar.bz2
stacksize-reduction.patch
"
builddir="$srcdir/$pkgname-$pkgver"
makedepends="meson libpng-dev"
subpackages="$pkgname-dev $pkgname-dbg"
source="https://gitlab.freedesktop.org/pixman/pixman/-/archive/pixman-$pkgver/pixman-pixman-$pkgver.tar.gz"
builddir="$srcdir/pixman-pixman-$pkgver"
build() {
cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
meson \
--prefix=/usr \
--enable-static \
--disable-openmp \
--disable-arm-iwmmxt
make
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--buildtype=plain \
. output
ninja -C output
}
check() {
cd "$builddir"
make check
ninja -C output test
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
DESTDIR="$pkgdir" ninja -C output install
}
static() {
pkgdesc="Static libraries for pixman"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}
sha512sums="0683b7f67caa0881b23188b7e6f8487c7e0a1257a912686616b7d862efd5a9efdb51641c81ec54905a6f6b1029d796ca4e25c0909db28fc29fa3617bf09f9cf9 pixman-0.38.4.tar.bz2
3d75e7328e6eaaa6e8f4defa4402db815764369f94b81be38fba07933267fe24b03b591dd4c3f3544cb090650153728bfbdd81a91acaf19524c3d08f61427f63 stacksize-reduction.patch"
sha512sums="18774e22add5c5442edede5467fa07234c2b9e57a79d88110f25424e4253c6ab0c2921e951c5686cefebf4724ff19ad053d0c28f4d2f8d642bbcf6fc71764ef6 pixman-pixman-0.40.0.tar.gz"
Reduce the stack footprint of pixman's function
general_composite_rect() which allocates a large buffer
`stack_scanline_buffer`. Make it `static __thread` instead.
--- a/pixman/pixman-general.c 2015-12-27 21:37:37.000000000 +0100
+++ b/pixman/pixman-general.c 2016-05-05 12:24:47.346661080 +0200
@@ -128,8 +128,8 @@
pixman_composite_info_t *info)
{
PIXMAN_COMPOSITE_ARGS (info);
- uint8_t stack_scanline_buffer[3 * SCANLINE_BUFFER_LENGTH];
- uint8_t *scanline_buffer = (uint8_t *) stack_scanline_buffer;
+ static __thread uint8_t static_scanline_buffer[3 * SCANLINE_BUFFER_LENGTH];
+ uint8_t *scanline_buffer = (uint8_t *) static_scanline_buffer;
uint8_t *src_buffer, *mask_buffer, *dest_buffer;
pixman_iter_t src_iter, mask_iter, dest_iter;
pixman_combine_32_func_t compose;
@@ -158,7 +158,7 @@
if (width <= 0 || _pixman_multiply_overflows_int (width, Bpp * 3))
return;
- if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 15 * 3)
+ if (width * Bpp * 3 > sizeof (static_scanline_buffer) - 15 * 3)
{
scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 15 * 3);
@@ -232,7 +232,7 @@
if (dest_iter.fini)
dest_iter.fini (&dest_iter);
- if (scanline_buffer != (uint8_t *) stack_scanline_buffer)
+ if (scanline_buffer != (uint8_t *) static_scanline_buffer)
free (scanline_buffer);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment