[gmx-developers] issues with libxml detection issues with GMX_BUILD_UNITTESTS=ON

Mark Abraham mark.j.abraham at gmail.com
Thu Feb 18 16:37:28 CET 2016


Hi,

My earlier point also applies here - mainstream distros have no need to
distribute GROMACS packages with tinyxml2 bundled, because it only supports
our test code, ie. nothing that we install. They should want to run the
tests, but I see no need for any bundling handling at all. I'll make it
possible to use a system install of tinyxml2, though.

Mark

On Thu, Feb 18, 2016 at 4:32 PM Mark Abraham <mark.j.abraham at gmail.com>
wrote:

> Hi,
>
> For a mainstream distro, I expect pkg-config and/or the buildbot toolchain
> to be set up to Just Work. Hopefully Dominik can look over what I will
> propose, to see if it looks suitable from his standpoint. We need a
> suitable find_package module (which we can contribute upstream), but
> otherwise we don't have to do and maintain the complex checking that we do
> for libxml2 and zlib now.
>
> Mark
>
> On Thu, Feb 18, 2016 at 4:23 PM Szilárd Páll <pall.szilard at gmail.com>
> wrote:
>
>> On Thu, Feb 18, 2016 at 3:46 PM, Mark Abraham <mark.j.abraham at gmail.com>
>> wrote:
>> > Hi,
>> >
>> > On Thu, Feb 18, 2016 at 3:28 PM Szilárd Páll <pall.szilard at gmail.com>
>> wrote:
>> >>
>> >> Hi,
>> >>
>> >> Thanks for looking into this!
>> >>
>> >> I was not aware that zlib is only required if libxml2 was configured
>> >> with it. Unless there is an easy way to check for the libxml2
>> >> dependencies before the xmlTextWriterEndAttribute test is performed, I
>> >> have no better suggestion. Aren't there some symbols or exported
>> >> functions only present when libxml2 is configured with zlib?
>> >
>> >
>> > We could probably do that. If we adopt the tinyxml2 route, then I'd
>> suggest
>> > we leave such libxml2 management issues as TODOs for if/when we add
>> other
>> > code that requires functionality from libxml2.
>> >
>> >> Replacing libxml2 external dependency for this particular use-case
>> >> sounds useful, although it does add some code complexity and
>> >> maintenenace burden. However, I'm not sure the alternative requires
>> >> less code (especially if the BG/Q issue is a very different one than
>> >> what I ran into).
>> >
>> >
>> > If we don't end up needing libxml2 for anything else, then a bunch of
>> code
>> > that we apparently don't maintain well enough currently gets to
>> disappear,
>> > which is something.
>>
>> If you're referring tot he CMake code that's going to disappear,
>> similar code (though perhaps more simple) will have to replace if we
>> want to be distro-friendly.
>>
>> > Mark
>> >
>> >> --
>> >> Szilárd
>> >>
>> >>
>> >> On Thu, Feb 18, 2016 at 2:39 PM, Mark Abraham <
>> mark.j.abraham at gmail.com>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > Yes, perhaps that call to check_library_exists can be improved, e.g.
>> by
>> >> > setting CMAKE_REQUIRED_LIBRARIES for the check (see
>> >> > https://cmake.org/cmake/help/v3.0/module/CheckLibraryExists.html).
>> >> > However,
>> >> > it is awkward to do a good job here, because libxml2 only requires
>> zlib
>> >> > if
>> >> > the former was configured that way, so we have a fairly large number
>> of
>> >> > conditions to handle in constructing our handling (shared/static,
>> >> > whether
>> >> > either was found, whether libxml2 needs zlib or not, whether test
>> >> > binaries
>> >> > need to be built, etc.).
>> >> >
>> >> > Roland suggested https://gerrit.gromacs.org/#/c/5630/2 but I am not
>> sure
>> >> > if
>> >> > it is related.
>> >> >
>> >> > Alternatively/also, since currently the only use for XML handling in
>> >> > master
>> >> > branch is for test reference data, I have uploaded
>> >> > https://gerrit.gromacs.org/#/c/5653/ to replace this use of libxml2
>> with
>> >> > a
>> >> > bundled copy of tinyxml2, as part of
>> >> > http://redmine.gromacs.org/issues/1908
>> >> > so that we get rid of such problematic external dependencies. These
>> have
>> >> > been causing grief lately for users on BG/Q machines. I suggest we
>> keep
>> >> > libxml2 detection and handling present but inactive while the future
>> of
>> >> > various patches in Gerrit gets resolved.
>> >> >
>> >> > Mark
>> >> >
>> >> > On Wed, Feb 10, 2016 at 4:37 PM Szilárd Páll <pall.szilard at gmail.com
>> >
>> >> > wrote:
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> $ cmake -DGMX_PREFER_STATIC_LIBS=ON -DGMX_BUILD_UNITTESTS=ON
>> >> >>
>> >> >> [...]
>> >> >> -- Looking for zlibVersion in /usr/lib/x86_64-linux-gnu/libz.a
>> >> >> -- Looking for zlibVersion in /usr/lib/x86_64-linux-gnu/libz.a -
>> found
>> >> >> -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.a (found version
>> >> >> "2.9.1")
>> >> >> -- Looking for xmlTextWriterEndAttribute in
>> >> >> /usr/lib/x86_64-linux-gnu/libxml2.a
>> >> >> -- Looking for xmlTextWriterEndAttribute in
>> >> >> /usr/lib/x86_64-linux-gnu/libxml2.a - not found
>> >> >> [...]
>> >> >> CMake Error at CMakeLists.txt:562 (message):
>> >> >>   Cannot build unit tests without libxml2.  Either set
>> >> >>   GMX_BUILD_UNITTESTS=OFF or tell CMake how to find a working
>> version
>> >> >> of
>> >> >>   libxml2.
>> >> >>
>> >> >> Even though both libz and libxml are detected, the
>> >> >> xmlTextWriterEndAttribute lib test fails to link as the
>> >> >> check_library_exists() does not pass -lz.
>> >> >>
>> >> >> I vaguely remember some discussion around it so I thought I'd ask
>> >> >> whether this is a known issue before filing a report.
>> >> >>
>> >> >> Are there any simple workarounds for this? (I tried passing -lz in
>> the
>> >> >> linker flags, but that does not help).
>> >> >> Could we provide a better hint in the error?
>> >> >>
>> >> >> Cheers,
>> >> >> --
>> >> >> Szilárd
>> >> >> --
>> >> >> Gromacs Developers mailing list
>> >> >>
>> >> >> * Please search the archive at
>> >> >> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
>> before
>> >> >> posting!
>> >> >>
>> >> >> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>> >> >>
>> >> >> * For (un)subscribe requests visit
>> >> >>
>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>> >> >> or
>> >> >> send a mail to gmx-developers-request at gromacs.org.
>> >> >
>> >> >
>> >> > --
>> >> > Gromacs Developers mailing list
>> >> >
>> >> > * Please search the archive at
>> >> > http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
>> before
>> >> > posting!
>> >> >
>> >> > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>> >> >
>> >> > * For (un)subscribe requests visit
>> >> >
>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>> >> > or
>> >> > send a mail to gmx-developers-request at gromacs.org.
>> >> --
>> >> Gromacs Developers mailing list
>> >>
>> >> * Please search the archive at
>> >> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
>> before
>> >> posting!
>> >>
>> >> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>> >>
>> >> * For (un)subscribe requests visit
>> >>
>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>> or
>> >> send a mail to gmx-developers-request at gromacs.org.
>> >
>> >
>> > --
>> > Gromacs Developers mailing list
>> >
>> > * Please search the archive at
>> > http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
>> > posting!
>> >
>> > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>> >
>> > * For (un)subscribe requests visit
>> > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>> or
>> > send a mail to gmx-developers-request at gromacs.org.
>> --
>> Gromacs Developers mailing list
>>
>> * Please search the archive at
>> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
>> posting!
>>
>> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>>
>> * For (un)subscribe requests visit
>> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>> or send a mail to gmx-developers-request at gromacs.org.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20160218/162c257f/attachment.html>


More information about the gromacs.org_gmx-developers mailing list