If we do that though, we still get 2 copies of the CRT. One for python and one for LLDB. While I *think* there is a strong enough API boundary in how the application and Python access each others' data structures that it doesn't matter, I'm not 100% sure without further research. It seems safer to link dynamically unless there is a strong reason not to.
On Wed, Jan 11, 2017 at 12:41 PM Adrian McCarthy <amcca...@google.com> wrote: > I was just reading up on this the other day. Statically linking to the > Universal CRT (and related libraries) *is* supported though it's not > Microsoft's top recommendation. > > Initially, they said they weren't going to support app-local deployment, > but they backed off on that, and it, too, is now supported. > > Some details here: > https://blogs.msdn.microsoft.com/vcblog/2016/04/18/c-runtime-deployment-why-choosing-applocal/ > > > On Wed, Jan 11, 2017 at 10:51 AM, Reid Kleckner via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > > The purpose of linking the CRT statically was to ensure that clang can run > on systems that don't have the CRT already installed from some other app or > by VS itself. As long as that is preserved, feel free to do whatever you > need. > > I think we still want to link vcruntime140 statically and the C++ runtime > statically, for example. > > On Wed, Jan 11, 2017 at 10:45 AM, Zachary Turner via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > > Is static CRT even still supported / recommended when using the new > Universal CRT? My understanding is the new UCRT is considered a core > windows component, so we don't ahve to distribute redistributables > anymore. Maybe I'm wrong about this. > > That said, I think we want dynamic regardless, otherwise we're back in the > same boat of user having to compile Python, which is the exact thing 3.5+ > is supposed to solve. We should just always use dynamic so the user > doesn't have to do anything and it just works. > > On Wed, Jan 11, 2017 at 10:41 AM Vadim Chugunov <vadi...@gmail.com> wrote: > > Sorry, just found another problem: the installed lldb crashes when given a > script via the command line. For example, `lldb -O "p 42"` dies with > exception 0xC0000409. > > It didn't happen with the one I've build locally, so I started digging... > The difference seems to be that build_llvm_build_package.bat links CRT > statically (-DLLVM_USE_CRT_RELEASE=MT), whereas default is the dynamic CRT. > > The crash kinda makes sense, because python35.dll links CRT dynamically, > so LLDB ends up with two copies of it in the process, which is known to > cause all sorts of trouble. > > Not sure what to do about this one, - you probably wanted static CRT to > avoid having to install MSVC redistributable? > > > On Tue, Jan 10, 2017 at 7:00 PM, Vadim Chugunov <vadi...@gmail.com> wrote: > > Yes, the new build works! > > On Tue, Jan 10, 2017 at 6:20 PM, Hans Wennborg <h...@chromium.org> wrote: > > I've downgraded my swig to 3.0.8 and built a new snapshot (r291454). > Please let me know if that works. > > On Tue, Jan 10, 2017 at 10:14 AM, Zachary Turner <ztur...@google.com> > wrote: > > It sounds like the solution to the problem is to downgrade SWIG on the > build > > machine. If it's using version 3.0.9 or higher, just use whatever the > last > > version before that is. 3.0.8, for example. > > > > At least there's a good workaround in the interim (i.e. setting > PYTHONPATH) > > > > On Tue, Jan 10, 2017 at 10:06 AM Hans Wennborg <h...@chromium.org> > wrote: > >> > >> I'll do another snapshot maybe next week or the week after. You can > >> also ping me if you want it sooner or later. > >> > >> We're kicking off the release process for 4.0.0 on Thursday. I don't > >> fully understand the problem here, but if there's some way to work > >> around it and get lldb into good shape for the 4.0.0 installer, that > >> would be great. > >> > >> Thanks, > >> Hans > >> > >> On Mon, Jan 9, 2017 at 10:40 PM, Vadim Chugunov <vadi...@gmail.com> > wrote: > >> > This appears to be a SWIG bug: > https://github.com/swig/swig/issues/769 > >> > > >> > On Mon, Jan 9, 2017 at 9:14 PM, Vadim Chugunov <vadi...@gmail.com> > >> > wrote: > >> >> > >> >> It worked! > >> >> > >> >> ...but not before I set PYTHONPATH=C:\Program Files > >> >> (x86)\LLVM\lib\site-packages\lldb > >> >> Without that, it couldn't find the _lldb module, so we are not quite > >> >> out > >> >> of the woods yet. > >> >> > >> >> When are you planning to make the next snapshot build? > >> >> Thanks! > >> >> > >> >> > >> >> On Mon, Jan 9, 2017 at 3:48 PM, Hans Wennborg <h...@chromium.org> > >> >> wrote: > >> >>> > >> >>> Vadim, it looks like your change was committed in r291291, and I've > >> >>> built a new snapshot today which includes it. Can you give it a try > >> >>> and see if everything works? > >> >>> > >> >>> Cheers, > >> >>> Hans > >> >>> > >> >>> On Thu, Jan 5, 2017 at 10:46 AM, Zachary Turner <ztur...@google.com > > > >> >>> wrote: > >> >>> > I will commit it, in the meantime can you request commit access so > >> >>> > that > >> >>> > any > >> >>> > future patches you can commit? > >> >>> > > >> >>> > On Wed, Jan 4, 2017 at 1:54 PM Vadim Chugunov <vadi...@gmail.com> > >> >>> > wrote: > >> >>> >> > >> >>> >> Thanks! > >> >>> >> > >> >>> >> Would anyone be so kind to commit that? > >> >>> >> > >> >>> >> On Wed, Jan 4, 2017 at 11:47 AM, Zachary Turner > >> >>> >> <ztur...@google.com> > >> >>> >> wrote: > >> >>> >>> > >> >>> >>> Sorry, a combination of national holidays and extended vacations > >> >>> >>> happened > >> >>> >>> and this fell off my radar. lgtm > >> >>> >>> > >> >>> >>> On Wed, Jan 4, 2017 at 11:46 AM Vadim Chugunov < > vadi...@gmail.com> > >> >>> >>> wrote: > >> >>> >>>> > >> >>> >>>> Zachary, > >> >>> >>>> Can you please take a look at that change? > >> >>> >>>> (https://reviews.llvm.org/D27476) > >> >>> >>>> > >> >>> >>>> It'll be sad if another snapshot build gets published with > broken > >> >>> >>>> lldb. > >> >>> >>>> :( > >> >>> >>>> > >> >>> >>>> > >> >>> >>>> On Tue, Dec 6, 2016 at 11:54 AM, Vadim Chugunov > >> >>> >>>> <vadi...@gmail.com> > >> >>> >>>> wrote: > >> >>> >>>>> > >> >>> >>>>> This seems to work: https://reviews.llvm.org/D27476 > >> >>> >>>>> > >> >>> >>>>> On Mon, Dec 5, 2016 at 12:04 PM, Hans Wennborg > >> >>> >>>>> <h...@chromium.org> > >> >>> >>>>> wrote: > >> >>> >>>>>> > >> >>> >>>>>> The only thing needed to build the installer should be having > >> >>> >>>>>> NSIS > >> >>> >>>>>> installed and building the "package" target generated by > CMake. > >> >>> >>>>>> The > >> >>> >>>>>> other prerequisites are mostly for building the visual studio > >> >>> >>>>>> clang-format plugin. > >> >>> >>>>>> > >> >>> >>>>>> Having said that, you don't even have to build the installer > to > >> >>> >>>>>> see > >> >>> >>>>>> what goes in it. Just building the "install" target generated > >> >>> >>>>>> by > >> >>> >>>>>> CMake > >> >>> >>>>>> will install the same set of files. > >> >>> >>>>>> > >> >>> >>>>>> I'm not sure how LLDB's cmake files are organized, but in the > >> >>> >>>>>> end > >> >>> >>>>>> what's required is invoking the install() command: > >> >>> >>>>>> https://cmake.org/cmake/help/v3.0/command/install.html In > >> >>> >>>>>> LLVM, > >> >>> >>>>>> this > >> >>> >>>>>> is done automatically by macros such as add_llvm_executale, > >> >>> >>>>>> etc. > >> >>> >>>>>> > >> >>> >>>>>> On Mon, Dec 5, 2016 at 11:56 AM, Vadim Chugunov > >> >>> >>>>>> <vadi...@gmail.com> > >> >>> >>>>>> wrote: > >> >>> >>>>>> > Hi Hans, > >> >>> >>>>>> > > >> >>> >>>>>> > I'd love to help, but I don't have half the tools that > >> >>> >>>>>> > build_llvm_package.bat requires installed on my machine. > My > >> >>> >>>>>> > setup > >> >>> >>>>>> > is to > >> >>> >>>>>> > build llvm with msbuild. Is it possible to build the > >> >>> >>>>>> > installer > >> >>> >>>>>> > this way > >> >>> >>>>>> > too? > >> >>> >>>>>> > > >> >>> >>>>>> > Can you point me to the specific CMake source that > determines > >> >>> >>>>>> > what's > >> >>> >>>>>> > included in the package? At a glance, everything from > >> >>> >>>>>> > %LLVM%/lib/site-packages is missing. > >> >>> >>>>>> > > >> >>> >>>>>> > Vadim > >> >>> >>>>>> > > >> >>> >>>>>> > On Mon, Dec 5, 2016 at 10:41 AM, Hans Wennborg > >> >>> >>>>>> > <h...@chromium.org> > >> >>> >>>>>> > wrote: > >> >>> >>>>>> >> > >> >>> >>>>>> >> Is anyone working on this? > >> >>> >>>>>> >> > >> >>> >>>>>> >> I'm happy to include LLDB in the installer, but I'm really > >> >>> >>>>>> >> not > >> >>> >>>>>> >> the > >> >>> >>>>>> >> best person to be debugging it. > >> >>> >>>>>> >> > >> >>> >>>>>> >> If more files need to be included in the install, that's > >> >>> >>>>>> >> configured > >> >>> >>>>>> >> in > >> >>> >>>>>> >> the CMake files (what's installed by the 'install' build > >> >>> >>>>>> >> target > >> >>> >>>>>> >> is > >> >>> >>>>>> >> also what ends up going into the installer). If it needs > >> >>> >>>>>> >> more > >> >>> >>>>>> >> build > >> >>> >>>>>> >> flags, patches to build_llvm_package.bat are welsome. > >> >>> >>>>>> > > >> >>> >>>>>> > > >> >>> >>>>>> > > >> >>> >>>>> > >> >>> >>>>> > >> >>> >>>> > >> >>> >> > >> >>> > > >> >> > >> >> > >> > > > > > > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > >
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev