google-cloud-cpp
google-cloud-cpp copied to clipboard
Upgrade builds to Fedora:39
We need to upgrade the following files to use Fedora:39
- [x]
ci/cloudbuild/dockerfiles/fedora-latest-bazel.Dockerfile - [x]
ci/cloudbuild/dockerfiles/fedora-latest-cmake.Dockerfile - [x]
ci/cloudbuild/dockerfiles/fedora-latest-cxx14.Dockerfile - [x]
ci/cloudbuild/dockerfiles/fedora-latest-cxx20.Dockerfile - [x]
ci/cloudbuild/dockerfiles/fedora-latest-m32.Dockerfile - [ ]
ci/cloudbuild/dockerfiles/fedora-latest-publish-docs.Dockerfile - [x]
ci/cloudbuild/dockerfiles/fedora-latest-msan.Dockerfile
m32 is currently blocked because OpenTelemetry does not build.
For the m32 build. It seems the std::to_string(double) overload is missing with 32-bits:
echo '#include <string>' | g++ -m32 -x c++ -E - | grep to_string
_S_to_string_view(__sv_type __svt) noexcept
: basic_string(_S_to_string_view(__t).substr(__pos, __n), __a) { }
: basic_string(__sv_wrapper(_S_to_string_view(__t)), __a) { }
to_string(int __val)
to_string(unsigned __val)
to_string(long __val)
to_string(unsigned long __val)
to_string(long long __val)
to_string(unsigned long long __val)
echo '#include <string>' | g++ -x c++ -E - | grep to_string
_S_to_string_view(__sv_type __svt) noexcept
: basic_string(_S_to_string_view(__t).substr(__pos, __n), __a) { }
: basic_string(__sv_wrapper(_S_to_string_view(__t)), __a) { }
to_string(int __val)
to_string(unsigned __val)
to_string(long __val)
to_string(unsigned long __val)
to_string(long long __val)
to_string(unsigned long long __val)
to_string(float __val)
to_string(double __val)
to_string(long double __val)
I tracked this down to a missing #define in one of the configuration files:
find /usr/include/c++/13 -type f | xargs grep _GLIBCXX11_USE_C99_STDIO
/usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h:# define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO
/usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h:/* #undef _GLIBCXX11_USE_C99_STDIO */
/usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h:# define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO
/usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h:#define _GLIBCXX11_USE_C99_STDIO 1
/usr/include/c++/13/x86_64-redhat-linux/32/bits/c++config.h:# define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO
/usr/include/c++/13/x86_64-redhat-linux/32/bits/c++config.h:/* #undef _GLIBCXX11_USE_C99_STDIO */
It would be nice if we could write a simple repro and file a bug with Fedora (or GCC?)
https://bugzilla.redhat.com/show_bug.cgi?id=2249136