Skip to content

Commit 3525603

Browse files
authored
Upgrade: orc version to 0.4.39 (#11485)
1 parent ee8abe0 commit 3525603

4 files changed

Lines changed: 145 additions & 23 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
From 508280f7ac31c7d0ab2eaed33b26e6df59bb4dd9 Mon Sep 17 00:00:00 2001
2+
From: "L. E. Segovia" <amy@centricular.com>
3+
Date: Fri, 19 Jul 2024 22:25:20 -0300
4+
Subject: [PATCH 1/2] powerpc: fix div255w which still used the inexact
5+
substitution
6+
7+
The code for this architecture used the substitution suggested in the
8+
original bug report. That one had subtle failures on armv7a and aarch64,
9+
but I was not able to verify if they affected PowerPC too.
10+
11+
This commit fixes it by reusing the mulhuw instruction implementation --
12+
sse2 can be ported directly that way.
13+
14+
Fixes #71
15+
16+
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/195>
17+
---
18+
orc/orcrules-altivec.c | 31 +++++++++++++++----------------
19+
1 file changed, 15 insertions(+), 16 deletions(-)
20+
21+
diff --git a/orc/orcrules-altivec.c b/orc/orcrules-altivec.c
22+
index 23409a8..a13fb5b 100644
23+
--- a/orc/orcrules-altivec.c
24+
+++ b/orc/orcrules-altivec.c
25+
@@ -1513,23 +1513,22 @@ powerpc_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
26+
static void
27+
powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
28+
{
29+
- int src1 = ORC_SRC_ARG (p, insn, 0);
30+
- int dest = ORC_DEST_ARG (p, insn, 0);
31+
- int tmp = orc_compiler_get_temp_reg (p);
32+
- int tmp2 = orc_compiler_get_temp_reg (p);
33+
- int tmpc;
34+
-
35+
- tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x0001);
36+
-
37+
- ORC_ASM_CODE(p," vspltish %s, 8\n", powerpc_get_regname(tmp2));
38+
- powerpc_emit_VX(p, 0x1000034c, powerpc_regnum(tmp2), 8, 0);
39+
-
40+
- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, src1, tmpc);
41+
-
42+
- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, tmp, src1, tmp2);
43+
- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, dest, tmp);
44+
+ const int src1 = ORC_SRC_ARG (p, insn, 0);
45+
+ const int dest = ORC_DEST_ARG(p, insn, 0);
46+
+ const int tmp = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 7);
47+
+ const int tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x8081);
48+
+
49+
+ {
50+
+ // mulhuw
51+
+ const int perm = powerpc_get_constant_full(p, 0x10110001, 0x14150405,
52+
+ 0x18190809, 0x1c1d0c0d);
53+
+
54+
+ powerpc_emit_vmuleuh (p, p->tmpreg, src1, tmpc);
55+
+ powerpc_emit_vmulouh (p, dest, src1, tmpc);
56+
+ powerpc_emit_vperm (p, dest, dest, p->tmpreg, perm);
57+
+ }
58+
59+
- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp2);
60+
+ powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp);
61+
}
62+
63+
static void
64+
--
65+
2.45.2
66+
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"Signatures": {
3-
"orc-0.4.31.tar.xz": "a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075"
3+
"orc-0.4.39.tar.xz": "33ed2387f49b825fa1b9c3b0072e05f259141b895474ad085ae51143d3040cc0"
44
}
5-
}
5+
}

SPECS-EXTENDED/orc/orc.spec

Lines changed: 75 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
1-
Vendor: Microsoft Corporation
2-
Distribution: Azure Linux
31
Name: orc
4-
Version: 0.4.31
5-
Release: 4%{?dist}
2+
Version: 0.4.39
3+
Release: 2%{?dist}
64
Summary: The Oil Run-time Compiler
75

8-
License: BSD
6+
License: BSD-2-Clause AND BSD-3-Clause
7+
Vendor: Microsoft Corporation
8+
Distribution: Azure Linux
99
URL: http://cgit.freedesktop.org/gstreamer/orc/
10-
Source0: http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
10+
Source0: https://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
11+
12+
Patch0001: 0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch
1113

12-
BuildRequires: %{_bindir}/xsltproc
1314
BuildRequires: meson >= 0.47.0
1415
BuildRequires: gcc
16+
BuildRequires: gtk-doc
1517

1618
%description
1719
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
2022
available in SIMD architectures, including saturated addition and
2123
subtraction, and many arithmetic operations.
2224

