Re: name conflict after upgrade to HEAD.

2016-08-24 Thread Willem Jan Withagen
On 24-8-2016 15:23, Dimitry Andric wrote:
> On 24 Aug 2016, at 12:14, Willem Jan Withagen  wrote:
>>
>> 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.

2016-08-24 Thread Dimitry Andric
On 24 Aug 2016, at 12:14, Willem Jan Withagen  wrote:
> 
> 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.

2016-08-24 Thread Willem Jan Withagen
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"