Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 657014 - net-libs/pjproject-2.7.2 : complex_fft.c:(.text+<snip>): multiple definition of WebRtcSpl_ComplexFFT
Summary: net-libs/pjproject-2.7.2 : complex_fft.c:(.text+<snip>): multiple definition ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Jaco Kroon
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-31 21:08 UTC by Toralf Förster
Modified: 2019-11-30 07:50 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,15.55 KB, text/plain)
2018-05-31 21:08 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,99.48 KB, text/plain)
2018-05-31 21:08 UTC, Toralf Förster
Details
environment (environment,100.64 KB, text/plain)
2018-05-31 21:08 UTC, Toralf Förster
Details
etc.portage.tbz2 (etc.portage.tbz2,11.76 KB, application/x-bzip)
2018-05-31 21:08 UTC, Toralf Förster
Details
logs.tbz2 (logs.tbz2,10.68 KB, application/x-bzip)
2018-05-31 21:08 UTC, Toralf Förster
Details
net-libs:pjproject-2.7.2:20180531-204459.log (net-libs:pjproject-2.7.2:20180531-204459.log,216.00 KB, text/plain)
2018-05-31 21:08 UTC, Toralf Förster
Details
temp.tbz2 (temp.tbz2,38.81 KB, application/x-bzip)
2018-05-31 21:08 UTC, Toralf Förster
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2018-05-31 21:08:01 UTC
output/libwebrtc-x86_64-pc-linux-gnu/common_audio/signal_processing/complex_fft.o: In function `WebRtcSpl_ComplexFFT':
complex_fft.c:(.text+0x0): multiple definition of `WebRtcSpl_ComplexFFT'
output/libwebrtc-x86_64-pc-linux-gnu/common_audio/signal_processing/complex_fft.o:complex_fft.c:(.text+0x0): first defined here
output/libwebrtc-x86_64-pc-linux-gnu/common_audio/signal_processing/complex_fft.o: In function `WebRtcSpl_ComplexIFFT':
complex_fft.c:(.text+0x320): multiple definition of `WebRtcSpl_ComplexIFFT'

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 17.0-no-multilib_libressl_20180529-190822

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-7.3.0 *

Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python2.7 (fallback)




emerge -qpv net-libs/pjproject
[ebuild  N    ] net-libs/pjproject-2.7.2  USE="ipv6 libressl ssl webrtc -alsa -amr -debug -doc -epoll -examples -ffmpeg -g711 -g722 -g7221 -gsm -ilbc -l16 -libyuv -openh264 -opus -oss -portaudio -resample -sdl -silk -speex -static-libs -v4l2"
Comment 1 Toralf Förster gentoo-dev 2018-05-31 21:08:04 UTC
Created attachment 534336 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2018-05-31 21:08:08 UTC
Created attachment 534338 [details]
emerge-history.txt
Comment 3 Toralf Förster gentoo-dev 2018-05-31 21:08:11 UTC
Created attachment 534340 [details]
environment
Comment 4 Toralf Förster gentoo-dev 2018-05-31 21:08:14 UTC
Created attachment 534342 [details]
etc.portage.tbz2
Comment 5 Toralf Förster gentoo-dev 2018-05-31 21:08:18 UTC
Created attachment 534344 [details]
logs.tbz2
Comment 6 Toralf Förster gentoo-dev 2018-05-31 21:08:21 UTC
Created attachment 534346 [details]
net-libs:pjproject-2.7.2:20180531-204459.log
Comment 7 Toralf Förster gentoo-dev 2018-05-31 21:08:24 UTC
Created attachment 534348 [details]
temp.tbz2
Comment 8 Andreas Steinmetz 2018-06-17 12:22:54 UTC
It looks as ac_webrtc_instset (used in third_party/build/os-auto.mak.in) is an empty string but needs to be a string containing "sse2" (x86_64, gcc 7.3).
Manually patching this lets the build succeeed.
Comment 9 Stefan Briesenick 2018-12-09 21:20:02 UTC
ping?
Comment 10 Andrey Volkov 2018-12-10 13:50:33 UTC
The cause of the problem is in the configure option --enable-libwebrtc
This helps me:

--- a/net-libs/pjproject/pjproject-2.7.2.ebuild
+++ b/net-libs/pjproject/pjproject-2.7.2.ebuild
@@ -85,7 +85,7 @@
 		$(use_enable silk) \
 		$(use_enable opus) \
 		$(use_enable ssl) \
-		$(use_enable webrtc libwebrtc) \
+		$(usex webrtc '' --disable-libwebrtc) \
 		"${myconf[@]}"
 }
Comment 11 Jaco Kroon 2019-11-19 14:09:45 UTC
Another brilliant example of how to write a configure script ... same illogical logic as with --{enable,disable}-ssl ...

I can confirm that by NOT passing --enable-libwebrtc the code that enables libwebrtc is being run ...

essentially some (perhaps all) of their --enable,disable-FEATURE logic looks something like:

if --{enable,disable}-FEATURE has been given:
    if it's disable:
        disable the feature
    else
        do nothing (which typically means, leave it broken)
else
    enable it

And in general the alternate path is non-deterministic, meaning if the deps are met it will be enabled, else disabled anyway.  

I've applied the provided fix from Andrey to the in process 2.9 ebuild ... but I honestly don't like it.  If they accept the patches for --{enable,disable}-ssl I'll revisit this one as well.
Comment 12 Larry the Git Cow gentoo-dev 2019-11-30 07:50:01 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90d194bc8a80a478c91f5196da9eac770a755ca2

commit 90d194bc8a80a478c91f5196da9eac770a755ca2
Author:     Jaco Kroon <jaco@uls.co.za>
AuthorDate: 2019-11-18 09:45:56 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2019-11-30 07:48:56 +0000

    net-libs/pjproject: Bump to 2.9.
    
    Drop libressl patches (upstream).
    Rebase configure for --enable-ssl.
    Pull in asterisk config_site.h file.
    Remove blocked on mediastreamer-bcg729 (bcg729 and mediastreamer-bcg729
    are the actual blockers and marked as such already).
    Use ${ED} instead of ${D} on install
    Correctly rm static libs if USE=-static-libs
    Set the PJMEDIA_HAS_VIDEO #define as per https://bugs.gentoo.org/652196
    Update package.use.mask for ppc to mask g729 for pjproject since
    net-libs/bcg729 isn't available (yet) on ppc.
    
    Closes: https://bugs.gentoo.org/609702
    Closes: https://bugs.gentoo.org/618352
    Closes: https://bugs.gentoo.org/652196
    Closes: https://bugs.gentoo.org/650312
    Closes: https://bugs.gentoo.org/653482
    Closes: https://bugs.gentoo.org/657014
    Closes: https://bugs.gentoo.org/686796
    Package-Manager: Portage-2.3.76, Repoman-2.3.16
    Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    Closes: https://github.com/gentoo/gentoo/pull/13712
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 net-libs/pjproject/Manifest                        |   1 +
 .../pjproject/files/pjproject-2.9-config_site.h    |  74 +++++++++++++
 .../pjproject/files/pjproject-2.9-ssl-enable.patch | 100 +++++++++++++++++
 net-libs/pjproject/metadata.xml                    |   3 +-
 net-libs/pjproject/pjproject-2.9.ebuild            | 120 +++++++++++++++++++++
 .../linux/powerpc/ppc32/17.0/package.use.mask      |   3 +
 .../ppc64/17.0/32bit-userland/package.use.mask     |   3 +
 7 files changed, 303 insertions(+), 1 deletion(-)