Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 417773 - app-misc/gpsdrive-2.11-r3 with sci-geosciences/mapnik-2.0.1 - CMakeFiles/gpsdrive.dir/mapnik.o: In function `init_mapnik': mapnik.cpp:(.text+0x3b56): undefined reference to `vtable for boost::detail::thread_data_base'
Summary: app-misc/gpsdrive-2.11-r3 with sci-geosciences/mapnik-2.0.1 - CMakeFiles/gpsd...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Mobile Herd (OBSOLETE)
URL:
Whiteboard:
Keywords: InVCS, PATCH
Depends on:
Blocks:
 
Reported: 2012-05-27 13:58 UTC by Juergen Rose
Modified: 2012-11-04 17:30 UTC (History)
3 users (show)

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


Attachments
/var/tmp/portage/app-misc/gpsdrive-2.11-r3/temp/build.log (build.log,83.42 KB, text/plain)
2012-05-27 14:00 UTC, Juergen Rose
Details
Patch for gpsdrive-2.11-r3 CMakelist.txt to include boost thread (gpsdrive-2.11-CMakeLists.txt.patch,722 bytes, patch)
2012-06-19 18:06 UTC, Per Pascal Seeland
Details | Diff
Patch for gpsdrive-2.11-r3.ebuild to include patch (gpsdrive-2.11-r3.ebuild.patch,453 bytes, patch)
2012-06-19 18:16 UTC, Per Pascal Seeland
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Juergen Rose 2012-05-27 13:58:55 UTC
'emerge gpsdrive' fails with:
...
Linking CXX executable gpsdrive
cd /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11_build/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/gpsdrive.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-g++   -march=native -O2 -pipe -DBOOST_FILESYSTEM_VERSION=2    -Wl,-O1 -Wl,--as-needed CMakeFiles/gpsdrive.dir/battery.o CMakeFiles/gpsdrive.dir/database.o CMakeFiles/gpsdrive.dir/database_sqlite.o CMakeFiles/gpsdrive.dir/draw_grid.o CMakeFiles/gpsdrive.dir/friends.o CMakeFiles/gpsdrive.dir/geometry.o CMakeFiles/gpsdrive.dir/gpsdrive.o CMakeFiles/gpsdrive.dir/gpsdrive_config.o CMakeFiles/gpsdrive.dir/gps_handler.o CMakeFiles/gpsdrive.dir/gpsmisc.o CMakeFiles/gpsdrive.dir/gpsnasamap.o CMakeFiles/gpsdrive.dir/gui.o CMakeFiles/gpsdrive.dir/gpx.o CMakeFiles/gpsdrive.dir/icons.o CMakeFiles/gpsdrive.dir/import_map.o CMakeFiles/gpsdrive.dir/LatLong-UTMconversion.o CMakeFiles/gpsdrive.dir/main_gui.o CMakeFiles/gpsdrive.dir/map_download.o CMakeFiles/gpsdrive.dir/map_handler.o CMakeFiles/gpsdrive.dir/map_projection.o CMakeFiles/gpsdrive.dir/os_specific.o CMakeFiles/gpsdrive.dir/poi.o CMakeFiles/gpsdrive.dir/poi_gui.o CMakeFiles/gpsdrive.dir/routes.o CMakeFiles/gpsdrive.dir/screenshot.o CMakeFiles/gpsdrive.dir/settings.o CMakeFiles/gpsdrive.dir/settings_gui.o CMakeFiles/gpsdrive.dir/speech.o CMakeFiles/gpsdrive.dir/splash.o CMakeFiles/gpsdrive.dir/track.o CMakeFiles/gpsdrive.dir/unit_test.o CMakeFiles/gpsdrive.dir/waypoint.o CMakeFiles/gpsdrive.dir/database_postgis.o CMakeFiles/gpsdrive.dir/mapnik.o CMakeFiles/gpsdrive.dir/gpskismet.o  -o gpsdrive -rdynamic -lcrypt -lgtk-x11-2.0 -lgdk-x11-2.0 -lglib-2.0 -lxml2 -lsqlite3 -lcurl -lgps -lgdal -lpq -lboost_filesystem-mt-1_49 -lmapnik -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0 
CMakeFiles/gpsdrive.dir/mapnik.o: In function `init_mapnik':
mapnik.cpp:(.text+0x3b56): undefined reference to `vtable for boost::detail::thread_data_base'
mapnik.cpp:(.text+0x3d65): undefined reference to `boost::thread::start_thread()'
mapnik.cpp:(.text+0x3d6d): undefined reference to `boost::thread::~thread()'
CMakeFiles/gpsdrive.dir/mapnik.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(), boost::_bi::list0> >::~thread_data()':
mapnik.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvvENS2_5list0EEEED2Ev[_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvvENS2_5list0EEEED5Ev]+0xf): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
CMakeFiles/gpsdrive.dir/mapnik.o: In function `boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(), boost::_bi::list0> >::~thread_data()':
mapnik.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvvENS2_5list0EEEED0Ev[_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvvENS2_5list0EEEED5Ev]+0x13): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
CMakeFiles/gpsdrive.dir/mapnik.o:(.data.rel.ro._ZTIN5boost6detail11thread_dataINS_3_bi6bind_tIvPFvvENS2_5list0EEEEE[typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(), boost::_bi::list0> >]+0x10): undefined reference to `typeinfo for boost::detail::thread_data_base'
collect2: ld returned 1 exit status
make[2]: *** [src/gpsdrive] Error 1


