<div dir="ltr">Also, it should be possible to do this in a way that doesn't require lots of ifdefs.  Just create a stub xml parser implementation that has the same interface as whatever the one in libxml2 is, and contain all the ifdefs there.  have the stub return an error on creation.  Then calling code can just error out if it tries to parse xml and gets an error.<br></div><br><div class="gmail_quote">On Tue, Mar 31, 2015 at 4:51 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I hate them too.  The amount of effort I spent removing them from Host (even though there's still some there) is a testament to that.  But we already have enough external dependencies on Windows as is (building Python is already a huge chore, for example), and adding more to the mix is kind of a blocking issue for me unless it's for really critical functionality.  Windows is in the unfortunate position of it being a pain to build most open source libraries.  I don't want to make it even harder for people to build LLDB on Windows just because of an xml library.<br></div><br><div class="gmail_quote">On Tue, Mar 31, 2015 at 4:36 PM Vince Harron <<a href="mailto:vince@nethacker.com" target="_blank">vince@nethacker.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I hate ifdefs, especially the ones that we've added to the code. I would hate to see any others go in.  It's our plan for example to remove ifdefs that we have added .</p>
<div class="gmail_quote">On Mar 31, 2015 4:28 PM, "Zachary Turner" <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">As long as it's possible to build lldb without it I'm fine with whatever, including downloading it separately, building it, and referencing it externally.  But I don't want it to be a forced dependency.<br></div><br><div class="gmail_quote">On Tue, Mar 31, 2015 at 4:19 PM Vince Harron <<a href="mailto:vince@nethacker.com" target="_blank">vince@nethacker.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I really don't want LLDB to embed a copy of libxml2.  I think we should build it externally and reference it from LLDB.  Systems with package managers can get this trivially.  Windows can download and build all dependencies with one script.</p>
<div class="gmail_quote">On Mar 31, 2015 2:10 PM, "Colin Riley" <<a href="mailto:colin@codeplay.com" target="_blank">colin@codeplay.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>I noticed that use in cmake also. FWIW,
      my primary LLDB platform is Windows, which is why we were using
      TinyXML2 for ease of prototyping. If libxml2 works on all the
      targets we will use it - I do worry about the usual issues you get
      with windows prebuilts. So source may still be required. We'll
      look into it.<br>
      <br>
      Colin<br>
      <br>
      On 31/03/2015 20:45, Zachary Turner wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">There's already some stuff in the CMake to try to
        find libxml, but it's behind a Darwin specific branch in the
        CMake.  So I think what would need to happen is that we move
        this into a platform agnostic codepath, and then set a define
        like LLDB_HAVE_LIBXML2 in the code to a value that indicates
        whether it is present (search clang for CLANG_HAVE_LIBXML in *.*
        to see how this is done).  Then, in the code, we would need to
        put xml code behind a check for this define.<br>
      </div>
      <br>
      <div class="gmail_quote">On Tue, Mar 31, 2015 at 10:02 AM Zachary
        Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div dir="ltr">A good rule of thumb for anything is that
            "Windows doesn't have it" and that holds true for libxml2 as
            well.  It appears that libxml2 does support Windows though (<a href="http://xmlsoft.org/downloads.html" target="_blank">http://xmlsoft.org/downloads.<u></u>html</a>),
            it just isn't something that's there by default.  It would
            be nice if everyone were using the same thing, could we
            clone this repo in our own repo and then just build it
            ourselves as part of the build process.  The license looks
            very permissive, but IANAL.<br>
          </div>
          <br>
          <div class="gmail_quote">On Tue, Mar 31, 2015 at 9:47 AM Greg
            Clayton <<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
              > On Mar 31, 2015, at 3:35 AM, Aidan Dodds <<a href="mailto:aidan@codeplay.com" target="_blank">aidan@codeplay.com</a>> wrote:<br>
              ><br>
              > On 30/03/2015 18:38, Greg Clayton wrote:<br>
              > ><br>
              > > I know about the register numbering stuff and I
              would love to see support for the "$qXfer:features:" added
              to LLDB. The one thing this data doesn't contain is the
              register numbers for the ABI (DWARF register numbers (for
              debug info), compiler register numbers (for like
              .eh_frame)), but that info could be inferred from an ABI
              plugin that we could infer from the "osabi" of "GNU/Linux"
              in the target.xml:<br>
              ><br>
              > ><br>
              > > So please do submit patches that implement this
              and we will be happy to approve them.<br>
              ><br>
              > I am currently prototyping $qXfer:features support in
              LLDB with an aim to upstream it. It will require an XML
              parser, so I wanted to have a discussion about adding one
              to LLDB.<br>
              <br>
              Most unix variants have libxml2 that is available. I am
              not sure on windows though. I have CC'ed Zachary to get
              some input on windows XML (in case LLVM doesn't already
              have some support for this).<br>
              <br>
              > I have been using TinyXML2 in my prototype, which is
              open sourced under the ZLib license. Is there any policy
              in LLDB for handling external library dependencies?<br>
              > Would there be objections to TinyXML2 making its way
              into the LLDB code base as an external? Writing a new XML
              parser from scratch in LLDB isn't ideal.<br>
              <br>
              It would be great to stick with stuff that everyone has
              installed and hopefully that is libxml2. Windows is the
              biggest question. I am also not sure if llvm or clang has
              any XML support, but we should first look to see if llvm
              has XML support and if not, then look for alternatives. We
              definitely do not want to write our own.<br>
              ><br>
              > I would still like to have a discussion about adding
              a plugin architecture to gdb-remote making it easier to
              handle packets outwith the LLDB based servers. The code in
              gdb-remote that sends and handles packets is scattered
              over one or two huge classes, it would be beneficial to
              start looking at breaking this up and modularizing it. At
              least for the packets which are not supported by lldb's
              own RSP producers.<br>
              <br>
              I say just build all and any support it into
              GDBRemoteCommunicationClient and
              GDBRemoteCommunicationServer. I don't see the need to
              break it up.<br>
              <br>
              Greg Clayton</blockquote>
          </div>
        </blockquote>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>______________________________<u></u>_________________
lldb-dev mailing list
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/lldb-dev</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>______________________________<u></u>_________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/lldb-dev</a><br>
<br></blockquote></div>
______________________________<u></u><u></u>_________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailm<u></u>an/listinfo/lldb-dev</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div></blockquote></div>