See: https://bugzilla.redhat.com/show_bug.cgi?id=1800228 /usr/bin/ld: .libs/libdvbv5_la-dvb-fe.o:(.bss+0x8): multiple definition of `delivery_system_name'; .libs/libdvbv5_la-dvb-v5.o:/builddir/build/BUILD/v4l-utils-1.18.0/lib/libdvbv5/dvb-v5.h:29: first defined here /usr/bin/ld: .libs/libdvbv5_la-dvb-fe.o:(.bss+0xa8): multiple definition of `dvb_v5_name'; .libs/libdvbv5_la-dvb-v5.o:/builddir/build/BUILD/v4l-utils-1.18.0/lib/libdvbv5/dvb-v5.h:28: first defined here /usr/bin/ld: .libs/libdvbv5_la-dvb-fe.o:(.rodata+0x3ec): multiple definition of `fe_bandwidth_name'; .libs/libdvbv5_la-dvb-v5.o:/builddir/build/BUILD/v4l-utils-1.18.0/lib/libdvbv5/dvb-v5.h:20: first defined here delivery_system_name etc are being defined both in lib/libdvbv5/dvb-v5.c and lib/libdvbv5/dvb-v5.h. Signed-off-by: Sean Young <sean@xxxxxxxx> --- lib/libdvbv5/gen_dvb_structs.pl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/libdvbv5/gen_dvb_structs.pl b/lib/libdvbv5/gen_dvb_structs.pl index 7e1d645c..d15d1fc3 100755 --- a/lib/libdvbv5/gen_dvb_structs.pl +++ b/lib/libdvbv5/gen_dvb_structs.pl @@ -419,6 +419,9 @@ sub output_arrays($$$$$) } printf OUT " %s[%i]", $name, $size; } else { + if ($decl) { + printf OUT "extern "; + } printf OUT "const %s%s[%i]", $type, $name, $size + 1; } -- 2.24.1