From ee13c732326c75ef3a0a946437f0bc4b65599a29 Mon Sep 17 00:00:00 2001 From: owent Date: Thu, 5 Feb 2026 14:36:34 +0800 Subject: [PATCH 1/4] Fixes deprecated warning --- api/include/opentelemetry/logs/noop.h | 40 ++++++++++++----------- api/include/opentelemetry/logs/provider.h | 31 ++++++++++++++---- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 5e7654ae75..9b46e24f2d 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -91,10 +91,22 @@ class NoopLoggerProvider final : public LoggerProvider }; #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic warning "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic warning "-Wdeprecated-declarations" +# endif + class NoopEventLogger final : public EventLogger { public: NoopEventLogger() : logger_{nostd::shared_ptr(new NoopLogger())} {} + ~NoopEventLogger() override = default; const nostd::string_view GetName() noexcept override { return "noop event logger"; } @@ -112,27 +124,9 @@ class NoopEventLogger final : public EventLogger class NoopEventLoggerProvider final : public EventLoggerProvider { public: -# if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable : 4996) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" -# endif - NoopEventLoggerProvider() : event_logger_{nostd::shared_ptr(new NoopEventLogger())} {} - -# if defined(_MSC_VER) -# pragma warning(pop) -# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) -# pragma GCC diagnostic pop -# elif defined(__clang__) || defined(__apple_build_version__) -# pragma clang diagnostic pop -# endif + ~NoopEventLoggerProvider() override = default; nostd::shared_ptr CreateEventLogger( nostd::shared_ptr /*delegate_logger*/, @@ -144,6 +138,14 @@ class NoopEventLoggerProvider final : public EventLoggerProvider private: nostd::shared_ptr event_logger_; }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index 58f668e041..faf55f06bd 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -48,6 +48,16 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic warning "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic warning "-Wdeprecated-declarations" +# endif /** * Returns the singleton EventLoggerProvider. * @@ -70,6 +80,13 @@ class OPENTELEMETRY_EXPORT Provider std::lock_guard guard(GetLock()); GetEventProvider() = tp; } +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif private: @@ -80,23 +97,24 @@ class OPENTELEMETRY_EXPORT Provider } #if OPENTELEMETRY_ABI_VERSION_NO < 2 - OPENTELEMETRY_DEPRECATED - OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr & - GetEventProvider() noexcept - { # if defined(_MSC_VER) # pragma warning(push) # pragma warning(disable : 4996) # elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) # pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# pragma GCC diagnostic warning "-Wdeprecated-declarations" # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# pragma clang diagnostic warning "-Wdeprecated-declarations" # endif + OPENTELEMETRY_DEPRECATED + OPENTELEMETRY_API_SINGLETON static nostd::shared_ptr & + GetEventProvider() noexcept + { static nostd::shared_ptr provider(new NoopEventLoggerProvider); return provider; + } # if defined(_MSC_VER) # pragma warning(pop) @@ -105,7 +123,6 @@ class OPENTELEMETRY_EXPORT Provider # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic pop # endif - } #endif OPENTELEMETRY_API_SINGLETON static common::SpinLockMutex &GetLock() noexcept From d86b08da6a3c9218e9978e0cfa21a930bf072e60 Mon Sep 17 00:00:00 2001 From: owent Date: Thu, 5 Feb 2026 16:22:14 +0800 Subject: [PATCH 2/4] Enable deprecated warning in logs_foo_library to test deprecated declarations --- .../common/logs_foo_library/CMakeLists.txt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/examples/common/logs_foo_library/CMakeLists.txt b/examples/common/logs_foo_library/CMakeLists.txt index b1173098fd..14b0209bd5 100644 --- a/examples/common/logs_foo_library/CMakeLists.txt +++ b/examples/common/logs_foo_library/CMakeLists.txt @@ -12,3 +12,24 @@ target_include_directories(common_logs_foo_library PUBLIC $) target_link_libraries(common_logs_foo_library PUBLIC opentelemetry-cpp::api) + +# Internal deprecated API calling should not failed the build in maintainer mode +if(OTELCPP_MAINTAINER_MODE) + if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") + get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library + COMPILE_OPTIONS) + list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS + -Wno-error=deprecated-declarations) + set_target_properties( + common_logs_foo_library PROPERTIES COMPILE_OPTIONS + "${COMMON_LOGS_FOO_COMPILE_OPTS}") + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + get_target_property(COMMON_LOGS_FOO_COMPILE_OPTS common_logs_foo_library + COMPILE_OPTIONS) + list(REMOVE_ITEM COMMON_LOGS_FOO_COMPILE_OPTS /wd4996) + list(APPEND COMMON_LOGS_FOO_COMPILE_OPTS /w34996) + set_target_properties( + common_logs_foo_library PROPERTIES COMPILE_OPTIONS + "${COMMON_LOGS_FOO_COMPILE_OPTS}") + endif() +endif() From 2be52f79541e4ff02763c22ff4023145c9e7e9a6 Mon Sep 17 00:00:00 2001 From: owent Date: Thu, 5 Feb 2026 17:26:44 +0800 Subject: [PATCH 3/4] Fixes deprecated declarations warnings --- api/include/opentelemetry/logs/noop.h | 4 ++-- api/include/opentelemetry/logs/provider.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/include/opentelemetry/logs/noop.h b/api/include/opentelemetry/logs/noop.h index 9b46e24f2d..73bf1e57f9 100644 --- a/api/include/opentelemetry/logs/noop.h +++ b/api/include/opentelemetry/logs/noop.h @@ -96,10 +96,10 @@ class NoopLoggerProvider final : public LoggerProvider # pragma warning(disable : 4996) # elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) # pragma GCC diagnostic push -# pragma GCC diagnostic warning "-Wdeprecated-declarations" +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic push -# pragma clang diagnostic warning "-Wdeprecated-declarations" +# pragma clang diagnostic ignored "-Wdeprecated-declarations" # endif class NoopEventLogger final : public EventLogger diff --git a/api/include/opentelemetry/logs/provider.h b/api/include/opentelemetry/logs/provider.h index faf55f06bd..83d2e765de 100644 --- a/api/include/opentelemetry/logs/provider.h +++ b/api/include/opentelemetry/logs/provider.h @@ -53,10 +53,10 @@ class OPENTELEMETRY_EXPORT Provider # pragma warning(disable : 4996) # elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) # pragma GCC diagnostic push -# pragma GCC diagnostic warning "-Wdeprecated-declarations" +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic push -# pragma clang diagnostic warning "-Wdeprecated-declarations" +# pragma clang diagnostic ignored "-Wdeprecated-declarations" # endif /** * Returns the singleton EventLoggerProvider. @@ -102,10 +102,10 @@ class OPENTELEMETRY_EXPORT Provider # pragma warning(disable : 4996) # elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) # pragma GCC diagnostic push -# pragma GCC diagnostic warning "-Wdeprecated-declarations" +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" # elif defined(__clang__) || defined(__apple_build_version__) # pragma clang diagnostic push -# pragma clang diagnostic warning "-Wdeprecated-declarations" +# pragma clang diagnostic ignored "-Wdeprecated-declarations" # endif OPENTELEMETRY_DEPRECATED From cd63f5b2f3684e9ebf32d4b0755a6be800c5fe9c Mon Sep 17 00:00:00 2001 From: owent Date: Thu, 5 Feb 2026 18:15:01 +0800 Subject: [PATCH 4/4] Resolve deprecated warnings in event_logger.h and event_logger_provider.h --- api/include/opentelemetry/logs/event_logger.h | 19 +++++++++++++++++++ .../logs/event_logger_provider.h | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/api/include/opentelemetry/logs/event_logger.h b/api/include/opentelemetry/logs/event_logger.h index 929e97cc2c..dbeffd2042 100644 --- a/api/include/opentelemetry/logs/event_logger.h +++ b/api/include/opentelemetry/logs/event_logger.h @@ -15,6 +15,17 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace logs { #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + /** * Handles event log record creation. **/ @@ -77,6 +88,14 @@ class OPENTELEMETRY_DEPRECATED EventLogger void IgnoreTraitResult(ValueType &&...) {} }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE diff --git a/api/include/opentelemetry/logs/event_logger_provider.h b/api/include/opentelemetry/logs/event_logger_provider.h index 9eea0ca23b..cb3b05dc72 100644 --- a/api/include/opentelemetry/logs/event_logger_provider.h +++ b/api/include/opentelemetry/logs/event_logger_provider.h @@ -15,6 +15,17 @@ class EventLogger; class Logger; #if OPENTELEMETRY_ABI_VERSION_NO < 2 +# if defined(_MSC_VER) +# pragma warning(push) +# pragma warning(disable : 4996) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated-declarations" +# endif + /** * Creates new EventLogger instances. */ @@ -32,6 +43,14 @@ class OPENTELEMETRY_DEPRECATED EventLoggerProvider nostd::shared_ptr delegate_logger, nostd::string_view event_domain) noexcept = 0; }; + +# if defined(_MSC_VER) +# pragma warning(pop) +# elif defined(__GNUC__) && !defined(__clang__) && !defined(__apple_build_version__) +# pragma GCC diagnostic pop +# elif defined(__clang__) || defined(__apple_build_version__) +# pragma clang diagnostic pop +# endif #endif } // namespace logs OPENTELEMETRY_END_NAMESPACE