pixman: update to 0.40.0, adopt.

- Update links, use linker flag for stack size instead of patch.
- Move to meson build style.
This commit is contained in:
Érico Rolim 2020-10-02 20:07:03 -03:00 committed by Érico Nogueira Rolim
parent 13a8669033
commit c84a3608ee
2 changed files with 18 additions and 49 deletions

View File

@ -1,35 +0,0 @@
Reduce the stack footprint of pixman's function
general_composite_rect() which allocates a large buffer
`stack_scanline_buffer`. Make it `static __thread` instead.
--- pixman/pixman-general.c 2015-12-27 21:37:37.000000000 +0100
+++ 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);
}

View File

@ -1,25 +1,30 @@
# Template file for 'pixman'
pkgname=pixman
version=0.38.4
version=0.40.0
revision=1
build_style=gnu-configure
configure_args="--disable-gtk" # do not require gtk+!
build_style=meson
# gtk is only necessary for demos, disabled to avoid dependency loop
configure_args="-Dgtk=disabled -Dgnu-inline-asm=enabled -Diwmmxt=disabled"
hostmakedepends="pkg-config perl"
checkdepends="libpng-devel libgomp-devel"
short_desc="Library of low-level pixel manipulation routines"
maintainer="Orphaned <orphan@voidlinux.org>"
maintainer="Érico Nogueira <ericonr@disroot.org>"
license="MIT"
homepage="https://wiki.freedesktop.org/xorg/"
distfiles="${XORG_SITE}/lib/${pkgname}-${version}.tar.bz2"
checksum=84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550
homepage="http://pixman.org/"
distfiles="https://www.cairographics.org/releases/${pkgname}-${version}.tar.gz"
checksum=6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc
pre_configure() {
case "$XBPS_TARGET_MACHINE" in
arm*) configure_args+=" --disable-arm-iwmmxt --disable-arm-iwmmxt2";;
esac
}
# set stacksize for musl: https://gitlab.gnome.org/GNOME/librsvg/-/issues/595
LDFLAGS="-Wl,-z,stack-size=2097152"
if [ "$XBPS_CHECK_PKGS" ]; then
# libpng and openmp are used only for testing; the make-blue-noise.c file isn't built
# https://gitlab.freedesktop.org/pixman/pixman/-/blob/9b49f4e08751885289333fed652bf5e0f45976b4/pixman/dither/make-blue-noise.c
configure_args+=" -Dlibpng=enabled -Dopenmp=enabled"
fi
post_install() {
vlicense COPYING
vlicense COPYING LICENSE
}
pixman-devel_package() {
@ -28,7 +33,6 @@ pixman-devel_package() {
pkg_install() {
vmove usr/include
vmove usr/lib/pkgconfig
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
}
}