~ruther/guix-local

ref: 32ac1464d8fdca9c8e19c6cab14aa6ae2d97c53b guix-local/gnu/packages/patches/gromacs-tinyxml2.patch -rw-r--r-- 2.6 KiB
32ac1464 — Maxim Cournoyer gnu: phoronix-test-suite: Update to 10.8.4. 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Unbundling tinyxml2 from gromacs and using our own, which is newer, broke gromacs
build.

This patch fixes three issues:

- cmake now errors out if using multiple target_link_libraries with mixed styles
  of signatures.

- Error handling API changed, fix the testutils/refdata_xml.cpp code by using the
  new API: document.ErrorStr() & tinyxml2::XML_SUCCESS.

Those fixes will be submitted for inclusion to upstream, but may not be suitable
there as long as they still keep the old version bundled.

First hunk has already been requested for merging. Third is in discussion. Second
will only be sent if third is OK'ed.

diff -ruN gromacs-2020.2/src/testutils/CMakeLists.txt gromacs-2020.2-fixed/src/testutils/CMakeLists.txt
--- gromacs-2020.2/src/testutils/CMakeLists.txt 2020-04-30 18:33:44.000000000 +0200
+++ gromacs-2020.2-fixed/src/testutils/CMakeLists.txt   2020-05-01 22:52:16.356000000 +0200
@@ -73,7 +73,7 @@
 
 if(HAVE_TINYXML2)
     include_directories(SYSTEM ${TinyXML2_INCLUDE_DIR})
-    target_link_libraries(testutils ${TinyXML2_LIBRARIES})
+    target_link_libraries(testutils PRIVATE ${TinyXML2_LIBRARIES})
 else()
     include_directories(BEFORE SYSTEM "../external/tinyxml2")
 endif()
diff -ruN gromacs-2020.2/src/testutils/refdata_xml.cpp gromacs-2020.2-fixed/src/testutils/refdata_xml.cpp
--- gromacs-2020.2/src/testutils/refdata_xml.cpp        2020-04-30 18:33:44.000000000 +0200
+++ gromacs-2020.2-fixed/src/testutils/refdata_xml.cpp  2020-05-01 23:17:09.556000000 +0200
@@ -206,21 +206,12 @@
     document.LoadFile(path.c_str());
     if (document.Error())
     {
-        const char* errorStr1 = document.GetErrorStr1();
-        const char* errorStr2 = document.GetErrorStr2();
+        const char* errorStr = document.ErrorStr();
         std::string errorString("Error was ");
-        if (errorStr1)
-        {
-            errorString += errorStr1;
-        }
-        if (errorStr2)
-        {
-            errorString += errorStr2;
-        }
-        if (!errorStr1 && !errorStr2)
-        {
+        if (errorStr)
+            errorString += errorStr;
+        else
             errorString += "not specified.";
-        }
         GMX_THROW(TestException("Reference data not parsed successfully: " + path + "\n."
                                 + errorString + "\n"));
     }
@@ -371,7 +362,7 @@
     XMLElementPtr rootElement = createRootElement(&document);
     createChildElements(rootElement, rootEntry);
 
-    if (document.SaveFile(path.c_str()) != tinyxml2::XML_NO_ERROR)
+    if (document.SaveFile(path.c_str()) != tinyxml2::XML_SUCCESS)
     {
         GMX_THROW(TestException("Reference data saving failed in " + path));
     }