Fixes 'multiple definition errors' when building with GCC 10+ From: https://bugs.gentoo.org/710796 Originally from: https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/a62e41e and https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/7a976c7 --- a/spa/plugins/bluez5/a2dp-codecs.h +++ b/spa/plugins/bluez5/a2dp-codecs.h @@ -284,15 +284,15 @@ } } -const a2dp_sbc_t bluez_a2dp_sbc; +extern const a2dp_sbc_t bluez_a2dp_sbc; #if ENABLE_MP3 -const a2dp_mpeg_t bluez_a2dp_mpeg; +extern const a2dp_mpeg_t bluez_a2dp_mpeg; #endif #if ENABLE_AAC -const a2dp_aac_t bluez_a2dp_aac; +extern const a2dp_aac_t bluez_a2dp_aac; #endif #if ENABLE_APTX -const a2dp_aptx_t bluez_a2dp_aptx; +extern const a2dp_aptx_t bluez_a2dp_aptx; #endif #endif --- a/spa/plugins/bluez5/bluez5-monitor.c +++ b/spa/plugins/bluez5/bluez5-monitor.c @@ -75,7 +75,7 @@ struct spa_list transport_list; }; -struct spa_handle_factory spa_a2dp_sink_factory; +extern struct spa_handle_factory spa_a2dp_sink_factory; static void fill_item(struct spa_bt_monitor *this, struct spa_bt_transport *transport, struct spa_pod **result, struct spa_pod_builder *builder) --- a/spa/plugins/bluez5/meson.build +++ b/spa/plugins/bluez5/meson.build @@ -1,7 +1,8 @@ bluez5_sources = ['plugin.c', 'a2dp-sink.c', - 'bluez5-monitor.c'] + 'a2dp-codecs.c', + 'bluez5-monitor.c'] bluez5lib = shared_library('spa-bluez5', bluez5_sources,