Thursday, 11 June 2020

Ceph build on Centos7

やっぱり、Cetos7 なので苦労しているのですが、

  そもそも C++17 なのでコンパイラが新しくないとだめ
  leveldb の version が合わない

みたいなのがあって、yum で入れても 1.0.7 かなんかで古すぎる。

rpm も stdc++ のversion が合わなくて、そんなものあげたら、いろいろ動かなくなる恐れが。

なのであんまり Linux っぽくないのだが、leveldbb も source から build することに。

で、だいたい動いたんですが...

../lib/libkv.a(LevelDBStore.cc.o):(.data.rel.ro._ZTI17CephLevelDBLogger[_ZTI17CephLevelDBLogger]+0x10): undefined reference to `typeinfo for leveldb::Logger'
collect2: error: ld returned 1 exit status

なにこれ。どうも C++ の RTTI の関係らしい。Runtime type information ですか。leveldb 側が no-rtti で Ceph 側が rtti 。どうする?

あと、

[ 41%] Linking CXX shared library ../../lib/librados.so
collect2: fatal error: ld terminated with signal 11 [Segmentation fault]

SegV はひどいでしょ。

% /usr/bin/ld.bfd --version
GNU ld version 2.27-34.base.el7
Copyright (C) 2016 Free Software Foundation, Inc.

なにそれ。それは古すぎる。とはいえ、落ちるか普通。

というわけで、まだ、しばらく楽しめそうです。来週、読み会なはずです。

No comments: