From 0ae777e50c29ad8972a1ff3b86a662f19dfbb42c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 5 Oct 2020 18:00:20 +0100 Subject: [PATCH] Apply patch to change SONAME of fio engines. https://bugzilla.redhat.com/show_bug.cgi?id=1884954#c8 --- ...ix-dynamic-engines-soname-definition.patch | 32 +++++++++++++++++++ fio.spec | 11 +++++-- 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 0001-fio-fix-dynamic-engines-soname-definition.patch diff --git a/0001-fio-fix-dynamic-engines-soname-definition.patch b/0001-fio-fix-dynamic-engines-soname-definition.patch new file mode 100644 index 0000000..9039d24 --- /dev/null +++ b/0001-fio-fix-dynamic-engines-soname-definition.patch @@ -0,0 +1,32 @@ +From 1b2f9943db0d74f4533567b7c8ed54d9c343e3f0 Mon Sep 17 00:00:00 2001 +From: Yigal Korman +Date: Thu, 17 Sep 2020 21:55:14 +0300 +Subject: [PATCH] fio: fix dynamic engines soname definition + +The SONAME of the engines should not match the name of the dependent +library. Otherwise it confuses the dynamic loader into thinking the +dependency is already resolved. + +Prefixing the name with fio make more sense here. + +Signed-off-by: Yigal Korman +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 8e1ebc90..e2d0833c 100644 +--- a/Makefile ++++ b/Makefile +@@ -256,7 +256,7 @@ define engine_template = + $(1)_OBJS := $$($(1)_SRCS:.c=.o) + $$($(1)_OBJS): CFLAGS := -fPIC $$($(1)_CFLAGS) $(CFLAGS) + engines/lib$(1).so: $$($(1)_OBJS) +- $$(QUIET_LINK)$(CC) -shared -rdynamic -fPIC -Wl,-soname,lib$(1).so.1 $$($(1)_LIBS) -o $$@ $$< ++ $$(QUIET_LINK)$(CC) -shared -rdynamic -fPIC -Wl,-soname,fio-$(1).so.1 $$($(1)_LIBS) -o $$@ $$< + ENGS_OBJS += engines/lib$(1).so + all install: $(ENGS_OBJS) + endef +-- +2.17.1 + diff --git a/fio.spec b/fio.spec index 085fcff..a65bab6 100644 --- a/fio.spec +++ b/fio.spec @@ -1,12 +1,16 @@ Name: fio Version: 3.23 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Multithreaded IO generation tool License: GPLv2 URL: http://git.kernel.dk/?p=fio.git;a=summary Source: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 +# Not upstream yet, see: +# https://bugzilla.redhat.com/show_bug.cgi?id=1884954#c8 +Patch1: 0001-fio-fix-dynamic-engines-soname-definition.patch + BuildRequires: gcc BuildRequires: libaio-devel BuildRequires: zlib-devel @@ -125,7 +129,7 @@ RDMA engine for %{name}. %endif %prep -%setup -q +%autosetup -p1 pathfix.py -i %{__python3} -pn \ tools/fio_jsonplus_clat2csv \ @@ -188,8 +192,9 @@ make install prefix=%{_prefix} mandir=%{_mandir} libdir=%{_libdir}/fio DESTDIR=$ %endif %changelog -* Mon Oct 05 2020 Richard W.M. Jones 3.23-4 +* Mon Oct 05 2020 Richard W.M. Jones 3.23-5 - Disable automatic provides for fio engines (RHBZ#1884954). +- Apply patch to change SONAME of fio engines (see comment 8 of above bug). * Thu Oct 01 2020 Richard W.M. Jones 3.23-3 - Add soft dependencies from main package to all the subpackages.