h-vetinari opened a new issue, #45033: URL: https://github.com/apache/arrow/issues/45033
### Describe the enhancement requested In #44982, I ran into some problems while trying to build arrow against a local opentelemetry on windows. Failure looks as follows ``` [115/935] Building CXX object src\arrow\CMakeFiles\arrow_util_shared.dir\util\thread_pool.cc.obj FAILED: src/arrow/CMakeFiles/arrow_util_shared.dir/util/thread_pool.cc.obj C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1442~1.344\bin\Hostx64\x64\cl.exe /nologo /TP -DABSL_CONSUME_DLL -DARROW_EXPORTING -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DHAVE_ABSEIL -DHAVE_MSGPACK -DOPENTELEMETRY_ABI_VERSION_NO=1 -DPROTOBUF_USE_DLLS -DURI_STATIC_BUILD -DUSE_IMPORT_EXPORT -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -I%SRC_DIR%\cpp\build\src -I%SRC_DIR%\cpp\src -I%SRC_DIR%\cpp\src\generated -external:I%PREFIX%\Library\include -external:W0 /DWIN32 /D_WINDOWS /GR /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /EHsc /wd5105 /bigobj /utf-8 /W3 /wd4800 /wd4996 /wd4065 /O2 /Ob2 /DNDEBUG -std:c++17 -MD /showIncludes /Fosrc\arrow\CMakeFiles\arrow_util_shared.dir\util\thread_pool.cc.obj /Fdsrc\arrow\CMakeFiles\arrow_util_shared.dir\ /FS -c %SRC_DIR%\cpp\src\arrow\util\thread_pool.cc %SRC_DIR%\cpp\src\arrow/util/async_generator.h(1636): warning C4003: not enough arguments for function-like macro invocation 'max' ``` I commented that this might have something to do with `NOMINMAX`; resp. that it only happens when enabling otel-support on windows. Going back further (since I had been trying to [enable](https://github.com/conda-forge/arrow-cpp-feedstock/pull/1048) otel-support for a long time), I had at some point needed the following patch ```diff diff --git a/cpp/src/arrow/util/tracing_internal.h b/cpp/src/arrow/util/tracing_internal.h index 6ed731599..79907cf0c 100644 --- a/cpp/src/arrow/util/tracing_internal.h +++ b/cpp/src/arrow/util/tracing_internal.h @@ -122,13 +122,13 @@ struct Scope { opentelemetry::trace::Scope scope_impl; }; -opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& UnwrapSpan( +ARROW_EXPORT opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& UnwrapSpan( ::arrow::util::tracing::SpanDetails* span); -const opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& UnwrapSpan( +ARROW_EXPORT const opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& UnwrapSpan( const ::arrow::util::tracing::SpanDetails* span); -opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& RewrapSpan( +ARROW_EXPORT opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span>& RewrapSpan( ::arrow::util::tracing::SpanDetails* span, opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span> ot_span); ``` @kou said: > The `ARROW_EXPORT`/`max` problems are that our OpenTelemetry integration doesn't work on Windows. It doesn't depend on bundled opentelemetry-cpp nor system opentelemetry-cpp. So this issue is for making arrow compatible with an existing otel on the system (no problem if this requires a very recent version) ### Component(s) C++, Packaging -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org