25+
%package doc
26+
Summary: Documentation for Orc
27+
Requires: %{name} = %{version}-%{release}
28+
BuildArch: noarch
29+
30+
%description doc
31+
Documentation for Orc.
32+
2333
%package devel
2434
Summary: Development files and libraries for Orc
2535
Requires: %{name} = %{version}-%{release}
@@ -40,10 +50,10 @@ The Orc compiler, to produce optimized code.
4050

4151

4252
%prep
43-
%setup -q
53+
%autosetup -p1
4454

4555
%build
46-
%meson -D default_library=shared -Dgtk_doc=disabled
56+
%meson -D default_library=shared
4757
%meson_build
4858

4959
%install
@@ -54,39 +64,85 @@ find %{buildroot}/%{_libdir} -name \*.a -delete
5464
rm -rf %{buildroot}/%{_libdir}/orc
5565

5666
%check
57-
%ifnarch s390 s390x ppc %{power64} %{arm} i686 aarch64
5867
%meson_test
59-
%endif
6068

6169
%ldconfig_scriptlets
6270

6371

6472
%files
6573
%license COPYING
6674
%doc README
67-
%{_libdir}/liborc-*.so.*
75+
%{_libdir}/liborc-0.4.so.0*
76+
%{_libdir}/liborc-test-0.4.so*
6877
%{_bindir}/orc-bugreport
6978

79+
%files doc
80+
%doc %{_datadir}/gtk-doc/html/orc/
81+
7082
%files devel
7183
%doc examples/*.c
7284
%{_includedir}/%{name}-0.4/
73-
%{_libdir}/liborc-*.so
85+
%{_libdir}/liborc-0.4.so
7486
%{_libdir}/pkgconfig/orc-0.4.pc
7587
%{_libdir}/pkgconfig/orc-test-0.4.pc
76-
%{_datadir}/aclocal/orc.m4
7788

7889
%files compiler
7990
%{_bindir}/orcc
8091

8192

8293
%changelog
83-
* Mon Mar 21 2022 Pawel Winogrodzki <pawelwi@microsoft.com> - 0.4.31-4
84-
- Adding BR on '%%{_bindir}/xsltproc'.
85-
- Disabled gtk doc generation to remove network dependency during build-time.
94+
* Tue Dec 17 2024 Jyoti kanase <v-jykanase@microsoft.com> - 0.4.39-2
95+
- Initial Azure Linux import from Fedora 41 (license: MIT).
8696
- License verified.
8797

88-
* Fri Oct 15 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 0.4.31-3
89-
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
98+
* Tue Jul 30 2024 Wim Taymans <wtaymans@redhat.com> 0.4.39-1
99+
- Update to 0.4.39
100+
- Add patch for div255w fix on ppc64le
101+
102+
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.38-3
103+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
104+
105+
* Wed Mar 06 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 0.4.38-2
106+
- Move orc-test to main package
107+
108+
* Tue Mar 05 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 0.4.38-1
109+
- Update to 0.4.38
110+
- Version the library to catch bumps
111+
- Cleanup spec, use license var
112+
113+
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-5
114+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
115+
116+
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-4
117+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
118+
119+
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-3
120+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
121+
122+
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-2
123+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
124+
125+
* Fri Nov 04 2022 Wim Taymans <wtaymans@redhat.com> 0.4.33-1
126+
- Update to 0.4.33
127+
128+
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-8
129+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
130+
131+
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-7
132+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
133+
134+
* Wed Aug 18 2021 Vít Ondruch <vondruch@redhat.com> - 0.4.31-6
135+
- Fix ppc64le segfault when used via libvips.
136+
Resolves: rhbz#1917540
137+
138+
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-5
139+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
140+
141+
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-4
142+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
143+
144+
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-3
145+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
90146

91147
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.31-2
92148
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

cgmanifest.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15493,8 +15493,8 @@
1549315493
"type": "other",
1549415494
"other": {
1549515495
"name": "orc",
15496-
"version": "0.4.31",
15497-
"downloadUrl": "http://gstreamer.freedesktop.org/src/orc/orc-0.4.31.tar.xz"
15496+
"version": "0.4.39",
15497+
"downloadUrl": "https://gstreamer.freedesktop.org/src/orc/orc-0.4.39.tar.xz"
1549815498
}
1549915499
}
1550015500
},

0 commit comments

Comments
 (0)