Reproducible: Always




root@lynx:/usr/local/portage/sci-libs(20)# emerge --info '=app-misc/gpsdrive-2.11-r3'
Portage 2.1.10.63 (default/linux/amd64/10.0/desktop, gcc-4.5.3, glibc-2.15-r2, 3.4.0 x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.4.0-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T8300_@_2.40GHz-with-gentoo-2.1
Timestamp of tree: Sun, 27 May 2012 04:30:01 +0000
app-shells/bash:          4.2_p28
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/cmake:           2.8.8-r2
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.5
sys-devel/binutils:       2.22-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.7.1
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.4 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo lordvan x11 bicatali sage-on-gentoo science dilfridge arcon ibormuth java-overlay proaudio sunrise lisp local x-cpan g-octave
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL dlj-1.1 skype-eula googleearth AdobeFlash-10.3 cadsoft Oracle-BCLA-JavaSE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/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"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo ftp://ftp.easynet.nl/mirror/gentoo/ "
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="de fr"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/lordvan /var/lib/layman/x11 /var/lib/layman/bicatali /var/lib/layman/sage-on-gentoo /var/lib/layman/science /var/lib/layman/dilfridge /var/lib/layman/arcon /var/lib/layman/ibormuth /var/lib/layman/java-overlay /var/lib/layman/pro-audio /var/lib/layman/sunrise /var/lib/layman/lisp /usr/local/portage /var/lib/cpan /var/lib/g-octave"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="64bit R X Xaw3d a52 aac acl acpi admin afs alsa amd64 ao apache2 applet archive arpack asf aspell assistant atlas audacious audiofile automap automount bash-completion berkdb blas blast bluetooth bluray boo boost branding bzip2 cairo cdda cddb cdf cdio cdparanoia cdr cg cgi chm cli consolekit corba cracklib crypt css cuda cups curl cxx daap db dbase dbi dbm dbus declarative designer devhelp device-mapper dga dia dirac djvu doc dri ds2490 ds9097 ds9097u dts dv dvb dvd dvdr dvi dynamicplugin eds egl elf emacs emboss emf encode epiphany evo examples exif expat extensions extra extras faac faad fam ffmpeg fftw firefox fits flac fltk fontconfig foomaticdb fortran fortran95 fpx fts3 fuse g3dvl galago garmin gcj gd gdal gdbm gdu gedit geoip geolocation geos gfortran gif gimp ginac git glade glib glpk gml gmp gmtsuppl gnome gnome-keyring gnome-print gnuplot gnutls gphoto2 gpm grammar graphics graphtft graphviz grass gs gsl gsm gstreamer gtk gudev guile harness hddtemp hdf hdf5 hdri http httpd hvm hwdb iconv icq icu id3 ide imagemagick imap innodb inotify ipod ipv6 irda ithreads jabber jadetex java java6 jbig john jpeg jpeg2k kate kdrive kerberos kpathsea kqemu kvm ladspa lame lapack laptop latex latex3 lcms ldap lensfun libffi libgda libnotify libsamplerate lirc live lua lzo mad mail maildir mapnik math matroska media-library mkl mmx mmxext mng modules mono motif mozilla mp3 mp4 mpeg mpi mplayer mtp mudflap multilib musepack musicbrainz mysql mysqli nautilus ncurses neXt netcdf netpbm network networking networkmanager nfs nls nntp nptl nsplugin ntfs ntp numpy obex objc ocaml ocr octave odbc ogdi ogg ole openexr opengl openmp overview pam pango pcre pda pdf perl plotutils plugins png podcast policykit portaudio posix postgres postscript ppds pppd preview-latex proj projectm projectx pstricks pulseaudio python python-bindings q16 q32 qemu qhull qt3support qt4 quicktime readline reiserfs reports rle romio rpc rrdcgi rrdtool sage samba sasl schroedinger science sdk sdl secure-delete semantic-desktop server session shout sip slang slp smbclient smp sms sndfile snmp soup sox speex spell sql sqlite sse sse2 sse4 ssl ssse3 startup-notification stlport subtitles subversion suexec svg svm swig sysfs szip t1lib tcl tcpd tex tex4ht texmacs tgif theora thinkpad threads thunderbird tidy tiff tk tools truetype udev udisks unicode upower usb userlocales utempter vaapi video virtualbox visio vorbis wav webdav webdav-serf webkit wifi wmf wxwidgets x264 xattr xcb xemacs xetex xext xft xine xml xmlreader xmlrpc xorg xpm xulrunner xv xvid xvmc yaml zlib zvbi" ALSA_CARDS="intel8x0" 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 auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgid dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="canon fuji" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CURL_SSL="nss" DRACUT_MODULES="caps lvm syslog" DVB_CARDS="usb-wt220u" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de fr" NETBEANS_MODULES="apisupport cnd dlight enterprise ergonomics groovy gsf harness ide identity j2ee java mobility nb php profiler ruby websvccommon xml" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nv nouveau vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

app-misc/gpsdrive-2.11-r3 was built with the following:
USE="dbus gdal kismet mapnik (multilib) -debug -scripts -speech"
CFLAGS="-march=native -O2 -pipe -DBOOST_FILESYSTEM_VERSION=2"
CXXFLAGS="-march=native -O2 -pipe -DBOOST_FILESYSTEM_VERSION=2"



root@lynx:/usr/local/portage/sci-libs(21)# emerge -pqv '=app-misc/gpsdrive-2.11-r3'
[ebuild   R   ] app-misc/gpsdrive-2.11-r3  USE="dbus gdal kismet mapnik -debug -scripts -speech"
Comment 1 Juergen Rose 2012-05-27 14:00:55 UTC
Created attachment 313271 [details]
/var/tmp/portage/app-misc/gpsdrive-2.11-r3/temp/build.log
Comment 2 Rafał Mużyło 2012-05-27 22:12:57 UTC
What's your version of boost ?
Are those symbols present in libboost_thread-mt.so ?
(on an of chance: revdep-rebuild after icu upgrade ?)
Comment 3 Juergen Rose 2012-05-28 09:39:17 UTC
boost-1.49.0-r1 is installed:

root@lynx:/root(19)# qlist -Iv boost
app-admin/eselect-boost-0.4
dev-libs/boost-1.49.0-r1
dev-util/boost-build-1.49.0

If I reemerge boost with FEATURES=nostrip, I find anyway the symbol thread_data_base :

root@lynx:/root(18)# nm /usr/lib/libboost_thread-mt.so  | grep thread_data_base
0000000000016a50 W _ZN5boost10shared_ptrINS_6detail16thread_data_baseEE5resetEv
000000000000fd90 T _ZN5boost6detail16thread_data_baseD0Ev
000000000000fbf0 T _ZN5boost6detail16thread_data_baseD1Ev
000000000000fbf0 T _ZN5boost6detail16thread_data_baseD2Ev
00000000000145f0 W _ZN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEE11get_deleterERKSt9type_info
00000000000145d0 W _ZN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEE7disposeEv
0000000000014620 W _ZN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEED0Ev
00000000000145c0 W _ZN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEED1Ev
00000000000145c0 W _ZN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEED2Ev
0000000000010360 T _ZN5boost6detail23set_current_thread_dataEPNS0_16thread_data_baseE
000000000021cb50 V _ZTIN5boost23enable_shared_from_thisINS_6detail16thread_data_baseEEE
000000000021cb20 V _ZTIN5boost6detail16thread_data_baseE
000000000021ce60 V _ZTIN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEEE
00000000000186c0 V _ZTSN5boost23enable_shared_from_thisINS_6detail16thread_data_baseEEE
0000000000018680 V _ZTSN5boost6detail16thread_data_baseE
0000000000018880 V _ZTSN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEEE
000000000021cae0 V _ZTVN5boost6detail16thread_data_baseE
000000000021ce20 V _ZTVN5boost6detail17sp_counted_impl_pINS0_16thread_data_baseEEE

but I don't find vtable:

root@lynx:/root(24)# nm /usr/lib/libboost_thread-mt.so  | grep vtable
root@lynx:/root(25)# 

I run revdep-rebuild every day after doing 'emerge -uvDN world'. Now it finds nothing to reemerge, with except of gpsdrive and osm2pgsql:

root@lynx:/root(25)# genlop -t boost | tail
     Tue Apr 24 19:46:23 2012 >>> dev-libs/boost-1.48.0-r1
       merge time: 30 minutes and 28 seconds.
     Mon May  7 22:17:56 2012 >>> dev-libs/boost-1.49.0-r1
       merge time: 29 minutes and 47 seconds.
     Mon May 28 11:06:38 2012 >>> dev-libs/boost-1.49.0-r1
       merge time: 28 minutes and 42 seconds.

root@lynx:/root(26)# genlop -t icu | tail
     Thu Apr  5 10:54:08 2012 >>> dev-libs/icu-4.8.1.1-r1
       merge time: 2 minutes and 47 seconds.
     Tue Apr 24 10:45:16 2012 >>> dev-libs/icu-49.1.1
       merge time: 3 minutes and 3 seconds.
     Mon May  7 16:37:59 2012 >>> dev-libs/icu-49.1.1-r1
       merge time: 2 minutes and 30 seconds.

root@lynx:/root(27)# genlop -t mapnik | tail
     Tue May  8 03:19:37 2012 >>> sci-geosciences/mapnik-0.7.1-r2
       merge time: 13 minutes and 3 seconds.
     Thu May 10 13:20:32 2012 >>> sci-geosciences/mapnik-0.7.1-r2
       merge time: 12 minutes and 56 seconds.
     Sun May 27 06:50:19 2012 >>> sci-geosciences/mapnik-2.0.1
       merge time: 11 minutes and 45 seconds.

root@lynx:/root(28)# rm /var/cache/revdep-rebuild/*
root@lynx:/root(29)# revdep-rebuild
 * Configuring search environment for revdep-rebuild
...
 * Checking dynamic linking consistency
[ 8% ]  *   broken /usr/bin/gpsdrive (requires libmapnik.so.0.7)
[ 13% ]  *   broken /usr/bin/osm2pgsql (requires libgeos-3.2.2.so)
[ 100% ]                 
 * Generated new 3_broken.rr
...
 * All prepared. Starting rebuild
emerge --complete-graph=y --oneshot   app-misc/gpsdrive:0 sci-geosciences/osm2pgsql:0
Comment 4 Juergen Rose 2012-06-09 14:43:47 UTC
Any news?
Comment 5 Rafał Mużyło 2012-06-09 15:54:48 UTC
Checking for stuff like vtable is best done by 'nm -C -D', but I suspect it's there.

Perhaps it's just simple underlinking ?
Try adding 'thread' in src/CMakeLists.txt in the macro that checks for boost and ${Boost_THREAD_LIBRARY} where filesystem already is.
Comment 6 Juergen Rose 2012-06-09 18:36:30 UTC
Hi Rafał,

with 'nm -C -D' I find vtable:

root@lynx:/root(7)# nm -C -D /usr/lib/libboost_thread-mt.so | grep -i vtable
                 U vtable for __cxxabiv1::__class_type_info
                 U vtable for __cxxabiv1::__si_class_type_info
                 U vtable for __cxxabiv1::__vmi_class_type_info
000000000021cee0 V vtable for boost::lock_error
000000000021d0c0 V vtable for boost::bad_weak_ptr
000000000021d8a0 V vtable for boost::condition_error
000000000021cde0 V vtable for boost::exception_detail::clone_base
000000000021d020 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >
000000000021d200 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_weak_ptr> >
000000000021d9e0 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::condition_error> >
000000000021cd40 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::thread_resource_error> >
000000000021d440 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month> >
000000000021d800 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_year> >
000000000021d620 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::gregorian::bad_month> >
000000000021db60 V vtable for boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >
000000000021cfc0 V vtable for boost::exception_detail::error_info_injector<boost::lock_error>
000000000021d1a0 V vtable for boost::exception_detail::error_info_injector<boost::bad_weak_ptr>
000000000021d980 V vtable for boost::exception_detail::error_info_injector<boost::condition_error>
000000000021ccc0 V vtable for boost::exception_detail::error_info_injector<boost::thread_resource_error>
000000000021d3a0 V vtable for boost::exception_detail::error_info_injector<boost::gregorian::bad_day_of_month>
000000000021d7a0 V vtable for boost::exception_detail::error_info_injector<boost::gregorian::bad_year>
000000000021d5c0 V vtable for boost::exception_detail::error_info_injector<boost::gregorian::bad_month>
000000000021db00 V vtable for boost::exception_detail::error_info_injector<std::runtime_error>
000000000021cbe0 V vtable for boost::thread_exception
000000000021cb60 V vtable for boost::thread_resource_error
000000000021cea0 V vtable for boost::detail::sp_counted_base
000000000021cae0 V vtable for boost::detail::thread_data_base
000000000021ce20 V vtable for boost::detail::sp_counted_impl_p<boost::detail::thread_data_base>
000000000021cd20 V vtable for boost::exception
000000000021d2a0 V vtable for boost::gregorian::bad_day_of_month
000000000021d6c0 V vtable for boost::gregorian::bad_year
000000000021d4e0 V vtable for boost::gregorian::bad_month
                 U vtable for std::logic_error
000000000021d400 V vtable for std::out_of_range
                 U vtable for std::runtime_error



How can I add 'thread' in src/CMakeLists.txt in the macro that checks for boost and ${Boost_THREAD_LIBRARY}?
I found /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11/src/CMakeLists.txt:

root@lynx:/root(8)# grep -C3 -i boost /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11/src/CMakeLists.txt
endif (WITH_POSTGIS)

if (WITH_MAPNIK)
  find_package(Boost COMPONENTS filesystem REQUIRED)
  find_package(Mapnik REQUIRED)
  add_definitions(-DMAPNIK)
endif (WITH_MAPNIK)
--
  ${XML2_INCLUDE_DIRS}
  ${MAPNIK_INCLUDE_DIRS}
  ${FREETYPE2_INCLUDE_DIRS}
  ${Boost_INCLUDE_DIRS}
  ${POSTGRESQL_INCLUDE_DIR}
  ${SQLITE3_INCLUDE_DIRS}
  ${DBUS_INCLUDE_DIRS}
--
  )
  set(GPSDRIVE_LINK_LIBRARIES
    ${GPSDRIVE_LINK_LIBRARIES}
    ${Boost_FILESYSTEM_LIBRARY}
    ${MAPNIK_LIBRARIES}
  )
