Skip to content

Commit 9fd8511

Browse files
authored
Fixes glibc++ 5 checking (open-telemetry#3355)
* Fixes glibc++ 5 checking * Always checking `OPENTELEMETRY_TRIVIALITY_TYPE_TRAITS` when `OPENTELEMETRY_STL_VERSION` is defined * Restore confg.h but left a warning
1 parent 7801cd9 commit 9fd8511

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

api/include/opentelemetry/config.h

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@
33

44
#pragma once
55

6-
#ifndef __has_include
7-
# define OPENTELEMETRY_HAS_INCLUDE(x) 0
8-
#else
9-
# define OPENTELEMETRY_HAS_INCLUDE(x) __has_include(x)
10-
#endif
6+
#include <type_traits> // IWYU pragma: keep
117

12-
#if !defined(__GLIBCXX__) || OPENTELEMETRY_HAS_INCLUDE(<codecvt>) // >= libstdc++-5
13-
# define OPENTELEMETRY_TRIVIALITY_TYPE_TRAITS
8+
#if defined(OPENTELEMETRY_ABI_VERSION_NO) && OPENTELEMETRY_ABI_VERSION_NO >= 2
9+
# error \
10+
"opentelemetry/config.h is removed in ABI version 2 and later. Please use opentelemetry/version.h instead."
11+
#else
12+
# if defined(__clang__) || defined(__GNUC__)
13+
# pragma GCC warning \
14+
"opentelemetry/config.h is deprecated. Please use opentelemetry/version.h instead."
15+
# elif defined(_MSC_VER)
16+
# pragma message( \
17+
"[WARNING]: opentelemetry/config.h is deprecated. Please use opentelemetry/version.h instead.")
18+
# endif
1419
#endif

api/include/opentelemetry/nostd/type_traits.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@
1010
# endif
1111
#endif
1212

13+
#include <type_traits>
14+
1315
#if !defined(OPENTELEMETRY_HAVE_STD_TYPE_TRAITS)
1416
# include <array>
15-
# include <type_traits>
1617

17-
# include "opentelemetry/config.h"
1818
# include "opentelemetry/nostd/detail/void.h" // IWYU pragma: export
1919
# include "opentelemetry/version.h"
2020
#endif
2121

22+
#if !defined(__GLIBCXX__) || (defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE >= 7) || \
23+
(defined(__GLIBCXX__) && __GLIBCXX__ >= 20150422) // >= libstdc++-5
24+
# define OPENTELEMETRY_TRIVIALITY_TYPE_TRAITS
25+
#endif
26+
2227
OPENTELEMETRY_BEGIN_NAMESPACE
2328
namespace nostd
2429
{

sdk/include/opentelemetry/sdk_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33

44
#pragma once
55

6-
#include "opentelemetry/config.h"
76
#include "opentelemetry/sdk/common/global_log_handler.h"

0 commit comments

Comments
 (0)