diff --git a/0001-build-avoid-double-definition-of-zbc_log_drv-etc.patch b/0001-build-avoid-double-definition-of-zbc_log_drv-etc.patch new file mode 100644 index 0000000..d50b303 --- /dev/null +++ b/0001-build-avoid-double-definition-of-zbc_log_drv-etc.patch @@ -0,0 +1,65 @@ +From abf34849c0b4e43900535a3a5d68753ab1107b65 Mon Sep 17 00:00:00 2001 +From: Jan Engelhardt +Date: Mon, 16 Mar 2020 08:01:44 +0100 +Subject: [PATCH] build: avoid double definition of zbc_log_drv etc. +Upstream: https://github.com/hgst/libzbc/pull/37 + +When -fno-common is in use, what compiler writers are trying to make +a standard, libzbc fails to build. + +$ make V=1 +Making all in . +make[1]: Entering directory '~/libzbc' +/bin/sh ./libtool --tag=CC --mode=link gcc -fPIC -fno-common -O2 -g -pthread -Wl,--version-script,./exports -release '5.8.5' -o libzbc.la -rpath /usr/lib lib/libzbc_la-zbc.lo lib/libzbc_la-zbc_block.lo lib/libzbc_la-zbc_sg.lo lib/libzbc_la-zbc_scsi.lo lib/libzbc_la-zbc_ata.lo lib/libzbc_la-zbc_fake.lo +libtool: link: gcc -shared -fPIC -DPIC lib/.libs/libzbc_la-zbc.o lib/.libs/libzbc_la-zbc_block.o lib/.libs/libzbc_la-zbc_sg.o lib/.libs/libzbc_la-zbc_scsi.o lib/.libs/libzbc_la-zbc_ata.o lib/.libs/libzbc_la-zbc_fake.o -O2 -g -pthread -Wl,--version-script -Wl,./exports -pthread -Wl,-soname -Wl,libzbc-5.8.5.so -o .libs/libzbc-5.8.5.so +/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: lib/.libs/libzbc_la-zbc_block.o:~/libzbc/lib/zbc.h:269: multiple definition of `zbc_log_level'; lib/.libs/libzbc_la-zbc.o:~/libzbc/lib/zbc.h:269: first defined here +/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: lib/.libs/libzbc_la-zbc_block.o:~/libzbc/lib/zbc.h:195: multiple definition of `zbc_fake_drv'; lib/.libs/libzbc_la-zbc.o:~/libzbc/lib/zbc.h:195: first defined here + +References: https://bugzilla.suse.com/show_bug.cgi?id=1160244 +--- + lib/zbc.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/lib/zbc.h b/lib/zbc.h +index 7dec298..73d76db 100644 +--- a/lib/zbc.h ++++ b/lib/zbc.h +@@ -177,22 +177,22 @@ static inline void zbc_set_errno(enum zbc_sk sk, enum zbc_asc_ascq asc_ascq) + /** + * Block device driver (requires kernel support). + */ +-struct zbc_drv zbc_block_drv; ++extern struct zbc_drv zbc_block_drv; + + /** + * ZAC (ATA) device driver (uses SG_IO). + */ +-struct zbc_drv zbc_ata_drv; ++extern struct zbc_drv zbc_ata_drv; + + /** + * ZBC (SCSI) device driver (uses SG_IO). + */ +-struct zbc_drv zbc_scsi_drv; ++extern struct zbc_drv zbc_scsi_drv; + + /** + * ZBC emulation driver (file or block device). + */ +-struct zbc_drv zbc_fake_drv; ++extern struct zbc_drv zbc_fake_drv; + + #define container_of(ptr, type, member) \ + ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) +@@ -266,7 +266,7 @@ enum { + /** + * Library log level. + */ +-int zbc_log_level; ++extern int zbc_log_level; + + #define zbc_print(stream,format,args...) \ + do { \ +-- +2.25.1 + diff --git a/libzbc.changes b/libzbc.changes index 7f0493d..2424a13 100644 --- a/libzbc.changes +++ b/libzbc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Mar 16 07:20:10 UTC 2020 - Jan Engelhardt + +- Add 0001-build-avoid-double-definition-of-zbc_log_drv-etc.patch + [boo#1166503] + ------------------------------------------------------------------- Mon Mar 9 12:49:33 UTC 2020 - Jan Engelhardt diff --git a/libzbc.spec b/libzbc.spec index 6a5977c..dec953b 100644 --- a/libzbc.spec +++ b/libzbc.spec @@ -26,6 +26,7 @@ Group: Hardware/Other URL: https://github.com/hgst/libzbc Source: https://github.com/hgst/libzbc/archive/v%version.tar.gz +Patch1: 0001-build-avoid-double-definition-of-zbc_log_drv-etc.patch BuildRequires: autoconf-archive BuildRequires: libtool >= 2 BuildRequires: pkg-config @@ -84,7 +85,7 @@ autoreconf -fi mkdir obj pushd obj/ %define _configure ../configure -%configure --disable-static --includedir="%_includedir/%name" +%configure --disable-static --includedir="%_includedir/%name" CFLAGS="%optflags -fno-common" make %{?_smp_mflags} popd