Project

General

Profile

Bug #40295

Updated by Nathan Cutler almost 2 years ago

The following FTBFS happens on ppc64le in the OpenSUSE Build Service:

<pre>
[11025s] Install the project...
[11025s] -- Install configuration: "RelWithDebInfo"
[11025s] -- Installing: /home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/lib64/ceph/libceph-common.so.0
[11026s] -- Installing: /home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/librados-config
[11026s] -- Set runtime path of "/home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/librados-config" to "/usr/lib64/ceph"
[11026s] -- Installing: /home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/ceph-mon
[11026s] -- Set runtime path of "/home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/ceph-mon" to "/usr/lib64/ceph"
[11026s] -- Installing: /home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/ceph-osd
[11027s] CMake Error at src/cmake_install.cmake:114 (file):
[11027s] file RPATH_CHANGE could not write new RPATH:
[11027s]
[11027s] /usr/lib64/ceph
[11027s]
[11027s] to the file:
[11027s]
[11027s] /home/abuild/rpmbuild/BUILDROOT/ceph-15.0.0-1758.1.ppc64le/usr/bin/ceph-osd
[11027s]
[11027s] No valid ELF RPATH or RUNPATH entry exists in the file;
[11027s] Call Stack (most recent call first):
[11027s] cmake_install.cmake:42 (include)
[11027s]
[11027s]
[11027s] make: *** [Makefile:84: install] Error 1
[11027s] error: Bad exit status from /var/tmp/rpm-tmp.z1SU5B (%install)
[11027s]
[11027s]
[11027s] RPM build errors:
[11027s] Bad exit status from /var/tmp/rpm-tmp.z1SU5B (%install)
[11028s]
</pre>

Though Ceph is not at fault here, we can easily work around the issue.

I would argue that adding the workaround is the correct course of action, because it preserves the ability to build master on ppc64le in the OBS.

Note that we have this same workaround in place for a number of other binaries:

<pre>
smithfarm@wilbur:~/src/ceph/smithfarm/ceph/src> ag RPATH
compressor/snappy/CMakeLists.txt
12: INSTALL_RPATH "")

compressor/zlib/CMakeLists.txt
46: INSTALL_RPATH "")

compressor/zstd/CMakeLists.txt
42: INSTALL_RPATH "")

compressor/lz4/CMakeLists.txt
12: INSTALL_RPATH "")

tracing/CMakeLists.txt
40: INSTALL_RPATH "")

cls/CMakeLists.txt
10: INSTALL_RPATH ""
20: INSTALL_RPATH ""
30: INSTALL_RPATH ""
45: INSTALL_RPATH ""
61: INSTALL_RPATH ""
80: INSTALL_RPATH ""
101: INSTALL_RPATH ""
117: INSTALL_RPATH ""
133: INSTALL_RPATH ""
147: INSTALL_RPATH ""
161: INSTALL_RPATH ""
180: INSTALL_RPATH ""
202: INSTALL_RPATH ""
222: INSTALL_RPATH ""
240: INSTALL_RPATH ""
258: INSTALL_RPATH ""

erasure-code/isa/CMakeLists.txt
66: INSTALL_RPATH "")

erasure-code/jerasure/CMakeLists.txt
91: INSTALL_RPATH "")
100: INSTALL_RPATH "")

erasure-code/lrc/CMakeLists.txt
13: INSTALL_RPATH "")

erasure-code/shec/CMakeLists.txt
21: INSTALL_RPATH "")
30: INSTALL_RPATH "")

erasure-code/clay/CMakeLists.txt
13: INSTALL_RPATH "")

mount/CMakeLists.txt
7: INSTALL_RPATH "")

key_value_store/CMakeLists.txt
6: INSTALL_RPATH "")

CMakeLists.txt
11:set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
12:if(NOT CMAKE_INSTALL_RPATH)
13: set(CMAKE_INSTALL_RPATH "${CEPH_INSTALL_FULL_PKGLIBDIR}")
405: INSTALL_RPATH "")
517: INSTALL_RPATH "")
</pre>

Back