From 53dcd09a35d42d1a62161bb89f46aeecd9f0ac6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Fri, 2 Oct 2020 20:07:03 -0300 Subject: [PATCH] pixman: update to 0.40.0, adopt. - Update links, use linker flag for stack size instead of patch. - Move to meson build style. --- .../musl-static__thread-scanline_buffer.patch | 35 --------------- srcpkgs/pixman/template | 43 +++++++++++++------ 2 files changed, 29 insertions(+), 49 deletions(-) delete mode 100644 srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch diff --git a/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch b/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch deleted file mode 100644 index 0b9339dbea0..00000000000 --- a/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch +++ /dev/null @@ -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); - } - diff --git a/srcpkgs/pixman/template b/srcpkgs/pixman/template index eb4a6da3b03..a3281ce5f73 100644 --- a/srcpkgs/pixman/template +++ b/srcpkgs/pixman/template @@ -1,25 +1,41 @@ # 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 +# OpenMP isn't recommended by upstream: +# https://gitlab.freedesktop.org/pixman/pixman/-/blob/9b49f4e08751885289333fed652bf5e0f45976b4/pixman/dither/make-blue-noise.c#L8 +configure_args="--auto-features=disabled -Dgtk=disabled -Dopenmp=disabled + -Dgnu-inline-asm=enabled" hostmakedepends="pkg-config perl" +checkdepends="libpng-devel" short_desc="Library of low-level pixel manipulation routines" -maintainer="Orphaned " +maintainer="Érico Nogueira " 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 + configure_args+=" -Dlibpng=enabled" +fi + +# enable vectorized implementations per arch +case "$XBPS_TARGET_MACHINE" in + x86_64*) configure_args+=" -Dsse2=enabled -Dssse3=enabled";; + i686*) configure_args+=" -Dmmx=enabled -Dsse2=enabled -Dssse3=enabled";; + ppc64*) configure_args+=" -Dvmx=enabled";; + armv6l*) configure_args+=" -Darm-simd=enabled";; + armv7l*) configure_args+=" -Darm-simd=enabled -Dneon=enabled";; + mips*) configure_args+=" -Dmips-dspr2=enabled";; +esac post_install() { - vlicense COPYING + vlicense COPYING LICENSE } pixman-devel_package() { @@ -28,7 +44,6 @@ pixman-devel_package() { pkg_install() { vmove usr/include vmove usr/lib/pkgconfig - vmove "usr/lib/*.a" vmove "usr/lib/*.so" } }