-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ceph.spec.in: bump gcc-toolset to 13 and use it on rhel>=8 #55886
Commits on Mar 11, 2024
-
ceph.spec.in: use gts_version instead of gts_prefix
since we are going to use different gcc-toolset versions on rhel8 and on rhel9, and the subpackage names of gcc-toolset changed across gts 11 and gts 13, let's prepare for this change. Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for c8e37d1 - Browse repository at this point
Copy the full SHA c8e37d1View commit details -
ceph.spec.in: set
CMAKE_EXE_LINKER_FLAGS
to-lstdc++
because the gcc-toolset-13 always links against the `libstdc++_nonshared.a`, which misses the simple symbols. so we have to link against libstdc++ explicitly to assure that the executables have access to them when compiling with the gcc-toolset toolchain. see ``` /opt/rh/gcc-toolset-13/root/usr/bin/c++ -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic -pie CMakeFiles/ceph_scratchtool.dir/scratchtool.c.o -o ../../bin/ceph_scratchtool -Wl,-rpath,/home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos9/DIST/centos9/MACHINE_SIZE/gigantic/release/19.0.0-1977-gb0c1f7e8/rpm/el9/BUILD/ceph-19.0.0-1977-gb0c1f7e8/redhat-linux-build/lib: ../../lib/librados.so.2.0.0 ../../lib/libglobal.a ../../lib/libceph-common.so.2 ../../lib/libjson_spirit.a ../../lib/libcommon_utf8.a ../../lib/liberasure_code.a ../../lib/libextblkdev.a -lcap ../../boost/lib/libboost_thread.a ../../boost/lib/libboost_chrono.a ../../boost/lib/libboost_atomic.a ../../boost/lib/libboost_system.a ../../boost/lib/libboost_random.a ../../boost/lib/libboost_program_options.a ../../boost/lib/libboost_date_time.a ../../boost/lib/libboost_iostreams.a ../../boost/lib/libboost_regex.a /usr/lib64/libblkid.so /usr/lib64/libcrypto.so /usr/lib64/libudev.so /usr/lib64/libibverbs.so /usr/lib64/librdmacm.so /usr/lib64/libz.so ../opentelemetry-cpp/sdk/src/trace/libopentelemetry_trace.a ../opentelemetry-cpp/sdk/src/resource/libopentelemetry_resources.a ../opentelemetry-cpp/sdk/src/common/libopentelemetry_common.a ../opentelemetry-cpp/exporters/jaeger/libopentelemetry_exporter_jaeger_trace.a ../opentelemetry-cpp/ext/src/http/client/curl/libopentelemetry_http_client_curl.a /usr/lib64/libcurl.so /usr/lib64/libthrift.so -ldl /usr/lib64/librt.a -lresolv -Wl,--as-needed -latomic /opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld: /opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/libstdc++_nonshared.a(ios_init.o): undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4' /opt/rh/gcc-toolset-13/root/usr/libexec/gcc/x86_64-redhat-linux/13/ld: /usr/lib64/libstdc++.so.6: error adding symbols: DSO missing from command line ``` this change prepares us for switching to gts-13. Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for f5f2e4c - Browse repository at this point
Copy the full SHA f5f2e4cView commit details -
ceph.spec.in: disable lto to work around gcc-toolset-13 linker bug
gcc-toolset-13 lto can trigger a linker bug resulting in a segfault in SafeTimer (and perhaps elsewhere). See https://tracker.ceph.com/issues/63867 for details. This patch disables lto for now now so that we can switch to gcc-toolset-13. Fixes: https://tracker.ceph.com/issues/63867 Signed-off-by: Samuel Just <sjust@redhat.com>
Configuration menu - View commit details
-
Copy full SHA for a164f5f - Browse repository at this point
Copy the full SHA a164f5fView commit details -
ceph.spec.in: use gcc-toolset 13 for crimson build
since gts 13 is out, and GCC-13 brings better support of C++20 coroutines, and because clang prefers using a newer gts when its gcc is around. so let's bump up the gcc-toolset from 11 to 13 when building crimson. because gcc-toolset-13 LTO triggers a linker bug resulting in a segfault in SafeTimer, see https://tracker.ceph.com/issues/63867 , we cannot switch the classic build to gts 13 without proving that it does not incur performance regressions. since annobin plugin package was renamed to gcc-toolset-13-gcc-plugin-annobin, let's update its name accordingly. and use -runtime subpackage instead of -build, as macros.gcc-toolset-13-enable is now located in -runtime subpackage since devtoolset12 Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 55da694 - Browse repository at this point
Copy the full SHA 55da694View commit details -
ceph.spec.in: use gcc-toolset when with seastar or rhel 8
both RHEL8 and RHEL9 have gcc-toolset 13, and we need to use gts-13 for building crimson, so let's enable it when building crimson, and we need to use gts-11 when building on RHEL7. hence this change. Signed-off-by: Kefu Chai <tchaikov@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 913d127 - Browse repository at this point
Copy the full SHA 913d127View commit details