On 11 January 2017 at 19:19, Jose Fonseca <jfons...@vmware.com> wrote: > On 10/01/17 15:54, Emil Velikov wrote: >> >> On 6 January 2017 at 17:35, Wu Zhen <wuz...@jidemail.com> wrote: >>> >>> From: WuZhen <wuz...@jidemail.com> >>> >>> since (cf410574 gallivm: Make MCJIT a runtime optioni.), llvmpipe assume >>> MCJIT is available on x86(_64). this is not the case for android prior to >>> M. >>> >> Wu Zhen, what exactly is the issue you're getting - build or link-time >> error ? >> >> Looking at the hunk [1] in the offending commit makes me wonder. >> - Why do we call LLVMLinkInJIT() even if one selects MCJIT via the env >> var. >> - Why do we always call LLVMLinkInMCJIT regardless of a) if we've >> build against old LLVM and b) the env var. >> >> Jose, shouldn't we honour the above ? One way that comes to mind is to >> have USE_MCJIT always as static variable. Then we can guard the >> debug_get_bool_option() override with the current LLVM_VERSION/ARCH >> heuristics while preserving original invocation. >> >> if (USE_MCJIT) // use lowercase name since it's not a macro ? >> LLVMLinkInMCJIT(); >> else >> LLVMLinkInJIT(); >> >> >> Thanks >> Emil >> >> [1] >> @@ -385,18 +382,18 @@ lp_build_init(void) >> if (gallivm_initialized) >> return TRUE; >> >> + LLVMLinkInMCJIT(); >> +#if !defined(USE_MCJIT) >> + USE_MCJIT = debug_get_bool_option("GALLIVM_MCJIT", 0); >> + LLVMLinkInJIT(); >> +#endif >> + >> #ifdef DEBUG >> gallivm_debug = debug_get_option_gallivm_debug(); >> #endif >> >> lp_set_target_options(); >> >> -#if USE_MCJIT >> - LLVMLinkInMCJIT(); >> -#else >> - LLVMLinkInJIT(); >> -#endif >> - >> > > USE_MCJIT used to be a statically define macro, but it's now it can also be > runtime boolean. > > We require LLVM 3.3, and MCJIT has been available since then, so there was > no reason not to link. > > Android seems a new beast: it has LLVM 3.3 but not MCJIT?? > The Android discussion aside I was trying to point out that the commit in question does more than making the compile time decision run-time one.
Before the commit - LLVMLinkInMCJIT() was executed only when USE_MCJIT is set, and after it's executed regardless. On the LLVMLinkInJIT front - we seem to execute it even if the user has requested USE_MCJIT. I'm either missing something here, or things look nasty/wrong ? Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev