On Fri, Sep 6, 2019 at 1:56 PM Brad Hubbard <bhubbard@redhat.com> wrote:
On Fri, Sep 6, 2019 at 4:19 PM Amit Ghadge <amitg.b14@gmail.com> wrote:
>
>
> On Fri, Sep 6, 2019 at 11:35 AM Brad Hubbard <bhubbard@redhat.com> wrote:
>>
>> On Thu, Sep 5, 2019 at 10:29 PM Amit Ghadge <amitg.b14@gmail.com> wrote:
>> >
>> > Hi,
>> >
>> > I try to build Ceph v13.2.6 locally and I was clone and checkout with v13.2.6 tag.
>> > I run  ./run-make-check.sh but it's failed. It's shows below error
>> >
>> > [100%] Building CXX object CMakeFiles/rocksdb.dir/env/env_posix.cc.o
>> > [100%] Building CXX object CMakeFiles/rocksdb.dir/env/io_posix.cc.o
>> > Linking CXX static library librocksdb.a
>> > [100%] Built target rocksdb
>> > [  8%] Performing install step for 'rocksdb_ext'
>> > [  8%] Completed 'rocksdb_ext'
>> > [  8%] Built target rocksdb_ext
>> > make[1]: *** [CMakeFiles/tests.dir/rule] Error 2
>> > make: *** [tests] Error 2
>> >
>> > While I try,
>> > $ sudo ./install-deps.sh
>> > $ ./do_cmake.sh
>> > $ cd build
>> > $ make
>> >
>> > It raised below exception,
>> >
>> > In file included from /home/user/my/ceph/ceph/src/common/config.h:24:0,
>> >                  from /home/user/my/ceph/ceph/src/common/dout.h:22,
>> >                  from /home/user/my/ceph/ceph/src/kv/LevelDBStore.h:25,
>> >                  from /home/user/my/ceph/ceph/src/kv/KeyValueDB.cc:6:
>> > /home/user/my/ceph/ceph/src/log/SubsystemMap.h:65:25: error: enclosing class of constexpr non-static member function 'const char* ceph::logging::SubsystemMap::get_name(unsigned int) const' is not a literal type
>> >    constexpr const char* get_name(unsigned subsys) const {
>> >                          ^~~~~~~~
>> > /home/user/my/ceph/ceph/src/log/SubsystemMap.h:19:7: note: 'ceph::logging::SubsystemMap' is not literal because:
>> >  class SubsystemMap {
>> >        ^~~~~~~~~~~~
>> > /home/user/my/ceph/ceph/src/log/SubsystemMap.h:19:7: note:   'ceph::logging::SubsystemMap' has a non-trivial destructor
>> > make[3]: *** [src/kv/CMakeFiles/kv_objs.dir/KeyValueDB.cc.o] Error 1
>> > make[2]: *** [src/kv/CMakeFiles/kv_objs.dir/all] Error 2
>> >
>> > Please help me here to suggest any better way to build ceph.
>>
>> What OS and what compiler are you using?
>>
>
> I'm using gcc compiler and running on CentOS7.6,
>
> [user@cetos7 ~]$ gcc -v
> Using built-in specs.
> COLLECT_GCC=/usr/local/bin/gcc
> COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.1.0/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: ../gcc-7.1.0/configure --enable-languages=c,c++ --disable-multilib
> Thread model: posix
> gcc version 7.1.0 (GCC)
>
> [user@cetos7 ~]$ cat /etc/redhat-release
> CentOS Linux release 7.6.1810 (Core)

# scl enable devtoolset-7 bash
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
# gcc --version|head -1
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
# git describe
v13.2.6
# ./install-deps.sh
# ./do_cmake.sh
# cd build
# make -j8 all
...
Scanning dependencies of target radosgw
[100%] Building CXX object src/rgw/CMakeFiles/radosgw.dir/rgw_main.cc.o
Linking CXX executable ../../bin/radosgw
[100%] Built target radosgw
Linking CXX executable ../bin/ceph-dencoder
[100%] Built target ceph-dencoder

So working fine here on a new container with a freshly cloned repo.

What you can try is cloning another copy of the ceph repo and see if
that builds properly. If it does you can go back to your original
clone (the one you are having problems with) and try running the
following commands. you can also try the newer compiler that comes
with devtoolset-7.

$ scl enable devtoolset-7 bash
$ git submodule update --init --recursive
$ git clean -fdx
$ git submodule foreach git clean -fdx
$ ./install-deps.sh
$ ./do_cmake.sh
$ cd build
$ make


Finally, it's Success. Thank you Brad, build is success by adding extra step,
scl enable devtoolset-7 bash

>>
>> >
>> >
>> > Thanks,
>> > Amit G
>> >
>> >
>> >
>> > _______________________________________________
>> > Dev mailing list -- dev@ceph.io
>> > To unsubscribe send an email to dev-leave@ceph.io
>>
>>
>>
>> --
>> Cheers,
>> Brad



--
Cheers,
Brad