Summary: | net-libs/ptlib-2.6.4 produces binary with undefined symbols with USE="vxml -dtmf" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alexander Soloviëv <no.friday> |
Component: | Current packages | Assignee: | Mounir Lamouri (volkmar) (RETIRED) <volkmar> |
Status: | RESOLVED FIXED | ||
Severity: | trivial | CC: | Adrian.Bassett, voip+disabled |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | config.log while building opal |
Description
Alexander Soloviëv
2009-09-04 16:31:07 UTC
Thank you for your report. I will look at this. May you copy the output of `emerge -pv ptlib` ? I can't reproduce your bug. This build doesn't give any undefined symbols [ebuild R ] net-libs/ptlib-2.6.4 USE="alsa asn audio dns dtmf ffmpeg http jabber pch pipechan qos sasl sdl shmvideo ssl stun url v4l v4l2 video video-file vxml wav xml -config-file -debug -doc -esd -examples -ftp -http-forms -http-server -ieee1394 -ipv6 -ldap -mail -odbc -oss -remote -serial -snmp -soap -socks -telnet -tts -xmlrpc" 0 kB and this does (i.e. USE="-dtmf" emerge -pv ptlib) [ebuild R ] net-libs/ptlib-2.6.4 USE="alsa asn audio dns ffmpeg http jabber pch pipechan qos sasl sdl shmvideo ssl stun url v4l v4l2 video video-file vxml wav xml -config-file -debug -doc -dtmf -esd -examples -ftp -http-forms -http-server -ieee1394 -ipv6 -ldap -mail -odbc -oss -remote -serial -snmp -soap -socks -telnet -tts -xmlrpc" 0 kB Undefined symbols goes from ptlib-2.6.4/lib_linux_x86/obj/vxml.o (In reply to comment #3) > This build doesn't give any undefined symbols > > [ebuild R ] net-libs/ptlib-2.6.4 USE="alsa asn audio dns dtmf ffmpeg http > jabber pch pipechan qos sasl sdl shmvideo ssl stun url v4l v4l2 video > video-file vxml wav xml -config-file -debug -doc -esd -examples -ftp > -http-forms -http-server -ieee1394 -ipv6 -ldap -mail -odbc -oss -remote -serial > -snmp -soap -socks -telnet -tts -xmlrpc" 0 kB > > and this does (i.e. USE="-dtmf" emerge -pv ptlib) > > [ebuild R ] net-libs/ptlib-2.6.4 USE="alsa asn audio dns ffmpeg http > jabber pch pipechan qos sasl sdl shmvideo ssl stun url v4l v4l2 video > video-file vxml wav xml -config-file -debug -doc -dtmf -esd -examples -ftp > -http-forms -http-server -ieee1394 -ipv6 -ldap -mail -odbc -oss -remote -serial > -snmp -soap -socks -telnet -tts -xmlrpc" 0 kB > > Undefined symbols goes from ptlib-2.6.4/lib_linux_x86/obj/vxml.o > I'm still unable to reproduce it. May you build ptlib with the undefined symbol then build opal. At this moment, if opal is failing, attach the config.log file (not the build.log). Created attachment 203785 [details]
config.log while building opal
Reported upstream: https://sourceforge.net/tracker/?func=detail&aid=2857750&group_id=204472&atid=989748 I've added a fix to ptlib-2.6.4-r1 which is forcing compilation of dtmf.cxx when vxml is enabled. Alexander, if you still have the issue, do not hesitate to re-open the bug. And now it fails to link with and without --as-needed.... Please re-open. /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFDecoder::PDTMFDecoder()': dtmf.cxx:(.text+0x0): multiple definition of `PDTMFDecoder::PDTMFDecoder()' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x0): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFDecoder::PDTMFDecoder()': dtmf.cxx:(.text+0x160): multiple definition of `PDTMFDecoder::PDTMFDecoder()' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x160): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::CalcSamples(unsigned int, unsigned int, unsigned int)': dtmf.cxx:(.text+0x340): multiple definition of `PTones::CalcSamples(unsigned int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x340): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::DtmfChar(int)': dtmf.cxx:(.text+0x440): multiple definition of `PDTMFEncoder::DtmfChar(int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x440): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::AddSample(int, unsigned int)': dtmf.cxx:(.text+0x480): multiple definition of `PTones::AddSample(int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x480): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::Silence(unsigned int)': dtmf.cxx:(.text+0x500): multiple definition of `PTones::Silence(unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x500): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::Modulate(unsigned int, unsigned int, unsigned int, unsigned int)': dtmf.cxx:(.text+0x540): multiple definition of `PTones::Modulate(unsigned int, unsigned int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x540): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::Juxtapose(unsigned int, unsigned int, unsigned int, unsigned int)': dtmf.cxx:(.text+0x640): multiple definition of `PTones::Juxtapose(unsigned int, unsigned int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x640): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::PureTone(unsigned int, unsigned int, unsigned int)': dtmf.cxx:(.text+0x720): multiple definition of `PTones::PureTone(unsigned int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x720): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::Generate(char, unsigned int, unsigned int, unsigned int, unsigned int)': dtmf.cxx:(.text+0x860): multiple definition of `PTones::Generate(char, unsigned int, unsigned int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x860): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::AddTone(double, double, unsigned int)': dtmf.cxx:(.text+0x900): multiple definition of `PDTMFEncoder::AddTone(double, double, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x900): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::AddTone(char, unsigned int)': dtmf.cxx:(.text+0x980): multiple definition of `PDTMFEncoder::AddTone(char, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x980): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::AddTone(char const*, unsigned int)': dtmf.cxx:(.text+0x9e0): multiple definition of `PDTMFEncoder::AddTone(char const*, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x9e0): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::PTones(unsigned int)': dtmf.cxx:(.text+0xa20): multiple definition of `PTones::PTones(unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xa20): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::PTones(unsigned int)': dtmf.cxx:(.text+0xa80): multiple definition of `PTones::PTones(unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xa80): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::PDTMFEncoder(char, unsigned int)': dtmf.cxx:(.text+0xae0): multiple definition of `PDTMFEncoder::PDTMFEncoder(char, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xae0): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::PDTMFEncoder(char, unsigned int)': dtmf.cxx:(.text+0xb20): multiple definition of `PDTMFEncoder::PDTMFEncoder(char, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xb20): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::PDTMFEncoder(char const*, unsigned int)': dtmf.cxx:(.text+0xb60): multiple definition of `PDTMFEncoder::PDTMFEncoder(char const*, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xb60): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFEncoder::PDTMFEncoder(char const*, unsigned int)': dtmf.cxx:(.text+0xba0): multiple definition of `PDTMFEncoder::PDTMFEncoder(char const*, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xba0): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PDTMFDecoder::Decode(short const*, int, unsigned int, unsigned int)': dtmf.cxx:(.text+0xbe0): multiple definition of `PDTMFDecoder::Decode(short const*, int, unsigned int, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xbe0): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::Generate(PString const&)': dtmf.cxx:(.text+0xe00): multiple definition of `PTones::Generate(PString const&)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0xe00): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::PTones(PString const&, unsigned int)': dtmf.cxx:(.text+0x1500): multiple definition of `PTones::PTones(PString const&, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x1500): first defined here /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o: In function `PTones::PTones(PString const&, unsigned int)': dtmf.cxx:(.text+0x1540): multiple definition of `PTones::PTones(PString const&, unsigned int)' /var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/obj/dtmf.o:dtmf.cxx:(.text+0x1540): first defined here collect2: ld returned 1 exit status make[2]: *** [/var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/lib_linux_x86_64/libpt.so.2.6.4] Error 1 make[2]: Leaving directory `/var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/src' make[1]: *** [optshared] Error 2 make[1]: Leaving directory `/var/tmp/portage/net-libs/ptlib-2.6.4-r1/work/ptlib-2.6.4/src' make: *** [optshared] Error 2 infirit sander # emerge --info Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.3.4, glibc-2.10.1-r0, 2.6.31-gentoo x86_64) ================================================================= System uname: Linux-2.6.31-gentoo-x86_64-AMD_Phenom-tm-_II_X4_945_Processor-with-gentoo-2.0.1 Timestamp of tree: Sun, 13 Sep 2009 20:45:01 +0000 app-shells/bash: 4.0_p33 dev-java/java-config: 2.1.9 dev-lang/python: 2.5.4-r3, 2.6.2-r1, 3.1.1 dev-util/cmake: 2.6.4-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.4.3-r3 sys-apps/sandbox: 2.1 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=amdfam10 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=amdfam10 -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://mirror.leaseweb.com/gentoo/ ftp://gentoo.tiscali.nl/pub/mirror/gentoo/" LDFLAGS="-Wl,--as-needed -Wl,-O1" LINGUAS="en en_GB nl fr de" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/x11 /usr/local/portage/mine" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 aac aalib acl acpi alsa amd64 apm async avahi bash-completion beagle berkdb bluetooth bonjour branding bzip2 cairo cdda cddb cdparanoia cdr cleartype cli consolekit cracklib crypt cups curl daap dbus device-mapper dirac disk-partition djvu dmx dri dts dv dvd dvdr eds emboss encode esd evo exif faac faad fam fbcon ffmpeg firefox flac fontconfig fontforge fortran fuse galago gcj gd gdbm gif glibc-omitfp gnome gnome-keyring gnutls gphoto2 gpm gs gsm gstreamer gtk guile h323 hal howl-compat iconv imagemagic imagemagick inotify ipv6 isdnlog java jbig jpeg jpeg2k kde kdehiddenvisibility kdrive lame lcms ldap libcaca libffi libnotify libsamplerate lzma lzo mad mdnsresponder-compat mikmod mmap mmx mmxext mng mono mp3 mp4 mpeg mudflap multilib musepack mysql nautilus ncurses network network-cron networking networkmanager nls nptl nptlonly nsplugin ntp offensive ogg openal openexr opengl openmp pam pcre pdf perl plotutils png pnm policykit ppds pppd python qt3support qt4 quicktime raw readline reflection rle samba schroedinger sdl session sip smp sndfile speex spell spl sql sqlite sse sse2 ssl ssse3 startup-notification svg sysfs syslog tcpd theora threads thunar tiff tk tracker truetype tslib unicode usb vcd vdpau vim-syntax vim-syntaxcleartype vim-with-x vorbis wav wavpack webkit wmf x264 xattr xcb xcomposite xine xml xmp xorg xpm xulrunner xv xvid xvmc zeroconf zip zlib" ALSA_CARDS="hda-intel usb-audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_GB nl fr de" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa nouveau" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS Reopening because of previous comment. I was hit by the same bug as in comment #7 with multiple definitions. This seems to be due to the patch that was added to solve this problem, pulling in dtmf twice when both vxml and dtmf are in the USE flags. I solved it by only applying it when the USE flags contain vxml but not dtmf. --- /usr/portage/net-libs/ptlib/ptlib-2.6.4-r1.ebuild 2009-09-13 00:10:31.000000000 +0200 +++ ptlib-2.6.4-r1.ebuild 2009-09-24 09:34:05.717732272 +0200 @@ -125,7 +125,9 @@ fi # bug 283675, upstream bug 2857750 - epatch "${FILESDIR}"/${P}-vxml-ptones.patch + if use vxml && ! use dtmf; then + epatch "${FILESDIR}"/${P}-vxml-ptones.patch + fi } src_configure() { (In reply to comment #9) Confirming that this patch fixes this problem for me too: # emerge -pv ptlib [ebuild R ] net-libs/ptlib-2.6.4-r1 USE="alsa asn audio dtmf esd ffmpeg ftp http ipv6 jabber ldap mail pch qos remote sasl sdl serial shmvideo snmp soap socks ssl stun telnet tts v4l v4l2 video vxml wav xml xmlrpc -debug -doc -examples -ieee1394 -odbc -oss" You were right, Matthias. I didn't think of this case. It's fixed. |