{"record":{"id":"c4474d58cfbef2c0","repo":"mono/mono","slug":"mono-warning-llvm-not-enabled-in-this-runtime","errorCode":null,"errorMessage":"Mono Warning: --llvm not enabled in this runtime.\n","messagePattern":"Mono Warning: --llvm not enabled in this runtime\\.\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"mono/mini/driver.c","lineNumber":1868,"sourceCode":"\t\t\t\tg_free (mono_stats_method_desc);\n\t\t\tmono_stats_method_desc = parse_qualified_method_name (argv [i] + 8);\n\t\t} else if (strcmp (argv [i], \"--break\") == 0) {\n\t\t\tif (i+1 >= argc){\n\t\t\t\tfprintf (stderr, \"Missing method name in --break command line option\\n\");\n\t\t\t\texit (1);\n\t\t\t}\n\t\t\t\n\t\t\tif (!mono_debugger_insert_breakpoint (argv [++i], FALSE))\n\t\t\t\tfprintf (stderr, \"Error: invalid method name '%s'\\n\", argv [i]);\n\t\t} else if (strncmp (argv[i], \"--gc-params=\", 12) == 0) {\n\t\t\tmono_gc_params_set (argv[i] + 12);\n\t\t} else if (strncmp (argv[i], \"--gc-debug=\", 11) == 0) {\n\t\t\tmono_gc_debug_set (argv[i] + 11);\n\t\t} else if (strcmp (argv [i], \"--llvm\") == 0) {\n#ifndef MONO_ARCH_LLVM_SUPPORTED\n\t\t\tfprintf (stderr, \"Mono Warning: --llvm not supported on this platform.\\n\");\n#elif !defined(ENABLE_LLVM)\n\t\t\tfprintf (stderr, \"Mono Warning: --llvm not enabled in this runtime.\\n\");\n#else\n\t\t\tmono_use_llvm = TRUE;\n#endif\n\t\t} else if (strcmp (argv [i], \"--profile\") == 0) {\n\t\t\tmini_add_profiler_argument (NULL);\n\t\t} else if (strncmp (argv [i], \"--profile=\", 10) == 0) {\n\t\t\tmini_add_profiler_argument (argv [i] + 10);\n\t\t} else if (argv [i][0] == '-' && argv [i][1] == '-' && mini_parse_debug_option (argv [i] + 2)) {\n\t\t} else {\n\t\t\tfprintf (stderr, \"Unsupported command line option: '%s'\\n\", argv [i]);\n\t\t\texit (1);\n\t\t}\n\t}\n\n\tif (trace_options != NULL) {\n\t\t/* \n\t\t * Need to call this before mini_init () so we can trace methods \n\t\t * compiled there too.","sourceCodeStart":1850,"sourceCodeEnd":1886,"githubUrl":"https://github.com/mono/mono/blob/0f53e9e151d92944cacab3e24ac359410c606df6/mono/mini/driver.c#L1850-L1886","documentation":"Emitted when the user passes --llvm on a supported architecture but this Mono runtime was compiled WITHOUT ENABLE_LLVM (LLVM backend not linked). It is a non-fatal warning; --llvm is ignored and the Mono JIT backend is used instead.","triggerScenarios":"Running 'mono --llvm ...' where MONO_ARCH_LLVM_SUPPORTED is defined but the build did not enable LLVM (the #elif !defined(ENABLE_LLVM) branch fires).","commonSituations":"Mono package built with --disable-llvm or a minimal build; arch supports LLVM in principle but the vendor build omitted it.","solutions":["Remove --llvm if you do not need it.","Install/rebuild Mono with --enable-llvm (and a compatible mono-llvm).","Verify ENABLE_LLVM via 'mono --version' build metadata or pkg-config mono."],"exampleFix":"# before\nmono --llvm app.exe   // ENABLE_LLVM not defined -> warning, ignored\n# after (rebuild) ./configure --enable-llvm && make && mono --llvm app.exe","handlingStrategy":"type-guard","validationCode":"# Confirm ENABLE_LLVM in the build before relying on --llvm\nmono --version 2>&1 | grep -qi 'llvm' || { echo \"LLVM not enabled; ignoring --llvm\"; unset LLVM_FLAG; }","typeGuard":"#if defined(ENABLE_LLVM)\n    run_with_llvm = 1;\n#else\n    /* skip --llvm */\n#endif","tryCatchPattern":null,"preventionTips":["Verify ENABLE_LLVM via the build/package metadata.","Rebuild with --enable-llvm if the LLVM backend is required.","Make --llvm conditional in scripts when targeting multiple installs."],"tags":["mono","cli","llvm","build-config","non-fatal"],"backgroundTag":null,"analyzedSha":"0f53e9e151d92944cacab3e24ac359410c606df6","analyzedAt":"2026-08-13T18:54:37.190Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}