endif (WITH_MAPNIK)


Where should I add 'thread'?  And if I add something to /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11/src/CMakeLists.txt I am afraid, that the next 'emerge -v1 gpsdrive' will overwrite my changes. Could you please give some additional explanation.

Regards Juergen
Comment 7 Rafał Mużyło 2012-06-09 20:59:36 UTC
OK, sometimes I don't write the whole stuff in one go.
> find_package(Boost COMPONENTS filesystem REQUIRED)
a hint: COMPONENTS is a list
${Boost_THREAD_LIBRARY} goes under ${Boost_FILESYSTEM_LIBRARY}

Obviously, if this works, you'll have a patch for the ebuild.
Comment 8 Juergen Rose 2012-06-10 13:55:14 UTC
I am not familar with cmake. If I understand the cmake man pages correctly, adding 'thread' in src/CMakeLists.txt means to replace the 

   find_package(Boost COMPONENTS filesystem REQUIRED)

line by

  find_package(Boost COMPONENTS filesystem threads REQUIRED)

in /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11/src/CMakeLists.txt. Is this correct? And how can I test this modifikation? I suppose, that 'emerge gpsdrive' will overwrite /var/tmp/portage/app-misc/gpsdrive-2.11-r3/work/gpsdrive-2.11/src/CMakeLists.txt.
Comment 9 Rafał Mużyło 2012-06-10 15:25:54 UTC
Well, given how many times I've seen bugs filed by you, I thought you were already somewhat proficient in adding simple fixes to ebuilds.

