[regression from 6.0.2] LLVM crash when building OpenCV's color_lab.cpp

Abierto
#27,358 5 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
cpp, wasm
Área
compilers

Línea de trabajo

Comienza reproduciendo el fallo con el comando del compilador WebAssembly indicado y con modules/imgproc/src/color_lab.cpp de OpenCV, comparando Emscripten 6.0.2 con la versión anterior que compila correctamente. Investiga el fallo de selección de instrucciones WebAssembly en la función indicada; se considera terminado cuando el mismo código fuente y las mismas opciones del compilador compilan sin un fallo de LLVM.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Clang stack trace:

0.	Program arguments: /Users/dodo/Library/Caches/bazel/_bazel_dodo/d37a55ce2ed2abf9c807bae8c8d24add/sandbox/darwin-sandbox/2141/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin/clang -target wasm32-unknown-emscripten -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-cxx-exceptions -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --sysroot=external/emsdk++emscripten_cache+emscripten_cache/cache/sysroot --sysroot=external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/emscripten/cache/sysroot -fdiagnostics-color -fexceptions -fno-strict-aliasing -funsigned-char -no-canonical-prefixes -std=gnu++17 -nostdinc -nostdinc++ -msimd128 -fomit-frame-pointer -O0 -Wall -DCV_WASM_SIMD=1 -iquote external/opencv+ -iquote bazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+ -iquote external/zlib+ -iquote bazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/zlib+ -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/imgproc -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/core -Iexternal/zlib+/zlib/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/zlib+/zlib/include -Iexternal/opencv+/opencv2 -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/opencv2 -Iexternal/opencv+/private -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/private -Iexternal/opencv+/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/include -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/geometry -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/flann -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/imgproc_generated_simd_headers -Ibazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_virtual_includes/imgproc_generated_headers -g -fvisibility=hidden -fvisibility-inlines-hidden -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Os -Wno-deprecated-enum-float-conversion -Wno-deprecated-volatile -w -iwithsysroot/include/c++/v1 -iwithsysroot/include/compat -iwithsysroot/include -isystem external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/lib/clang/23/include -MD -MF bazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_objs/imgproc/color_lab.d -c external/opencv+/modules/imgproc/src/color_lab.cpp -obazel-out/wasm-fastbuild-ST-31e8b2f4ad1d/bin/external/opencv+/_objs/imgproc/color_lab.o -Wno-builtin-macro-redefined -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\" -D__TIME__=\"redacted\"
1.	<eof> parser at end of file
2.	Code generation
3.	Running pass 'Function Pass Manager' on module 'external/opencv+/modules/imgproc/src/color_lab.cpp'.
4.	Running pass 'WebAssembly Instruction Selection' on function '@_ZNK2cv12RGB2LuvfloatclEPKfPfi'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  clang-23                 0x0000000103f8f678 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  clang-23                 0x0000000103f8c5dc llvm::sys::RunSignalHandlers() + 164
2  clang-23                 0x0000000103f8e530 llvm::sys::CleanupOnSignal(unsigned long) + 272
3  clang-23                 0x0000000103ef22d4 CrashRecoverySignalHandler(int) (.llvm.5902021482545374146) + 148
4  libsystem_platform.dylib 0x000000018688b744 _sigtramp + 56
5  clang-23                 0x000000010312dae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
6  clang-23                 0x000000010312dae0 (anonymous namespace)::WebAssemblyDAGToDAGISel::CheckNodePredicate(llvm::SDValue, unsigned int) const (.llvm.13550879245612956240) + 168
7  clang-23                 0x0000000105a70ca4 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int, unsigned char const*) + 5604
8  clang-23                 0x000000010312cefc (anonymous namespace)::WebAssemblyDAGToDAGISel::Select(llvm::SDNode*) (.llvm.13550879245612956240) + 1916
9  clang-23                 0x0000000105a6a300 llvm::SelectionDAGISel::DoInstructionSelection() + 316
10 clang-23                 0x0000000105a6980c llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 1900
11 clang-23                 0x0000000105a68748 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 6684
12 clang-23                 0x0000000105a66050 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 348
13 clang-23                 0x0000000105a63bd8 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) + 208
14 clang-23                 0x000000010351667c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 500
15 clang-23                 0x0000000103a3c148 llvm::FPPassManager::runOnFunction(llvm::Function&) + 1300
16 clang-23                 0x0000000103a435d4 llvm::FPPassManager::runOnModule(llvm::Module&) + 52
17 clang-23                 0x0000000103a3cd80 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1896
18 clang-23                 0x000000010495aa00 (anonymous namespace)::EmitAssemblyHelper::TimeCodegenPasses(llvm::function_ref<void ()>) + 548
19 clang-23                 0x000000010494b9b0 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) + 6512
20 clang-23                 0x000000010477db00 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 3364
21 clang-23                 0x0000000105cbc794 clang::ParseAST(clang::Sema&, bool, bool) + 816
22 clang-23                 0x0000000104d528a8 clang::FrontendAction::Execute() + 44
23 clang-23                 0x0000000104cd1a20 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1504
24 clang-23                 0x0000000104e1bb7c clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1216
25 clang-23                 0x0000000102d72088 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 2016
26 clang-23                 0x0000000102d70328 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) + 1188
27 clang-23                 0x0000000102d717e8 int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) + 60
28 clang-23                 0x0000000104b2b28c void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const::$_0>(long) + 32
29 clang-23                 0x0000000103ef1fc8 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 144
30 clang-23                 0x0000000104b2a978 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__2::optional<llvm::StringRef>>, std::__2::basic_string<char, std::__2::char_traits<char>, std::__2::allocator<char>>*, bool*) const + 368
31 clang-23                 0x0000000104ae6404 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const + 652
32 clang-23                 0x0000000104ae6a48 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&, bool) const + 1352
33 clang-23                 0x0000000104b0a580 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__2::pair<int, clang::driver::Command const*>>&) + 400
34 clang-23                 0x0000000102d6f138 clang_main(int, char**, llvm::ToolContext const&) + 5560
35 clang-23                 0x0000000102d7daf0 main + 100
36 dyld                     0x00000001864c3e00 start + 6992
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 23.0.0git (https:/github.com/llvm/llvm-project 592953beff733a1e28f6c6e5e39f948fb035a329)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /Users/dodo/Library/Caches/bazel/_bazel_dodo/d37a55ce2ed2abf9c807bae8c8d24add/sandbox/darwin-sandbox/2141/execroot/_main/external/emsdk++emscripten_deps+emscripten_bin_mac_arm64/bin
clang: note: diagnostic msg:
********************

Source code: https://github.com/opencv/opencv/blob/5.0.0/modules/imgproc/src/color_lab.cpp

Same source code, same compiler flags, but emscripten 6.0.2 can build without any issues.

Lenguaje dominante
C++
Estrellas
27.8k
Forks
3.6k
Merge medio
1 d 4 h
PR fusionados (30 d)
179

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de emscripten-core/emscripten

Todos los issues de emscripten-core/emscripten

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.