The oldest gcc version that gRPC supports as of today is gcc 7 but gcc 7 has an issue with template supports that gRPC already picked up. Recently we managed to fix it in gRPC library code but we still have some in our test code. Given that it's not easy to fix since it requires many trial error approach to find a way to satisfy gcc 7 and eventually gcc 7 will be dropped from our supported compilers, let's have this mitigation where just main grpc++ target is being tested for gcc 7 so that users can use grpc with it without having to fix this hairy issue.
Fixes https://github.com/grpc/grpc/issues/36751Closes#37257
PiperOrigin-RevId: 654076384
Along with the fix, some code massage had to be made to resolve C++23 unique_ptr incomplete type errors.
Closes#37096
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37096 from veblush:fix-cxx 20199cad7e
PiperOrigin-RevId: 651443290
Ref: b/332425004
Adding a workaround for x86 builds that run into trouble with using an installed abseil library.
Closes#36220
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36220 from yashykt:FixPortabilityLinux 672ccdb3ff
PiperOrigin-RevId: 621259080
Earlier, the tests just had bazel support. With CMake support added in #36063, we can also add CI CMake support for the tests. A major benefit of this is that we also get coverage for the various platforms that we test from our portability test suite.
Closes#36087
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36087 from yashykt:OTelCISupport b28fbe02e5
PiperOrigin-RevId: 615543685
* only support cmake for CLanguage in run_tests.py
* add support for run_tests.py build step environ
* switch C/C++ run_tests.py build to build_cxx script
* CLanguage cleanup
* build C# entirely with build_csharp script
* move entire PHP build to build_php.sh
* fixup C# build on linux and mac
* run_dep_checks Makefile target is deprecated
* get rid of the "makefile" logic in run_tests.py
* fixup C# build on linux and mac
* XML_REPORT env variable is useless for --use_docker runs
* add a TODO
* move "main" functionality towards end of run_tests.py
* use self.args instead of global
* yapf format
* remove the no longer useful --update_submodules features of run_tests.py
* fix check_epollexclusive check in run_tests.py