Take the old file, make a copy of it, make those two changes to the copy, then 'diff -u <original> <copy> > <patch>', correct the paths in the patch (they should be relative to $(topsrcdir) - compare with other patches), add that patch to files/, add the patch to epatch block in the ebuild, 'ebuild <ebuild> manifest', emerge.

You seem to already have your own overlay.
Comment 10 Per Pascal Seeland 2012-06-19 18:06:51 UTC
Created attachment 315781 [details, diff]
Patch for gpsdrive-2.11-r3 CMakelist.txt to include boost thread

Patch for getting gpsdrive to compile
Comment 11 Per Pascal Seeland 2012-06-19 18:16:10 UTC
Created attachment 315783 [details, diff]
Patch for gpsdrive-2.11-r3.ebuild to include patch
Comment 12 Juergen Rose 2012-06-21 12:26:41 UTC
Thanks Per for the patches,

they are working like a charm. 

@Rafał, sorry for not testing your hints and not answering earlier, I had no time.
Comment 13 Thomas Beutin 2012-07-05 12:50:04 UTC
The patch works for me, too. Thanks!
Comment 14 jannis 2012-11-03 18:00:34 UTC
Can the fixes please comitted to the tree?
Comment 15 Christoph Junghans (RETIRED) gentoo-dev 2012-11-04 17:30:59 UTC
Patch added, thanks for the reminder.