irods / irods_resource_plugin_rados

Cacheless Ceph/rados resource plugin for iRODS
BSD 3-Clause "New" or "Revised" License
7 stars 6 forks source link

system librados incompatibility due to clang/gcc differences #11

Open joergsteinkamp opened 6 years ago

joergsteinkamp commented 6 years ago

Dear maintainer,

We are installing iRODS on Debian Linux. And we want to rely as little as possible external packages. Several packages in the "external" repository are available as standard Debian packages. However, they are compiled with gcc and not clang what makes them incompatible especially with respect to libboost (https://stackoverflow.com/questions/8454329/why-cant-clang-with-libc-in-c0x-mode-link-this-boostprogram-options-examp). Until here, I still could use your "external" software repository, which compile with clang.

Nevertheless, as a backend storage we want to use an existing CEPH storage and have to use the Debian librados, which is compiled with GCC and again this irods_resource_plugin_rados repository here is compiled with clang by default resulting in runtime errors when transfering files (log.txt).

Before I invest more time solving my issue, I'd like to ask if you are you aware of anyone compiling the whole iRODS suits with gcc, which I really would appreciate and if so could you bring me in contact. Or do you plan to provide an external rados package, which will also be compiled with clang?

Thanks and kind regards Jörg

P.S.: Maybe this issue could also be moved to the irods repository.

trel commented 6 years ago

We plan to provide a rados package (built with clang) - we haven't yet only because we have not had time/priority to get it into our continuous integration environment. As soon as that happens, we will have a supported release.

iRODS itself will not build without a modern C++ compiler - and we chose clang a couple years ago as it had the best support for C++14. GCC may now be up to the task, but we have not tried in a while.

I hope this answers your questions?

joergsteinkamp commented 6 years ago

Hi Terrell, thanks, that answers my question. I just managed building my own librados with clang, but it is way to big (due to a lot of static libraries linked in) and I'm using an old version of ceph (10.2.5, that's the version shipped with debian currently). If you are interested in how I did it, you can look it up here: https://seafile.rlp.net/f/5d6d183b9b5847a98409/ and the modified ceph source is here: https://gitlab.rlp.net/iRODS/ceph take the debian branch (https://gitlab.rlp.net/iRODS/ceph/tree/debian). Do you have any approximate plan, how long it would last for the support release? Jörg

trel commented 5 years ago

We received word today of some rados docker containers coming our way. This will fit nicely with our new Docker-based CI. Sorry it's taken so long.