fix build error due to gcc 10

error:
gcc -Wl,-z,relro   -Wl,-z,now -specs=/usr/lib/rpm/generic-hardened-ld -rdynamic -std=gnu99 -Wwrite-strings -Wall -Wdeclaration-after-statement -g -ffast-math -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -D_GNU_SOURCE -include config-host.h -march=armv8-a+crc+crypto -I. -I. -DBITS_PER_LONG=64 -DFIO_VERSION='"fio-3.7"' -o t/fio-dedupe t/dedupe.o lib/rbtree.o t/log.o fio_sem.o pshared.o smalloc.o gettime.o crc/md5.o lib/memalign.o lib/bloom.o t/debug.o crc/xxhash.o t/arch.o crc/murmur3.o crc/crc32c.o crc/crc32c-intel.o crc/crc32c-arm64.o crc/fnv.o -lrbd -lrados -lrados -lnuma -lrdmacm -libverbs -lrt -laio -lz  -lm  -lpthread -ldl
/usr/bin/ld: t/arch.o:/home/abuild/rpmbuild/BUILD/fio-3.7/t/arch.c:4: multiple definition of `tsc_reliable'; gettime.o:/home/abuild/rpmbuild/BUILD/fio-3.7/gettime.c:25: first defined here
This commit is contained in:
linjiaxin 2021-07-30 06:25:42 +00:00 committed by Lin Jiaxin
parent cc4dfaab13
commit 8f5dd7bad0
2 changed files with 14 additions and 1 deletions

View File

@ -1,6 +1,6 @@
Name: fio Name: fio
Version: 3.7 Version: 3.7
Release: 10 Release: 11
Summary: Versatile IO workload generator Summary: Versatile IO workload generator
License: GPLv2 License: GPLv2
URL: http://git.kernel.dk/?p=fio.git;a=summary URL: http://git.kernel.dk/?p=fio.git;a=summary
@ -13,6 +13,7 @@ BuildRequires: libpmem-devel libpmemblk-devel
Patch0000: fix-glibc-error.patch Patch0000: fix-glibc-error.patch
Patch0001: Modify-python2.7-to-python3-with-requires.patch Patch0001: Modify-python2.7-to-python3-with-requires.patch
Patch0002: fio2gnuplot-fix-TabErrors-when-running-with-Python-3.patch Patch0002: fio2gnuplot-fix-TabErrors-when-running-with-Python-3.patch
Patch0003: gcc-10.patch
%description %description
fio is a tool used to spawn many threads or processes that perform a specific type fio is a tool used to spawn many threads or processes that perform a specific type
of io operation specified by the user.It accepts many global parameters inherited of io operation specified by the user.It accepts many global parameters inherited
@ -46,6 +47,9 @@ export EXTFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS"
%{_mandir}/man1/* %{_mandir}/man1/*
%changelog %changelog
* Fri Jul 30 2021 linjiaxin5 <linjiaxin5@huawei.com> - 3.7-11
- Fix failure caused by GCC upgrade to 10
* Wed Jul 21 2021 lingsheng <lingsheng@huawei.com> - 3.7-10 * Wed Jul 21 2021 lingsheng <lingsheng@huawei.com> - 3.7-10
- Remove unnecessary buildrequire gdb - Remove unnecessary buildrequire gdb

9
gcc-10.patch Normal file
View File

@ -0,0 +1,9 @@
--- a/t/arch.c 2021-08-03 15:35:12.952984598 +0800
+++ b/t/arch.c 2021-08-03 15:34:47.284542645 +0800
@@ -1,5 +1,5 @@
#include "../arch/arch.h"
unsigned long arch_flags = 0;
-bool tsc_reliable;
+extern bool tsc_reliable;
int arch_random;