From 3525603dafb8fd60396886177abf6b2f06327487 Mon Sep 17 00:00:00 2001 From: jykanase Date: Thu, 6 Feb 2025 13:11:51 +0530 Subject: [PATCH] Upgrade: orc version to 0.4.39 (#11485) --- ...55w-which-still-used-the-inexact-sub.patch | 66 +++++++++++++ SPECS-EXTENDED/orc/orc.signatures.json | 4 +- SPECS-EXTENDED/orc/orc.spec | 94 +++++++++++++++---- cgmanifest.json | 4 +- 4 files changed, 145 insertions(+), 23 deletions(-) create mode 100644 SPECS-EXTENDED/orc/0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch diff --git a/SPECS-EXTENDED/orc/0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch b/SPECS-EXTENDED/orc/0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch new file mode 100644 index 00000000000..a0e9f4e831b --- /dev/null +++ b/SPECS-EXTENDED/orc/0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch @@ -0,0 +1,66 @@ +From 508280f7ac31c7d0ab2eaed33b26e6df59bb4dd9 Mon Sep 17 00:00:00 2001 +From: "L. E. Segovia" +Date: Fri, 19 Jul 2024 22:25:20 -0300 +Subject: [PATCH 1/2] powerpc: fix div255w which still used the inexact + substitution + +The code for this architecture used the substitution suggested in the +original bug report. That one had subtle failures on armv7a and aarch64, +but I was not able to verify if they affected PowerPC too. + +This commit fixes it by reusing the mulhuw instruction implementation -- +sse2 can be ported directly that way. + +Fixes #71 + +Part-of: +--- + orc/orcrules-altivec.c | 31 +++++++++++++++---------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +diff --git a/orc/orcrules-altivec.c b/orc/orcrules-altivec.c +index 23409a8..a13fb5b 100644 +--- a/orc/orcrules-altivec.c ++++ b/orc/orcrules-altivec.c +@@ -1513,23 +1513,22 @@ powerpc_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn) + static void + powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn) + { +- int src1 = ORC_SRC_ARG (p, insn, 0); +- int dest = ORC_DEST_ARG (p, insn, 0); +- int tmp = orc_compiler_get_temp_reg (p); +- int tmp2 = orc_compiler_get_temp_reg (p); +- int tmpc; +- +- tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x0001); +- +- ORC_ASM_CODE(p," vspltish %s, 8\n", powerpc_get_regname(tmp2)); +- powerpc_emit_VX(p, 0x1000034c, powerpc_regnum(tmp2), 8, 0); +- +- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, src1, tmpc); +- +- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, tmp, src1, tmp2); +- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, dest, tmp); ++ const int src1 = ORC_SRC_ARG (p, insn, 0); ++ const int dest = ORC_DEST_ARG(p, insn, 0); ++ const int tmp = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 7); ++ const int tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x8081); ++ ++ { ++ // mulhuw ++ const int perm = powerpc_get_constant_full(p, 0x10110001, 0x14150405, ++ 0x18190809, 0x1c1d0c0d); ++ ++ powerpc_emit_vmuleuh (p, p->tmpreg, src1, tmpc); ++ powerpc_emit_vmulouh (p, dest, src1, tmpc); ++ powerpc_emit_vperm (p, dest, dest, p->tmpreg, perm); ++ } + +- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp2); ++ powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp); + } + + static void +-- +2.45.2 + diff --git a/SPECS-EXTENDED/orc/orc.signatures.json b/SPECS-EXTENDED/orc/orc.signatures.json index 552d39e4f4e..952d8ac6d64 100644 --- a/SPECS-EXTENDED/orc/orc.signatures.json +++ b/SPECS-EXTENDED/orc/orc.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "orc-0.4.31.tar.xz": "a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075" + "orc-0.4.39.tar.xz": "33ed2387f49b825fa1b9c3b0072e05f259141b895474ad085ae51143d3040cc0" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/orc/orc.spec b/SPECS-EXTENDED/orc/orc.spec index 7fc6fada2e2..6d97ce9672a 100644 --- a/SPECS-EXTENDED/orc/orc.spec +++ b/SPECS-EXTENDED/orc/orc.spec @@ -1,17 +1,19 @@ -Vendor: Microsoft Corporation -Distribution: Azure Linux Name: orc -Version: 0.4.31 -Release: 4%{?dist} +Version: 0.4.39 +Release: 2%{?dist} Summary: The Oil Run-time Compiler -License: BSD +License: BSD-2-Clause AND BSD-3-Clause +Vendor: Microsoft Corporation +Distribution: Azure Linux URL: http://cgit.freedesktop.org/gstreamer/orc/ -Source0: http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz +Source0: https://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz + +Patch0001: 0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch -BuildRequires: %{_bindir}/xsltproc BuildRequires: meson >= 0.47.0 BuildRequires: gcc +BuildRequires: gtk-doc %description Orc is a library and set of tools for compiling and executing @@ -20,6 +22,14 @@ is a generic assembly language that represents many of the features available in SIMD architectures, including saturated addition and subtraction, and many arithmetic operations. +%package doc +Summary: Documentation for Orc +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description doc +Documentation for Orc. + %package devel Summary: Development files and libraries for Orc Requires: %{name} = %{version}-%{release} @@ -40,10 +50,10 @@ The Orc compiler, to produce optimized code. %prep -%setup -q +%autosetup -p1 %build -%meson -D default_library=shared -Dgtk_doc=disabled +%meson -D default_library=shared %meson_build %install @@ -54,9 +64,7 @@ find %{buildroot}/%{_libdir} -name \*.a -delete rm -rf %{buildroot}/%{_libdir}/orc %check -%ifnarch s390 s390x ppc %{power64} %{arm} i686 aarch64 %meson_test -%endif %ldconfig_scriptlets @@ -64,29 +72,77 @@ rm -rf %{buildroot}/%{_libdir}/orc %files %license COPYING %doc README -%{_libdir}/liborc-*.so.* +%{_libdir}/liborc-0.4.so.0* +%{_libdir}/liborc-test-0.4.so* %{_bindir}/orc-bugreport +%files doc +%doc %{_datadir}/gtk-doc/html/orc/ + %files devel %doc examples/*.c %{_includedir}/%{name}-0.4/ -%{_libdir}/liborc-*.so +%{_libdir}/liborc-0.4.so %{_libdir}/pkgconfig/orc-0.4.pc %{_libdir}/pkgconfig/orc-test-0.4.pc -%{_datadir}/aclocal/orc.m4 %files compiler %{_bindir}/orcc %changelog -* Mon Mar 21 2022 Pawel Winogrodzki - 0.4.31-4 -- Adding BR on '%%{_bindir}/xsltproc'. -- Disabled gtk doc generation to remove network dependency during build-time. +* Tue Dec 17 2024 Jyoti kanase - 0.4.39-2 +- Initial Azure Linux import from Fedora 41 (license: MIT). - License verified. -* Fri Oct 15 2021 Pawel Winogrodzki - 0.4.31-3 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). +* Tue Jul 30 2024 Wim Taymans 0.4.39-1 +- Update to 0.4.39 +- Add patch for div255w fix on ppc64le + +* Thu Jul 18 2024 Fedora Release Engineering - 0.4.38-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Mar 06 2024 Peter Robinson - 0.4.38-2 +- Move orc-test to main package + +* Tue Mar 05 2024 Peter Robinson - 0.4.38-1 +- Update to 0.4.38 +- Version the library to catch bumps +- Cleanup spec, use license var + +* Thu Jan 25 2024 Fedora Release Engineering - 0.4.33-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.4.33-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 0.4.33-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 0.4.33-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Nov 04 2022 Wim Taymans 0.4.33-1 +- Update to 0.4.33 + +* Fri Jul 22 2022 Fedora Release Engineering - 0.4.31-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.4.31-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Aug 18 2021 Vít Ondruch - 0.4.31-6 +- Fix ppc64le segfault when used via libvips. + Resolves: rhbz#1917540 + +* Thu Jul 22 2021 Fedora Release Engineering - 0.4.31-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 0.4.31-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.4.31-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Wed Jan 29 2020 Fedora Release Engineering - 0.4.31-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/cgmanifest.json b/cgmanifest.json index 7baf927add3..c44f9a82c39 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -15493,8 +15493,8 @@ "type": "other", "other": { "name": "orc", - "version": "0.4.31", - "downloadUrl": "http://gstreamer.freedesktop.org/src/orc/orc-0.4.31.tar.xz" + "version": "0.4.39", + "downloadUrl": "https://gstreamer.freedesktop.org/src/orc/orc-0.4.39.tar.xz" } } },