Closed perfect7gentleman closed 8 years ago
You have an unclean build problem, most likely.
what do you mean ? 3.3.4 builds fine.
It builds without errors here using libtorrent 1.1.0 (albeit using cmake but not autotools/qmake). Guess you mistyped the version and are using libtorrent 1.1.0 too.
Might it be that you use a qBt build directory where you did build qBt against another libtorrent version and some files are not rebuilt (due to imperfect dependency tracking, for instance)?
of course, 1.1.0. I use Gentoo, and its qbittorrent-9999 ebuild. before yesterday everything was okay.
I'm on Gentoo using live ebuilds too. If Since the build fails in a clean build directory, could you, please, a) try cmake (I can share you an ebuild, if you like), b) let us know your compiler version, and c) share your libtorrent ebuild?
~ $ cat /etc/portage/env/qbittorrent.conf
EXTRA_ECONF="\
--without-qt4 \
--with-boost \
--with-boost-system=mt"
~ $ cat /etc/portage/env/rb_libtorrent.conf
EXTRA_ECONF="\
--enable-largefile \
--enable-dht \
--enable-encryption \
--enable-pool-allocators"
~ $ emerge --info
Portage 2.3.0_rc1 (python 3.5.1-final-0, default/linux/amd64/13.0/desktop/plasma, gcc-5.3.0, glibc-2.23-r2, 4.6.0-gentoo x86_64)
=================================================================
System uname: Linux-4.6.0-gentoo-x86_64-Intel-R-_Core-TM-_i7-4770K_CPU_@_3.50GHz-with-gentoo-2.2
KiB Mem: 16086812 total, 513896 free
KiB Swap: 16777212 total, 16654612 free
sh bash 4.3_p42-r2
ld GNU gold (Gentoo 2.25.1 p1.1 2.25.1) 1.11
distcc 3.2rc1 x86_64-pc-linux-gnu [enabled]
app-shells/bash: 4.3_p42-r2::gentoo
dev-lang/perl: 5.22.2::gentoo
dev-lang/python: 2.7.11-r2::gentoo, 3.5.1-r2::gentoo
dev-util/cmake: 3.5.2::gentoo
dev-util/pkgconfig: 0.29.1::gentoo
sys-apps/baselayout: 2.2::gentoo
sys-apps/openrc: 0.20.5::gentoo
sys-apps/sandbox: 2.10-r2::gentoo
sys-devel/autoconf: 2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake: 1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils: 2.25.1-r1::gentoo
sys-devel/gcc: 5.3.0::gentoo
sys-devel/gcc-config: 1.8-r1::gentoo
sys-devel/libtool: 2.4.6-r2::gentoo
sys-devel/make: 4.1-r1::gentoo
sys-kernel/linux-headers: 4.6::gentoo (virtual/os-headers)
sys-libs/glibc: 2.23-r2::gentoo
Repositories:
gentoo
location: /usr/portage
sync-type: git
sync-uri: git://anongit.gentoo.org/repo/gentoo.git
priority: 1
kde
location: /usr/portage/proj/kde
sync-type: git
sync-uri: git://anongit.gentoo.org/proj/kde.git
masters: gentoo
priority: 3
x11
location: /usr/portage/proj/x11
sync-type: git
sync-uri: git://anongit.gentoo.org/proj/x11.git
masters: gentoo
priority: 3
pg_overlay
location: /usr/local/overlay
sync-type: git
sync-uri: git://github.com/perfect7gentleman/pg_overlay.git
masters: gentoo
priority: 5
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -O2 -pipe -fomit-frame-pointer -fno-stack-protector"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=haswell -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mfma -mbmi -mbmi2 -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mrdrnd -mf16c -mfsgsbase -mfxsr -mxsave -mxsaveopt --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell -O2 -pipe -fomit-frame-pointer -fno-stack-protector"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distcc distcc-pump distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O2 -Wl,--as-needed"
MAKEOPTS="-j25 -l9"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/tmp"
USE="X acl acpi amd64 bash-completion branding bzip2 cairo cli consolekit cracklib custom-cflags cxx dbus declarative dri dts egl exif fam ffmpeg flac fontconfig gif gmp gzip iconv icu introspection jabber jingle jit jpeg kipi lcms libass libnotify lm_sensors lua lzma lzo matroska minimal mmx mmxext mng modules multilib ncurses nls nptl nsplugin ntpl opengl openmp orc pango pcre pdf png policykit ppds pulseaudio qt5 readline seccomp session smp sox spell sse sse2 ssl svg symlink tcmalloc threads tiff truetype udev udisks udisks2 unicode usb v4l vaapi wavpack webkit webp widgets wxwidgets x264 xattr xcb xcomposite xml xmpp xv xvid zlib" ABI_X86="64" ALSA_CARDS="emu10k1" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 cgi cgid 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" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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 ublox ubx" INPUT_DEVICES="roccat_kovaplus roccat_ryosmk" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US ru ru_RU" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python3_5" RUBY_TARGETS="ruby23" USERLAND="GNU" VIDEO_CARDS="intel i965" 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"
USE_PYTHON="3.5"
Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
[ebuild R *] net-p2p/qbittorrent-9999::pg_overlay USE="X dbus qt5 -debug -webui" 0 KiB
[ebuild R ] net-libs/rb_libtorrent-1.1.0::pg_overlay USE="dht ssl -debug -doc -examples -python -static-libs {-test}" PYTHON_TARGETS="python3_5 -python2_7 -python3_4" 0 KiB
except EXTRA_ECONF
and CXXFLAGS
our build environments are equal. However, why do I see Cyrillic compiler error messages in your log while your LANG="en_US.utf8"
?
Cyrillic is maybe of distcc, the other PC uses LANG="ru_RU.utf8"
In the meantime, I did a qmake
build and it was successful.
Cyrillic is maybe of distcc...
Could you make a local build, please?
i've rebuilt rb_libtorrent locally without EXTRA_ECONF, and try to build qbittorrent locally without EXTRA_ECONF, but the same error
Can't see any significant difference between your and my build environments... Could you share build.log
files then, please?
Thank you, libtorrent one too, please.
And the output of
$ nm -D /usr/lib/libtorrent-rasterbar.so | grep wait_for_alert
~ $ nm -D /usr/lib/libtorrent-rasterbar.so | grep wait_for_alert
00000000001c78d0 T _ZN10libtorrent14session_handle14wait_for_alertEN5boost6chrono8durationIlNS1_5ratioILl1ELl1000000000EEEEE
The problem seems to be located.
your: _ZN10libtorrent14session_handle14wait_for_alertEN5boost6chrono8durationIlNS1_5ratioILl1ELl1000000000EEEEE
mine: _ZN10libtorrent14session_handle14wait_for_alertENSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE
With
c++filt:
libtorrent::session_handle::wait_for_alert(boost::chrono::duration<long, boost::ratio<1l, 1000000000l> >)
libtorrent::session_handle::wait_for_alert(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
Try to rebuild adding -std=c++11
to the libtorrent compile flags, please.
And your qBt compilation error shows that it was looking for std::chrono
, which is natural because qbt forces C++11 mode.
thanx, evsh
Same problem, re-building libtorrent with -std=c++11
does not help, I put this at the end of the line CFLAGS in the Makefile of libtorrent build folder.
Is this right ? I don't think so, otherwise it would not have some errors during the Qbittorrent build...
EDIT : Found the error : Need to put -std=c++11
at CXXFLAGS and not CFLAGS, after recompiling libtorrent, just needed to rebuild qBittorrent, and it went fine :)
I'm getting the same error trying to build qbittorrent-3.3.7 against libtorrent-rasterbar-1.1.1. Adding the suggested -std=c++11
to the latter's compiler-flags causes the following error:
libtool: compile: c++ -DPACKAGE_NAME=\"libtorrent-rasterbar\" -DPACKAGE_TARNAME=\"libtorrent-rasterbar\" -DPACKAGE_VERSION=\"1.1.1\" "-DPACKAGE_STRING=\"libtorrent-rasterbar 1.1.1\"" -DPACKAGE_BUGREPORT=\"arvid@libtorrent.org\" -DPACKAGE_URL=\"http://www.libtorrent.org\" -DPACKAGE=\"libtorrent-rasterbar\" -DVERSION=\"1.1.1\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_PTHREAD=1 "-DHAVE_BOOST=/**/" -DHAVE_BOOST_SYSTEM=1 "-DHAVE_BOOST_CHRONO=/**/" "-DHAVE_BOOST_RANDOM=/**/" -DHAVE_CLOCK_GETTIME=1 -DNDEBUG=1 -DTORRENT_DISABLE_LOGGING=1 -DTORRENT_USE_OPENSSL=1 -DHAVE_ICONV=1 -DICONV_CONST= -DBOOST_ASIO_HASH_MAP_BUCKETS=1021 -DBOOST_EXCEPTION_DISABLE=1 -DBOOST_ASIO_ENABLE_CANCELIO=1 -DTORRENT_BUILDING_SHARED=1 -I. -DTORRENT_BUILDING_LIBRARY -I../include -I../ed25519/src -Os -I/usr/include -I/opt/include -std=c++11 -ftemplate-depth=120 -fvisibility=hidden -fvisibility-inlines-hidden -MT kademlia/dht_tracker.lo -MD -MP -MF kademlia/.deps/dht_tracker.Tpo -c kademlia/dht_tracker.cpp -fPIC -DPIC -o kademlia/.libs/dht_tracker.o
In file included from kademlia/dht_tracker.cpp:38:
In file included from ../include/libtorrent/kademlia/node.hpp:41:
In file included from ../include/libtorrent/kademlia/dht_storage.hpp:38:
In file included from /opt/include/boost/function.hpp:64:
In file included from /opt/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:52:
In file included from /opt/include/boost/function/detail/function_iterate.hpp:14:
In file included from /opt/include/boost/function/detail/maybe_include.hpp:18:
/opt/include/boost/function/function_template.hpp:153:33: error: called object type 'nullptr_t' is not a function or function pointer
BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS));
^~~~
/opt/include/boost/function/function_template.hpp:75:36: note: expanded from macro 'BOOST_FUNCTION_RETURN'
# define BOOST_FUNCTION_RETURN(X) X
^
/opt/include/boost/function/function_template.hpp:934:53: note: in instantiation of member function
'boost::detail::function::void_function_obj_invoker1<nullptr_t, void, const std::__1::vector<std::__1::pair<libtorrent::dht::node_entry,
std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::invoke'
requested here
{ { &manager_type::manage }, &invoker_type::invoke };
^
/opt/include/boost/function/function_template.hpp:722:13: note: in instantiation of function template specialization 'boost::function1<void, const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::assign_to<nullptr_t>' requested here
this->assign_to(f);
^
/opt/include/boost/function/function_template.hpp:1069:5: note: in instantiation of function template specialization 'boost::function1<void, const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::function1<nullptr_t>' requested here
base_type(f)
^
kademlia/dht_tracker.cpp:227:26: note: in instantiation of function template specialization 'boost::function<void (const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &)>::function<nullptr_t>' requested here
m_dht.get_peers(ih, f, NULL, false);
^
/usr/include/sys/_null.h:35:14: note: expanded from macro 'NULL'
#define NULL nullptr
^
In file included from kademlia/dht_tracker.cpp:38:
In file included from ../include/libtorrent/kademlia/node.hpp:41:
In file included from ../include/libtorrent/kademlia/dht_storage.hpp:38:
In file included from /opt/include/boost/function.hpp:24:
In file included from /opt/include/boost/function/detail/prologue.hpp:17:
In file included from /opt/include/boost/function/function_base.hpp:29:
In file included from /opt/include/boost/ref.hpp:11:
/opt/include/boost/utility/addressof.hpp:59:12: error: call to 'f' is ambiguous
return boost::detail::addressof_impl<T>::f( boost::detail::addr_impl_ref<T>( v ), 0 );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/include/boost/function/function_template.hpp:601:65: note: in instantiation of function template specialization 'boost::addressof<nullptr_t>'
requested here
if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
^
/opt/include/boost/function/function_template.hpp:492:18: note: in instantiation of function template specialization
'boost::detail::function::basic_vtable1<void, const std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::assign_to<nullptr_t>' requested here
return assign_to(f, functor, tag());
^
/opt/include/boost/function/function_template.hpp:936:25: note: in instantiation of function template specialization
'boost::detail::function::basic_vtable1<void, const std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::assign_to<nullptr_t>' requested here
if (stored_vtable.assign_to(f, functor)) {
^
/opt/include/boost/function/function_template.hpp:722:13: note: in instantiation of function template specialization 'boost::function1<void, const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::assign_to<nullptr_t>' requested here
this->assign_to(f);
^
/opt/include/boost/function/function_template.hpp:1069:5: note: in instantiation of function template specialization 'boost::function1<void, const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &>::function1<nullptr_t>' requested here
base_type(f)
^
kademlia/dht_tracker.cpp:227:26: note: in instantiation of function template specialization 'boost::function<void (const
std::__1::vector<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<libtorrent::dht::node_entry, std::__1::basic_string<char> > > > &)>::function<nullptr_t>' requested here
m_dht.get_peers(ih, f, NULL, false);
^
/usr/include/sys/_null.h:35:14: note: expanded from macro 'NULL'
#define NULL nullptr
^
/opt/include/boost/utility/addressof.hpp:37:23: note: candidate function
static inline T * f( T & v, long )
^
/opt/include/boost/utility/addressof.hpp:43:23: note: candidate function
static inline T * f( T * v, int )
^
2 errors generated.
Using clang-3.4.1 on FreeBSD-10.3 here. Please, advise.
Ok, adding -DBOOST_ASIO_HAS_STD_CHRONO
to the CXXFLAGS
of libtorrent-rasterbar instead of -std=c++11
produces a library, that allows qbittorrent to link. Using it right now.
-std=c++11 solved my problem thank you very much
qbittorrent-git libtorrent-rasterbar-1.10.0