DataDog / dd-trace-php

Datadog PHP Clients

Home Page:https://docs.datadoghq.com/tracing/setup/php

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug]: 0.94.0 build failure

remicollet opened this issue · comments

Bug report

For ZTS builds:

libtool: link:  gcc -shared  -fPIC -DPIC  components/container_id/.libs/container_id.o components/log/.libs/log.o components/sapi/.libs/sapi.o components/string_view/.libs/string_view.o zend_abstract_interface/interceptor/php8/.libs/interceptor.o zend_abstract_interface/interceptor/php8/.libs/resolver.o zend_abstract_interface/jit_utils/.libs/jit_blacklist.o zend_abstract_interface/sandbox/php8/.libs/sandbox.o zend_abstract_interface/config/.libs/config.o zend_abstract_interface/config/.libs/config_decode.o zend_abstract_interface/config/.libs/config_ini.o zend_abstract_interface/config/.libs/config_runtime.o zend_abstract_interface/env/.libs/env.o zend_abstract_interface/exceptions/.libs/exceptions.o zend_abstract_interface/headers/.libs/headers.o zend_abstract_interface/hook/.libs/hook.o zend_abstract_interface/json/.libs/json.o zend_abstract_interface/symbols/.libs/lookup.o zend_abstract_interface/symbols/.libs/call.o zend_abstract_interface/uri_normalization/.libs/uri_normalization.o zend_abstract_interface/zai_string/.libs/string.o ext/vendor/mpack/.libs/mpack.o ext/vendor/mt19937/.libs/mt19937-64.o src/dogstatsd/.libs/client.o ext/.libs/handlers_curl.o ext/hook/.libs/uhook_attributes.o ext/.libs/handlers_fiber.o ext/.libs/ddtrace.o ext/.libs/arrays.o ext/.libs/auto_flush.o ext/.libs/circuit_breaker.o ext/.libs/comms_php.o ext/.libs/compat_string.o ext/.libs/coms.o ext/.libs/configuration.o ext/.libs/ddshared.o ext/.libs/distributed_tracing_headers.o ext/.libs/dogstatsd_client.o ext/.libs/engine_api.o ext/.libs/engine_hooks.o ext/.libs/excluded_modules.o ext/.libs/handlers_api.o ext/.libs/handlers_exception.o ext/.libs/handlers_internal.o ext/.libs/handlers_pcntl.o ext/integrations/.libs/integrations.o ext/.libs/ip_extraction.o ext/.libs/logging.o ext/.libs/memory_limit.o ext/limiter/.libs/limiter.o ext/priority_sampling/.libs/priority_sampling.o ext/.libs/profiling.o ext/.libs/random.o ext/.libs/request_hooks.o ext/.libs/serializer.o ext/.libs/sidecar.o ext/.libs/signals.o ext/.libs/span.o ext/.libs/startup_logging.o ext/.libs/telemetry.o ext/tracer_tag_propagation/.libs/tracer_tag_propagation.o ext/hook/.libs/uhook.o ext/hook/.libs/uhook_legacy.o   -lcurl -lrt -lm /dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/ZTS/target/tracer-release/libddtrace_php.a  -O2 -flto=auto -g -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -mno-omit-leaf-frame-pointer -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -flto -fuse-linker-plugin   -pthread -Wl,-soname -Wl,ddtrace.so -Wl,-version-script -Wl,.libs/ddtrace.ver -o .libs/ddtrace.so
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.h:115:46: error: '_tsrm_ls_cache' is defined with tls model local-dynamic
  115 | extern __thread void *ATTR_TLS_LOCAL_DYNAMIC TSRMLS_CACHE;
      |                                              ^
/dev/shm/BUILD/php-pecl-datadog-trace-0.94.0/datadog_trace-0.94.0/ext/ddtrace.c:113:16: note: previously defined here as global-dynamic
  113 | TSRM_TLS void *TSRMLS_CACHE = NULL;
      |                ^
lto-wrapper: fatal error: gcc returned 1 exit status
compilation terminated.

PHP version

8.2.12

Tracer or profiler version

0.94.0

Installed extensions

No response

Output of phpinfo()

No response

Upgrading from

No response

Disabling LTO is a workaround

Notice: LTO is enabled by default in some distributions (Fedora, RHEL...)

Does just adding it work as well like this?
d73e1a3

At least I don't know whether the compiler complains about the attribute, or the attribute missing on the definition in .c file?

Same error with linked patch

@remicollet Can you check if #2383 fixes the problem?

Closing given #2383 has been merged - thanks Remi!