Re: name conflict after upgrade to HEAD.
On 24 Aug 2016, at 16:30, Willem Jan Withagenwrote: > > On 24-8-2016 15:23, Dimitry Andric wrote: ... >> Can you show the full command line used to build the offending source >> file? Usually this is caused by an incorrect include directory search >> order. And most often, that is caused by build systems inserting >> -isystem into compile command lines. > > This is the full output of the failing compile > > --WjW > > [ 3%] Building CXX object > src/CMakeFiles/common.dir/common/perf_counters.cc.o > cd /home/wjw/ceph/build/src && /usr/bin/CC > -DCEPH_LIBDIR=\"/usr/local/lib\" > -DCEPH_PKGLIBDIR=\"/usr/local/lib/ceph\" > -I/home/wjw/ceph/build/src/include -I/home/wjw/ceph/src > -I/usr/local/include -I/home/wjw/ceph/build/include > -I/home/wjw/ceph/src/xxHash -Wall -Wtype-limits -Wignored-qualifiers > -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing > -fsigned-char -Wno-inconsistent-missing-override -Wno-mismatched-tags > -Wno-unused-function -Wno-unused-local-typedef > -Wno-inconsistent-missing-override -Wno-unused-private-field > -Wno-varargs -Wno-gnu-designator -Wno-mismatched-tags > -Wno-missing-braces -Wno-parentheses -Wno-deprecated-register > -ftemplate-depth-1024 -Wno-invalid-offsetof -Wnon-virtual-dtor > -Wno-overloaded-virtual -fdiagnostics-color=auto > -I/usr/local/include/nss/nss -I/usr/local/include/nspr > -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc > -fno-builtin-free -O0 -g -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT > -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -std=c++11 -o > CMakeFiles/common.dir/common/perf_counters.cc.o -c > /home/wjw/ceph/src/common/perf_counters.cc > In file included from /home/wjw/ceph/src/common/perf_counters.cc:17: > In file included from /home/wjw/ceph/src/common/perf_counters.h:21: > In file included from /home/wjw/ceph/src/include/utime.h:18: > /usr/include/c++/v1/math.h:845:37: error: reference to 'log' is ambiguous > log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} >^ > /usr/include/c++/v1/math.h:845:1: note: candidate found by name lookup > is 'log' > log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} > ^ > /usr/include/c++/v1/math.h:839:46: note: candidate found by name lookup > is 'log' > inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) > _NOEXCEPT {return logl(__lcpp_x);} > ^ > /usr/include/c++/v1/math.h:838:46: note: candidate found by name lookup > is 'log' > inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) > _NOEXCEPT {return logf(__lcpp_x);} > ^ > /usr/include/math.h:247:8: note: candidate found by name lookup is 'log' > double log(double); >^ > /home/wjw/ceph/src/common/ceph_context.h:44:13: note: candidate found by > name lookup is 'ceph::log' > namespace log { >^ Okay, no -isystem options there. So that's not it. Now I'm assuming this is because the original .cc file includes , which imports a global "log" symbol. Can you try changing that include to ? However, this could require prefixing some math function calls with std::. -Dimitry signature.asc Description: Message signed with OpenPGP using GPGMail
Re: name conflict after upgrade to HEAD.
On 24-8-2016 15:23, Dimitry Andric wrote: > On 24 Aug 2016, at 12:14, Willem Jan Withagenwrote: >> >> While compile Ceph source code I run into this conflict of the usuage of >> 'log' >> >> Now I've fixed it by prefixing the log with ::log on line 845. >> Which works for me, but I'm pretty sure that that is not the best solution. > ... >> >> In file included from /usr/include/c++/v1/cmath:301: >> /usr/include/c++/v1/math.h:845:37: error: reference to 'log' is ambiguous >> log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} > > Can you show the full command line used to build the offending source > file? Usually this is caused by an incorrect include directory search > order. And most often, that is caused by build systems inserting > -isystem into compile command lines. Hi Dimitry, This is the full output of the failing compile --WjW [ 3%] Building CXX object src/CMakeFiles/common.dir/common/perf_counters.cc.o cd /home/wjw/ceph/build/src && /usr/bin/CC -DCEPH_LIBDIR=\"/usr/local/lib\" -DCEPH_PKGLIBDIR=\"/usr/local/lib/ceph\" -I/home/wjw/ceph/build/src/include -I/home/wjw/ceph/src -I/usr/local/include -I/home/wjw/ceph/build/include -I/home/wjw/ceph/src/xxHash -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -Wno-inconsistent-missing-override -Wno-mismatched-tags -Wno-unused-function -Wno-unused-local-typedef -Wno-inconsistent-missing-override -Wno-unused-private-field -Wno-varargs -Wno-gnu-designator -Wno-mismatched-tags -Wno-missing-braces -Wno-parentheses -Wno-deprecated-register -ftemplate-depth-1024 -Wno-invalid-offsetof -Wnon-virtual-dtor -Wno-overloaded-virtual -fdiagnostics-color=auto -I/usr/local/include/nss/nss -I/usr/local/include/nspr -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -O0 -g -fPIC -DHAVE_CONFIG_H -D__CEPH__ -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -std=c++11 -o CMakeFiles/common.dir/common/perf_counters.cc.o -c /home/wjw/ceph/src/common/perf_counters.cc In file included from /home/wjw/ceph/src/common/perf_counters.cc:17: In file included from /home/wjw/ceph/src/common/perf_counters.h:21: In file included from /home/wjw/ceph/src/include/utime.h:18: /usr/include/c++/v1/math.h:845:37: error: reference to 'log' is ambiguous log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} ^ /usr/include/c++/v1/math.h:845:1: note: candidate found by name lookup is 'log' log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} ^ /usr/include/c++/v1/math.h:839:46: note: candidate found by name lookup is 'log' inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return logl(__lcpp_x);} ^ /usr/include/c++/v1/math.h:838:46: note: candidate found by name lookup is 'log' inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return logf(__lcpp_x);} ^ /usr/include/math.h:247:8: note: candidate found by name lookup is 'log' double log(double); ^ /home/wjw/ceph/src/common/ceph_context.h:44:13: note: candidate found by name lookup is 'ceph::log' namespace log { ^ 1 error generated. gmake[2]: *** [src/CMakeFiles/common.dir/build.make:208: src/CMakeFiles/common.dir/common/perf_counters.cc.o] Error 1 gmake[2]: Leaving directory '/usr/srcs/Ceph/work/ceph/build' gmake[1]: *** [CMakeFiles/Makefile2:380: src/CMakeFiles/common.dir/all] Error 2 gmake[1]: Leaving directory '/usr/srcs/Ceph/work/ceph/build' gmake: *** [Makefile:139: all] Error 2 235.883u 5.236s 4:01.13 99.9% 129523+964k 642+267342io 8646pf+0w Exit 2 ___ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"
Re: name conflict after upgrade to HEAD.
On 24 Aug 2016, at 12:14, Willem Jan Withagenwrote: > > While compile Ceph source code I run into this conflict of the usuage of > 'log' > > Now I've fixed it by prefixing the log with ::log on line 845. > Which works for me, but I'm pretty sure that that is not the best solution. ... > > In file included from /usr/include/c++/v1/cmath:301: > /usr/include/c++/v1/math.h:845:37: error: reference to 'log' is ambiguous > log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} Can you show the full command line used to build the offending source file? Usually this is caused by an incorrect include directory search order. And most often, that is caused by build systems inserting -isystem into compile command lines. -Dimitry signature.asc Description: Message signed with OpenPGP using GPGMail
name conflict after upgrade to HEAD.
Hi, While compile Ceph source code I run into this conflict of the usuage of 'log' Now I've fixed it by prefixing the log with ::log on line 845. Which works for me, but I'm pretty sure that that is not the best solution. Why is this al of a sudden a problem? The log namespace has been in Ceph for a long time. The original namespace block looks like: namespace ceph { class PluginRegistry; class HeartbeatMap; namespace log { class Log; } } So where does this conflict come from? --WjW This is FreeBSD Revision: 304572 and clang: FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0) Target: x86_64-unknown-freebsd12.0 Thread model: posix InstalledDir: /usr/bin In file included from /usr/include/c++/v1/cmath:301: /usr/include/c++/v1/math.h:845:37: error: reference to 'log' is ambiguous log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} ^ /usr/include/c++/v1/math.h:845:1: note: candidate found by name lookup is 'log' log(_A1 __lcpp_x) _NOEXCEPT {return log((double)__lcpp_x);} ^ /usr/include/c++/v1/math.h:839:46: note: candidate found by name lookup is 'log' inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return logl(__lcpp_x);} ^ /usr/include/c++/v1/math.h:838:46: note: candidate found by name lookup is 'log' inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return logf(__lcpp_x);} ^ /usr/include/math.h:247:8: note: candidate found by name lookup is 'log' double log(double); ^ /home/wjw/ceph/src/common/ceph_context.h:44:13: note: candidate found by name lookup is 'ceph::log' namespace log { ^ ___ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"