Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 283675 - net-libs/ptlib-2.6.4 produces binary with undefined symbols with USE="vxml -dtmf"
Summary: net-libs/ptlib-2.6.4 produces binary with undefined symbols with USE="vxml -d...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High trivial (vote)
Assignee: Mounir Lamouri (volkmar) (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-04 16:31 UTC by Alexander Soloviëv
Modified: 2009-09-26 10:47 UTC (History)
2 users (show)

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


Attachments
config.log while building opal (config.log,18.38 KB, text/plain)
2009-09-11 13:30 UTC, Alexander Soloviëv
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Soloviëv 2009-09-04 16:31:07 UTC
net-libs/ptlib-2.6.4 builds library that has undefined symbols if build with vxml use flag but without dtmf. Thus net-libs/opal, which depends on ptlib, failed to build in way like in the bug #277385

Reproducible: Always

Steps to Reproduce:
USE="-dtmf +vxml" emerge ptlib

ldd -r /usr/lib/libpt.so
undefined symbol: _ZN6PTonesC1Ej        (/usr/lib/libpt.so)
undefined symbol: _ZN6PTones8GenerateERK7PString        (/usr/lib/libpt.so)
        linux-gate.so.1 =>  (0xb7f5b000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7d21000)
        librt.so.1 => /lib/librt.so.1 (0xb7d18000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7d00000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0xb7cb8000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0xb7b68000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7b64000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b3d000)
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb7ab6000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb7aa1000)
        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libstdc++.so.6 (0xb79b3000)
        libm.so.6 => /lib/libm.so.6 (0xb798d000)
        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_s.so.1 (0xb797f000)
        libc.so.6 => /lib/libc.so.6 (0xb7835000)
        /lib/ld-linux.so.2 (0xb7f5c000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7803000)




Portage 2.1.6.13 (default/linux/x86/10.0/desktop, gcc-4.3.4, glibc-2.10.1-r0, 2.6.28-hardened-r7 i686)
=================================================================
System uname: Linux-2.6.28-hardened-r7-i686-Intel-R-_Pentium-R-_Dual_CPU_E2160_@_1.80GHz-with-gentoo-2.0.1
Timestamp of tree: Tue, 01 Sep 2009 19:30:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p28
dev-java/java-config: 1.3.7, 2.1.2-r1
dev-lang/python:     2.5.4-r2, 2.6.2-r1
dev-python/pycrypto: 2.0.1-r8
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.3
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.4.3-r1
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
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="x86 ~x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /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/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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=core2 -O2 -pipe"
DISTDIR="/var/db/portage/distfiles"
FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms splitdebug strict unmerge-orphans userfetch userpriv"
GENTOO_MIRRORS="ftp://c.aliki.ru/pub/mirror/gentoo"
LANG="ru_RU.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j3"
PKGDIR="/var/db/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="/var/db/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa avi bash-completion berkdb bluetooth branding bzip2 cairo cdr chroot cli consolekit cracklib crypt cups dba dbus divx4linux dri dts dvd dvdr emboss encode evo exif fbcon firefox flac fontconfig fortran freetype gdbm gif gnutls gstreamer gtk gtk2 hal iconv isdnlog jbig jpeg jpeg2k lcms libnotify mad matroska memlimit mikmod mmx mp3 mp4 mpeg mudflap ncurses nptl nptlonly nvidia ogg openexr opengl openmp pam pch pcre pdf pic png ppds pppd python qt qt3support qt4 quicktime readline reflection rtc sasl sdl session spell spl sse sse2 ssl ssse3 startup-notification svg sysfs tcpd threads thunar tiff truetype unicode usb v4l v4l2 vdpau vorbis win32codecs x264 x86 xml xorg xscreensaver xulrunner xv xvid xvmc zlib" ALSA_CARDS="emu10k1" 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="authz_groupfile authz_user authz_owner authn_file auth_basic authz_svn_module filter unique_id access authz_host auth auth_dbm auth_anon auth_digest alias file_cache echo charset_lite cache disk_cache mem_cache ext_filter case_filter case_filter_in deflate mime_magic cern_meta expires headers usertrack proxy proxy_connect proxy_ftp proxy_http info include cgi cgid dav dav_fs dav_lock vhost_alias speling rewrite log_config logio env setenvif mime status autoindex asis negotiation dir actions so" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="v4l fbcon vesa nvidia"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-09 17:19:43 UTC
Thank you for your report. I will look at this.
Comment 2 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-10 19:36:17 UTC
May you copy the output of `emerge -pv ptlib` ?
I can't reproduce your bug.
Comment 3 Alexander Soloviëv 2009-09-11 11:20:50 UTC
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
Comment 4 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-11 13:08:37 UTC
(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).
Comment 5 Alexander Soloviëv 2009-09-11 13:30:51 UTC
Created attachment 203785 [details]
config.log while building opal
Comment 6 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-12 21:49:07 UTC
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.
Comment 7 Sander Sweers 2009-09-18 11:03:59 UTC
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
Comment 8 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-18 11:44:15 UTC
Reopening because of previous comment.
Comment 9 Matthias Raffelsieper 2009-09-24 07:57:49 UTC
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() {
Comment 10 Adrian Bassett 2009-09-24 09:24:37 UTC
(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"
 

Comment 11 Mounir Lamouri (volkmar) (RETIRED) gentoo-dev 2009-09-26 10:47:06 UTC
You were right, Matthias. I didn't think of this case.
It's fixed.