Yes, I confirm. Le ven. 20 déc. 2019 à 19:12, Praveen Velliengiri < praveenvelliengiri at gmail.com> a écrit :> Hi, > Orc v2 is different from the internal structure then Orc v1 not just in > API level. > TLS support is not in ORC for a long time at least I'm aware of , Could > you please confirm that ORC v1 actually compiles and run the code with > Thread locals? > > On Fri, 20 Dec 2019 at 23:36, Geoff Levner <glevner at gmail.com> wrote: > >> And yet the same C++ code using thread-local variables works fine (or >> seems to) when compiled with Orc v1. Does the change to the Orc API really >> make thread-local storage more difficult? >> >> On Fri, Dec 20, 2019 at 3:52 PM Praveen Velliengiri < >> praveenvelliengiri at gmail.com> wrote: >> >>> Oh, I think Linux don't have support for TLS. >>> >>> On Fri, 20 Dec 2019 at 20:19, Geoff Levner <glevner at gmail.com> wrote: >>> >>>> Argh. Thanks for the info. We're on Linux. >>>> >>>> On Fri, Dec 20, 2019 at 3:46 PM Praveen Velliengiri < >>>> praveenvelliengiri at gmail.com> wrote: >>>> >>>>> Hi Geoff, >>>>> Gathering from past, I remember that the ORCv2 doesn't support thread >>>>> local variable but not sure what is the current status now. What platform >>>>> you are on? >>>>> CC'ed (Lang hames) he knows exactly what is the status. >>>>> >>>>> On Fri, 20 Dec 2019 at 18:39, Geoff Levner via llvm-dev < >>>>> llvm-dev at lists.llvm.org> wrote: >>>>> >>>>>> I am in the process of porting our ORC code to ORC v2 and LLJIT. Now >>>>>> that I have worked around a problem getting global constructors to be >>>>>> called, everything seems to work unless a module declares a static >>>>>> thread-local variable. In that case I get a "JIT session error" saying that >>>>>> the symbol __emutls_v.xyz was not found (substitute the mangled >>>>>> variable name for "xyz"). >>>>>> >>>>>> Does that mean anything to anybody out there? >>>>>> >>>>>> (I don't know if it's relevant, but we are using LLVM 8, and we are >>>>>> using Clang to compile C++ modules that are all put into a single JITDylib.) >>>>>> >>>>>> Geoff >>>>>> _______________________________________________ >>>>>> LLVM Developers mailing list >>>>>> llvm-dev at lists.llvm.org >>>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>>>>> >>>>>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191220/04c33ad8/attachment.html>
Praveen Velliengiri via llvm-dev
2019-Dec-20 18:25 UTC
[llvm-dev] LLJIT vs. thread-local storage
Can you able to share c++ code and your JIT setup? On Fri, 20 Dec 2019 at 23:48, Geoff Levner <glevner at gmail.com> wrote:> Yes, I confirm. > > Le ven. 20 déc. 2019 à 19:12, Praveen Velliengiri < > praveenvelliengiri at gmail.com> a écrit : > >> Hi, >> Orc v2 is different from the internal structure then Orc v1 not just in >> API level. >> TLS support is not in ORC for a long time at least I'm aware of , Could >> you please confirm that ORC v1 actually compiles and run the code with >> Thread locals? >> >> On Fri, 20 Dec 2019 at 23:36, Geoff Levner <glevner at gmail.com> wrote: >> >>> And yet the same C++ code using thread-local variables works fine (or >>> seems to) when compiled with Orc v1. Does the change to the Orc API really >>> make thread-local storage more difficult? >>> >>> On Fri, Dec 20, 2019 at 3:52 PM Praveen Velliengiri < >>> praveenvelliengiri at gmail.com> wrote: >>> >>>> Oh, I think Linux don't have support for TLS. >>>> >>>> On Fri, 20 Dec 2019 at 20:19, Geoff Levner <glevner at gmail.com> wrote: >>>> >>>>> Argh. Thanks for the info. We're on Linux. >>>>> >>>>> On Fri, Dec 20, 2019 at 3:46 PM Praveen Velliengiri < >>>>> praveenvelliengiri at gmail.com> wrote: >>>>> >>>>>> Hi Geoff, >>>>>> Gathering from past, I remember that the ORCv2 doesn't support thread >>>>>> local variable but not sure what is the current status now. What platform >>>>>> you are on? >>>>>> CC'ed (Lang hames) he knows exactly what is the status. >>>>>> >>>>>> On Fri, 20 Dec 2019 at 18:39, Geoff Levner via llvm-dev < >>>>>> llvm-dev at lists.llvm.org> wrote: >>>>>> >>>>>>> I am in the process of porting our ORC code to ORC v2 and LLJIT. Now >>>>>>> that I have worked around a problem getting global constructors to be >>>>>>> called, everything seems to work unless a module declares a static >>>>>>> thread-local variable. In that case I get a "JIT session error" saying that >>>>>>> the symbol __emutls_v.xyz was not found (substitute the mangled >>>>>>> variable name for "xyz"). >>>>>>> >>>>>>> Does that mean anything to anybody out there? >>>>>>> >>>>>>> (I don't know if it's relevant, but we are using LLVM 8, and we are >>>>>>> using Clang to compile C++ modules that are all put into a single JITDylib.) >>>>>>> >>>>>>> Geoff >>>>>>> _______________________________________________ >>>>>>> LLVM Developers mailing list >>>>>>> llvm-dev at lists.llvm.org >>>>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>>>>>> >>>>>>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191220/030db7c7/attachment.html>
Hmm, it's a bit complicated. It will take some time, and I'm now on vacation for the next two weeks, I'm afraid... On Fri, Dec 20, 2019 at 7:25 PM Praveen Velliengiri < praveenvelliengiri at gmail.com> wrote:> Can you able to share c++ code and your JIT setup? > > On Fri, 20 Dec 2019 at 23:48, Geoff Levner <glevner at gmail.com> wrote: > >> Yes, I confirm. >> >> Le ven. 20 déc. 2019 à 19:12, Praveen Velliengiri < >> praveenvelliengiri at gmail.com> a écrit : >> >>> Hi, >>> Orc v2 is different from the internal structure then Orc v1 not just in >>> API level. >>> TLS support is not in ORC for a long time at least I'm aware of , Could >>> you please confirm that ORC v1 actually compiles and run the code with >>> Thread locals? >>> >>> On Fri, 20 Dec 2019 at 23:36, Geoff Levner <glevner at gmail.com> wrote: >>> >>>> And yet the same C++ code using thread-local variables works fine (or >>>> seems to) when compiled with Orc v1. Does the change to the Orc API really >>>> make thread-local storage more difficult? >>>> >>>> On Fri, Dec 20, 2019 at 3:52 PM Praveen Velliengiri < >>>> praveenvelliengiri at gmail.com> wrote: >>>> >>>>> Oh, I think Linux don't have support for TLS. >>>>> >>>>> On Fri, 20 Dec 2019 at 20:19, Geoff Levner <glevner at gmail.com> wrote: >>>>> >>>>>> Argh. Thanks for the info. We're on Linux. >>>>>> >>>>>> On Fri, Dec 20, 2019 at 3:46 PM Praveen Velliengiri < >>>>>> praveenvelliengiri at gmail.com> wrote: >>>>>> >>>>>>> Hi Geoff, >>>>>>> Gathering from past, I remember that the ORCv2 doesn't support >>>>>>> thread local variable but not sure what is the current status now. What >>>>>>> platform you are on? >>>>>>> CC'ed (Lang hames) he knows exactly what is the status. >>>>>>> >>>>>>> On Fri, 20 Dec 2019 at 18:39, Geoff Levner via llvm-dev < >>>>>>> llvm-dev at lists.llvm.org> wrote: >>>>>>> >>>>>>>> I am in the process of porting our ORC code to ORC v2 and LLJIT. >>>>>>>> Now that I have worked around a problem getting global constructors to be >>>>>>>> called, everything seems to work unless a module declares a static >>>>>>>> thread-local variable. In that case I get a "JIT session error" saying that >>>>>>>> the symbol __emutls_v.xyz was not found (substitute the mangled >>>>>>>> variable name for "xyz"). >>>>>>>> >>>>>>>> Does that mean anything to anybody out there? >>>>>>>> >>>>>>>> (I don't know if it's relevant, but we are using LLVM 8, and we are >>>>>>>> using Clang to compile C++ modules that are all put into a single JITDylib.) >>>>>>>> >>>>>>>> Geoff >>>>>>>> _______________________________________________ >>>>>>>> LLVM Developers mailing list >>>>>>>> llvm-dev at lists.llvm.org >>>>>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>>>>>>> >>>>>>>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191220/3050f9bc/attachment.html>