diff --git a/1735e86cda95a469357a19ab8984ad8530372e75.patch b/1735e86cda95a469357a19ab8984ad8530372e75.patch new file mode 100644 index 0000000..ced8705 --- /dev/null +++ b/1735e86cda95a469357a19ab8984ad8530372e75.patch @@ -0,0 +1,45 @@ +From 8b64740e323b12dfd7b410d152fde94d6d1b120b Mon Sep 17 00:00:00 2001 +From: Benson Muite +Date: Sun, 19 Mar 2023 12:55:27 +0300 +Subject: [PATCH 1/2] Need meson file in utils + +--- + utils/meson.build | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 utils/meson.build + +diff --git a/utils/meson.build b/utils/meson.build +new file mode 100644 +index 0000000..5772e98 +--- /dev/null ++++ b/utils/meson.build +@@ -0,0 +1,7 @@ ++libcpuinfo = [] ++ ++libcpuinfo += static_library('cpuinfo', ++ files('cpuinfo.cpp'), ++ include_directories : [src], ++ cpp_args : ['-O3'], ++) + +From a4f58dc6d076544e25ce88141d957dd2af3961df Mon Sep 17 00:00:00 2001 +From: Benson Muite +Date: Mon, 20 Mar 2023 10:17:36 +0300 +Subject: [PATCH 2/2] src not needed + +Co-authored-by: Raghuveer Devulapalli +--- + utils/meson.build | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/utils/meson.build b/utils/meson.build +index 5772e98..5f34453 100644 +--- a/utils/meson.build ++++ b/utils/meson.build +@@ -2,6 +2,5 @@ libcpuinfo = [] + + libcpuinfo += static_library('cpuinfo', + files('cpuinfo.cpp'), +- include_directories : [src], + cpp_args : ['-O3'], + ) diff --git a/meson-build.patch b/meson-build.patch new file mode 100644 index 0000000..7cfa1fe --- /dev/null +++ b/meson-build.patch @@ -0,0 +1,63 @@ +--- a/meson.build 2023-03-17 16:52:07.106254624 +0200 ++++ b/meson.build 2023-03-17 17:00:23.484367054 +0200 +@@ -3,12 +3,12 @@ + license : 'BSD 3-clause') + cc = meson.get_compiler('c') + cpp = meson.get_compiler('cpp') +-src = include_directories('./src') +-bench = include_directories('./benchmarks') +-utils = include_directories('./utils') +-tests = include_directories('./tests') ++src = include_directories('src') ++utils = include_directories('utils') ++tests = include_directories('tests') + gtest_dep = dependency('gtest', fallback : ['gtest', 'gtest_dep']) +-subdir('./tests') ++subdir('src') ++subdir('tests') + + testexe = executable('testexe', 'tests/main.cpp', + dependencies : gtest_dep, +@@ -17,16 +17,18 @@ + ] + ) + +-benchexe = executable('benchexe', 'benchmarks/main.cpp', +- include_directories : [ +- src, +- utils, +- bench, +- ], +- cpp_args : [ +- '-O3', +- '-march=icelake-client', +- ], +- dependencies : [], +- link_whole : [], +- ) ++test('test', testexe) ++ ++# ++# x86-simd-sort.pc generation ++# ++datadir = get_option('datadir') ++pkgconfig_dir = join_paths(get_option('prefix'), datadir, 'pkgconfig') ++ ++pkgconfig = import('pkgconfig') ++pkgconfig.generate(name : meson.project_name(), ++ description : 'x86-simd-sort headers', ++ version : meson.project_version(), ++ subdirs : 'x86-simd-sort', ++ install_dir : pkgconfig_dir, ++ variables : 'datadir=@0@'.format(join_paths('${prefix}', datadir))) +--- /dev/null ++++ b/src/meson.build +@@ -0,0 +1,8 @@ ++x86_simd_sort_headers = [ ++ 'avx512-16bit-qsort.hpp', ++ 'avx512-32bit-qsort.hpp', ++ 'avx512-64bit-qsort.hpp', ++ 'avx512-common-qsort.h', ++] ++ ++install_headers(x86_simd_sort_headers) diff --git a/sources b/sources index bec2393..2221b22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (x86-simd-sort-7.0.tar.gz) = de217d35a98da3b269454eaa8a2880b9aa36e4906670d0434799a45a8dcbe6d3fdf56cb16b683be510e34e0636b035e9de88a7b6e68b41e1eecceb5ecac4fe4a +SHA512 (x86-simd-sort-1.0.tar.gz) = d7c3c0bfc3eae53df248b0c690fcbecdbd96a04dbea165f783511c1d4ae0f1f1c74375422b9d893fa9ccbeb52a87b35de36dfc9bf312d777d9ae62adce9b429d diff --git a/x86-simd-sort.spec b/x86-simd-sort.spec index 30539f9..c02886e 100644 --- a/x86-simd-sort.spec +++ b/x86-simd-sort.spec @@ -1,12 +1,18 @@ +%global debug_package %{nil} + Name: x86-simd-sort -Version: 7.0 +Version: 1.0 Release: %autorelease -Summary: C++ template library for high performance SIMD based sorting algorithms +Summary: C++ header file library for high performance SIMD based sorting algorithms License: BSD-3-Clause URL: https://github.com/intel/x86-simd-sort Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Patch0: meson-build.patch +# https://github.com/intel/x86-simd-sort/commit/1735e86cda95a469357a19ab8984ad8530372e75 +Patch1: 1735e86cda95a469357a19ab8984ad8530372e75.patch + # C++ header file library for x86 processors. ExclusiveArch: x86_64 @@ -15,14 +21,17 @@ BuildRequires: gtest-devel BuildRequires: meson %description -C++ template library for high performance SIMD based sorting routines for -16-bit, 32-bit and 64-bit data types. The sorting routines are accelerated -using AVX-512/AVX2 when available. The library auto picks the best version -depending on the processor it is run on. +C++ header file library for SIMD based 16-bit, 32-bit and 64-bit data type +sorting on x86 processors. Source header files are available in src directory. +We currently only have AVX-512 based implementation of quicksort. This +repository also includes a test suite which can be built and run to test the +sorting algorithms for correctness. It also has benchmarking code to compare +its performance relative to std::sort. %package devel Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} +BuildArch: noarch +Provides: %{name}-static = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for @@ -41,15 +50,12 @@ applications that use %{name}. %check %meson_test -v -%files +%files devel %license LICENSE.md %doc README.md -%{_libdir}/libx86simdsortcpp.so.1 - -%files devel -%{_includedir}/x86simdsort.h -%{_libdir}/libx86simdsortcpp.so -%{_libdir}/pkgconfig/x86simdsortcpp.pc +%{_includedir}/*.h +%{_includedir}/*.hpp +%{_datadir}/pkgconfig/%{name}.pc %changelog %autochangelog