From 5cca26255132b3d61524cf8278457392f2f8e2ac Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer <maxim.cournoyer@savoirfairelinux.com> Date: Thu, 25 Mar 2021 21:30:19 -0400 Subject: [PATCH] configure.ac: Resolve libnatpmp conftest issue. Do not unnecessarily clutter CPPFLAGS; the variable is honored by Autoconf while running its conftests and can cause issues such as symbol clashes between the libnatpmp and webrtc-audio-processing library observed below: configure:20851: checking for initnatpmp in -lnatpmp configure:20873: g++ -std=gnu++17 -o conftest -DNDEBUG=1 -O3 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPJ_AUTOCONF=1 -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include -fvisibility=hidden -DDRING_BUILD -Ddring_EXPORTS -DASIO_STANDALONE -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include -I/gnu/store/zimpk6gqmjrwxc7fnam212kv3a6dwpzz-jsoncpp-1.9.2/include -DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD -DWEBRTC_POSIX -I/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/include/webrtc_audio_processing -Wl,-Bsymbolic -ldl -L/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib -L/gnu/store/zimpk6gqmjrwxc7fnam212kv3a6dwpzz-jsoncpp-1.9.2/lib -ljsoncpp -L/home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib -lwebrtc_audio_processing conftest.cpp -lnatpmp -lpthread -lssl -lcrypto >&5 ld: /tmp/cc5prP4w.o: in function `main': conftest.cpp:(.text.startup+0x0): multiple definition of `main'; /home/maxim/src/ring-project/daemon/contrib/x86_64-unknown-linux-gnu/lib/libwebrtc_audio_processing.a(libwebrtc_audio_processing_la-click_annotate.o):click_annotate.cc:(.text.startup+0x0): first defined here collect2: error: ld returned 1 exit status configure:20873: $? = 1 This was causing the link test of the libnatpmp library to fail, which in turned caused the natpmp support to be disabled entirely. * src/Makefile.am (libring_la_LDFLAGS): Add @WEBRTC_LIBS@. (libring_la_CFLAGS): Add @WEBRTC_CFLAGS@. * src/media/audio/Makefile.am (libaudio_la_CXXFLAGS) [HAVE_WEBRTC_AP]: Add @WEBRTC_CFLAGS@. * src/media/audio/echo-cancel/Makefile.am (libecho_cancel_la_CXXFLAGS): Add @WEBRTC_CFLAGS@ and honor AM_CXXFLAGS. GitLab: #487 Change-Id: I064d6a563318b34b2f3f516ca2aa8c2831205b09 --- configure.ac | 5 ++--- src/Makefile.am | 6 ++++-- src/media/audio/Makefile.am | 4 ++++ src/media/audio/echo-cancel/Makefile.am | 3 ++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index bce23b5ff3..6f519ff41c 100644 --- a/configure.ac +++ b/configure.ac @@ -555,9 +555,8 @@ AC_ARG_WITH([webrtcap], AS_IF([test "x$with_webrtc_ap" = "xyes"], [PKG_CHECK_MODULES(WEBRTC, [webrtc-audio-processing >= 0.3.1], [ - AC_DEFINE([HAVE_WEBRTC_AP], 1, [Define if you have webrtc-audio-processing]) - CPPFLAGS="${CPPFLAGS} ${WEBRTC_CFLAGS}" - LDFLAGS="${LDFLAGS} ${WEBRTC_LIBS}" + AC_DEFINE([HAVE_WEBRTC_AP], 1, + [Define if you have webrtc-audio-processing]) ], AC_MSG_WARN([Missing webrtc-audio-processing development files])) ]) diff --git a/src/Makefile.am b/src/Makefile.am index b39fcd401a..0f61a7614a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -77,7 +77,8 @@ libring_la_LDFLAGS = \ @LIBSWRESAMPLE_LIBS@ \ @LIBSWSCALE_LIBS@ \ @LIBAVUTIL_LIBS@ \ - @LIBS@ + @LIBS@ \ + @WEBRTC_LIBS@ if ENABLE_PLUGIN libring_la_LDFLAGS+= \ @@ -109,7 +110,8 @@ libring_la_CFLAGS = \ @LIBAVDEVICE_CFLAGS@ \ @LIBAVFILTER_CFLAGS@ \ @LIBSWRESAMPLE_CFLAGS@ \ - @LIBSWSCALE_CFLAGS@ + @LIBSWSCALE_CFLAGS@ \ + @WEBRTC_CFLAGS@ libring_la_CXXFLAGS = @JSONCPP_CFLAGS@ diff --git a/src/media/audio/Makefile.am b/src/media/audio/Makefile.am index 2772e51c4a..02fa07e4fc 100644 --- a/src/media/audio/Makefile.am +++ b/src/media/audio/Makefile.am @@ -61,6 +61,10 @@ libaudio_la_CXXFLAGS += @SPEEXDSP_CFLAGS@ libaudio_la_LDFLAGS += @SPEEXDSP_LIBS@ endif +if HAVE_WEBRTC_AP +libaudio_la_CXXFLAGS += @WEBRTC_CFLAGS@ +endif + noinst_HEADERS = \ audiobuffer.h \ audio_input.h \ diff --git a/src/media/audio/echo-cancel/Makefile.am b/src/media/audio/echo-cancel/Makefile.am index a7eab76fe0..0607d5294b 100644 --- a/src/media/audio/echo-cancel/Makefile.am +++ b/src/media/audio/echo-cancel/Makefile.am @@ -13,10 +13,11 @@ endif if HAVE_WEBRTC_AP EC_SRC += webrtc_echo_canceller.cpp EC_HDR += webrtc_echo_canceller.h +libecho_cancel_la_CXXFLAGS = @WEBRTC_CFLAGS@ $(AM_CXXFLAGS) endif libecho_cancel_la_SOURCES = \ - $(EC_SRC) + $(EC_SRC) noinst_HEADERS = \ echo_canceller.h \ -- GitLab