summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch116
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch32
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch872
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch57
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch39
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch123
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch54
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch1409
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch33
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch47
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch43
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch33
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch54
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch25
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch228
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch40
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch40
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch21
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb35
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb36
20 files changed, 2080 insertions, 1257 deletions
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
new file mode 100644
index 0000000000..d9190e5bdf
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
@@ -0,0 +1,116 @@
1From dd6ad8ca447457c812809791ab8622da8646104c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Aug 2019 13:07:33 -0700
4Subject: [PATCH] Don't use __GNUC_PREREQ
5
6These are not official GCC predefined macros; they are macros defined
7by GNU libc and some versions of BSD libc for internal use by their
8own headers, and we shouldn't be using them without checking for their
9availability first
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/efi/efi.h | 4 ++--
14 lib/engine/pragma.h | 4 ++--
15 lib/log/log.h | 4 ++--
16 lib/mpb/machine_bytes.h | 4 ++--
17 lib/mpb/mpb.h | 4 ++--
18 lib/orom/orom.h | 4 ++--
19 6 files changed, 12 insertions(+), 12 deletions(-)
20
21diff --git a/lib/efi/efi.h b/lib/efi/efi.h
22index 0620d9c..c8358db 100644
23--- a/lib/efi/efi.h
24+++ b/lib/efi/efi.h
25@@ -33,9 +33,9 @@
26 #include <features.h>
27 #include <ssi.h>
28
29-#if __GNUC_PREREQ(3, 4)
30+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
31 #pragma once
32-#endif /* __GNUC_PREREQ */
33+#endif
34
35 #if defined(__cplusplus)
36 extern "C" {
37diff --git a/lib/engine/pragma.h b/lib/engine/pragma.h
38index 8205ed3..fa0b268 100644
39--- a/lib/engine/pragma.h
40+++ b/lib/engine/pragma.h
41@@ -32,9 +32,9 @@
42
43 #include <features.h>
44
45-#if __GNUC_PREREQ(3, 4)
46+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
47 #define SSI_HAS_PRAGMA_ONCE
48-#endif /* __GNUC_PREREQ */
49+#endif
50
51 #ifdef SSI_HAS_PRAGMA_ONCE
52 #pragma once
53diff --git a/lib/log/log.h b/lib/log/log.h
54index 66a707b..ca5000a 100644
55--- a/lib/log/log.h
56+++ b/lib/log/log.h
57@@ -32,9 +32,9 @@
58
59 #include <features.h>
60
61-#if __GNUC_PREREQ(3, 4)
62+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
63 #pragma once
64-#endif /* __GNUC_PREREQ */
65+#endif
66
67 #if defined(__cplusplus)
68 extern "C" {
69diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
70index 6cb81c9..807461f 100644
71--- a/lib/mpb/machine_bytes.h
72+++ b/lib/mpb/machine_bytes.h
73@@ -27,9 +27,9 @@
74 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75 */
76
77-#if __GNUC_PREREQ(3, 4)
78+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
79 #pragma once
80-#endif /* __GNUC_PREREQ */
81+#endif
82
83 #ifndef __ENDIAN_H__INCLUDED__
84 #define __ENDIAN_H__INCLUDED__
85diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
86index 32beb21..98f82fe 100644
87--- a/lib/mpb/mpb.h
88+++ b/lib/mpb/mpb.h
89@@ -27,9 +27,9 @@
90 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
91 */
92
93-#if __GNUC_PREREQ(3, 4)
94+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
95 #pragma once
96-#endif /* __GNUC_PREREQ */
97+#endif
98
99 #ifndef __MPB_H__INCLUDED__
100 #define __MPB_H__INCLUDED__
101diff --git a/lib/orom/orom.h b/lib/orom/orom.h
102index 4492066..16b03a6 100644
103--- a/lib/orom/orom.h
104+++ b/lib/orom/orom.h
105@@ -32,9 +32,9 @@
106
107 #include <features.h>
108
109-#if __GNUC_PREREQ(3, 4)
110+#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
111 #pragma once
112-#endif /* __GNUC_PREREQ */
113+#endif
114
115 #if defined(__cplusplus)
116 extern "C" {
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
new file mode 100644
index 0000000000..fd44571b69
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
@@ -0,0 +1,32 @@
1From 258a1d128581f185a7a5070f47df06e5c29c9db8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Aug 2019 13:43:32 -0700
4Subject: [PATCH] Include libgen.h
5
6Use XPG version of basename on non gnu libc systems
7ideally posix version should be used everywhere but that
8would be upstreams choice to make
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 tools/ssieventmonitor.cpp | 4 +++-
13 1 file changed, 3 insertions(+), 1 deletion(-)
14
15diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
16index 0d11975..af7e09c 100644
17--- a/tools/ssieventmonitor.cpp
18+++ b/tools/ssieventmonitor.cpp
19@@ -39,7 +39,9 @@
20 #include <sys/select.h>
21 #include <sys/wait.h>
22 #include <sys/inotify.h>
23-
24+#ifndef __GLIBC__
25+#include <libgen.h>
26+#endif
27 extern "C" {
28 #include "lib/safeclib/safe_str_lib.h"
29 }
30--
312.23.0
32
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
deleted file mode 100644
index ef6ae00e3d..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
+++ /dev/null
@@ -1,872 +0,0 @@
1From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 20:44:31 -0700
4Subject: [PATCH 1/6] Use pragma once unconditionally
5
6in OE we do not worry about supporting
7gcc 3.4 anyway
8
9Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/efi/efi.h | 2 --
14 lib/engine/ahci.h | 2 --
15 lib/engine/ahci_cdrom.h | 2 --
16 lib/engine/ahci_disk.h | 2 --
17 lib/engine/ahci_multiplier.h | 2 --
18 lib/engine/ahci_multiplier_phy.h | 2 --
19 lib/engine/ahci_multiplier_port.h | 2 --
20 lib/engine/ahci_phy.h | 2 --
21 lib/engine/ahci_port.h | 2 --
22 lib/engine/ahci_raid_info.h | 2 --
23 lib/engine/ahci_tape.h | 2 --
24 lib/engine/array.h | 2 --
25 lib/engine/block_device.h | 2 --
26 lib/engine/cache.h | 2 --
27 lib/engine/container.h | 2 --
28 lib/engine/context_manager.h | 2 --
29 lib/engine/controller.h | 2 --
30 lib/engine/enclosure.h | 2 --
31 lib/engine/end_device.h | 2 --
32 lib/engine/event.h | 2 --
33 lib/engine/event_manager.h | 2 --
34 lib/engine/exception.h | 2 --
35 lib/engine/filesystem.h | 2 --
36 lib/engine/isci.h | 2 --
37 lib/engine/isci_cdrom.h | 2 --
38 lib/engine/isci_disk.h | 2 --
39 lib/engine/isci_expander.h | 2 --
40 lib/engine/isci_expander_phy.h | 2 --
41 lib/engine/isci_expander_port.h | 2 --
42 lib/engine/isci_phy.h | 2 --
43 lib/engine/isci_port.h | 2 --
44 lib/engine/isci_raid_info.h | 2 --
45 lib/engine/isci_tape.h | 2 --
46 lib/engine/list.h | 2 --
47 lib/engine/mdadm_config.h | 2 --
48 lib/engine/multimedia_device.h | 2 --
49 lib/engine/nondisk_device.h | 2 --
50 lib/engine/object.h | 2 --
51 lib/engine/pci_header.h | 2 --
52 lib/engine/phy.h | 2 --
53 lib/engine/port.h | 2 --
54 lib/engine/raid_device.h | 2 --
55 lib/engine/raid_info.h | 2 --
56 lib/engine/remote_port.h | 2 --
57 lib/engine/routing_device.h | 2 --
58 lib/engine/session.h | 2 --
59 lib/engine/session_manager.h | 2 --
60 lib/engine/storage_device.h | 2 --
61 lib/engine/stream_device.h | 2 --
62 lib/engine/string.h | 2 --
63 lib/engine/unique_id_manager.h | 2 --
64 lib/engine/utils.h | 2 --
65 lib/engine/volume.h | 2 --
66 lib/log/log.h | 2 --
67 lib/mpb/machine_bytes.h | 2 --
68 lib/mpb/mpb.h | 2 --
69 lib/orom/orom.h | 2 --
70 57 files changed, 114 deletions(-)
71
72diff --git a/lib/efi/efi.h b/lib/efi/efi.h
73index 9e7e41b..804e567 100644
74--- a/lib/efi/efi.h
75+++ b/lib/efi/efi.h
76@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
77
78
79
80-#if __GNUC_PREREQ(3, 4)
81 #pragma once
82-#endif /* __GNUC_PREREQ */
83
84 #ifndef __EFI_H__INCLUDED__
85 #define __EFI_H__INCLUDED__
86diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h
87index e883d1a..80a9699 100644
88--- a/lib/engine/ahci.h
89+++ b/lib/engine/ahci.h
90@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
91
92
93
94-#if __GNUC_PREREQ(3, 4)
95 #pragma once
96-#endif /* __GNUC_PREREQ */
97
98 #ifndef __AHCI_H__INCLUDED__
99 #define __AHCI_H__INCLUDED__
100diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h
101index 442f301..d8ca042 100644
102--- a/lib/engine/ahci_cdrom.h
103+++ b/lib/engine/ahci_cdrom.h
104@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
105
106
107
108-#if __GNUC_PREREQ(3, 4)
109 #pragma once
110-#endif /* __GNUC_PREREQ */
111
112 #ifndef __AHCI_CDROM_H__INCLUDED__
113 #define __AHCI_CDROM_H__INCLUDED__
114diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h
115index 7892a53..1bad9ad 100644
116--- a/lib/engine/ahci_disk.h
117+++ b/lib/engine/ahci_disk.h
118@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
119
120
121
122-#if __GNUC_PREREQ(3, 4)
123 #pragma once
124-#endif /* __GNUC_PREREQ */
125
126 #ifndef __AHCI_DISK_H__INCLUDED__
127 #define __AHCI_DISK_H__INCLUDED__
128diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h
129index d63e9bc..1029af2 100644
130--- a/lib/engine/ahci_multiplier.h
131+++ b/lib/engine/ahci_multiplier.h
132@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
133
134
135
136-#if __GNUC_PREREQ(3, 4)
137 #pragma once
138-#endif /* __GNUC_PREREQ */
139
140 #ifndef __AHCI_MULTIPLIER_H__INCLUDED__
141 #define __AHCI_MULTIPLIER_H__INCLUDED__
142diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h
143index 58ecebc..2132c23 100644
144--- a/lib/engine/ahci_multiplier_phy.h
145+++ b/lib/engine/ahci_multiplier_phy.h
146@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
147
148
149
150-#if __GNUC_PREREQ(3, 4)
151 #pragma once
152-#endif /* __GNUC_PREREQ */
153
154 #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__
155 #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__
156diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h
157index 5ff4cf7..2402473 100644
158--- a/lib/engine/ahci_multiplier_port.h
159+++ b/lib/engine/ahci_multiplier_port.h
160@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
161
162
163
164-#if __GNUC_PREREQ(3, 4)
165 #pragma once
166-#endif /* __GNUC_PREREQ */
167
168 #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__
169 #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__
170diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h
171index e2254e7..a44dae0 100644
172--- a/lib/engine/ahci_phy.h
173+++ b/lib/engine/ahci_phy.h
174@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
175
176
177
178-#if __GNUC_PREREQ(3, 4)
179 #pragma once
180-#endif /* __GNUC_PREREQ */
181
182 #ifndef __AHCI_PHY_H__INCLUDED__
183 #define __AHCI_PHY_H__INCLUDED__
184diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h
185index f9e3308..03c109b 100644
186--- a/lib/engine/ahci_port.h
187+++ b/lib/engine/ahci_port.h
188@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
189
190
191
192-#if __GNUC_PREREQ(3, 4)
193 #pragma once
194-#endif /* __GNUC_PREREQ */
195
196 #ifndef __AHCI_PORT_H__INCLUDED__
197 #define __AHCI_PORT_H__INCLUDED__
198diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h
199index e1c81ae..c70e63e 100644
200--- a/lib/engine/ahci_raid_info.h
201+++ b/lib/engine/ahci_raid_info.h
202@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
203
204
205
206-#if __GNUC_PREREQ(3, 4)
207 #pragma once
208-#endif /* __GNUC_PREREQ */
209
210 #ifndef __AHCI_RAID_INFO_H__INCLUDED__
211 #define __AHCI_RAID_INFO_H__INCLUDED__
212diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h
213index cdd9f13..a91fd2c 100644
214--- a/lib/engine/ahci_tape.h
215+++ b/lib/engine/ahci_tape.h
216@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
217
218
219
220-#if __GNUC_PREREQ(3, 4)
221 #pragma once
222-#endif /* __GNUC_PREREQ */
223
224 #ifndef __AHCI_TAPE_H__INCLUDED__
225 #define __AHCI_TAPE_H__INCLUDED__
226diff --git a/lib/engine/array.h b/lib/engine/array.h
227index 36fb4a4..0986ce3 100644
228--- a/lib/engine/array.h
229+++ b/lib/engine/array.h
230@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
231
232
233
234-#if __GNUC_PREREQ(3, 4)
235 #pragma once
236-#endif /* __GNUC_PREREQ */
237
238 #ifndef __ARRAY_H__INCLUDED__
239 #define __ARRAY_H__INCLUDED__
240diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h
241index 4503914..45dd3db 100644
242--- a/lib/engine/block_device.h
243+++ b/lib/engine/block_device.h
244@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
245
246
247
248-#if __GNUC_PREREQ(3, 4)
249 #pragma once
250-#endif /* __GNUC_PREREQ */
251
252 #ifndef __BLOCK_DEVICE_H__INCLUDED__
253 #define __BLOCK_DEVICE_H__INCLUDED__
254diff --git a/lib/engine/cache.h b/lib/engine/cache.h
255index 72cf521..72da20b 100644
256--- a/lib/engine/cache.h
257+++ b/lib/engine/cache.h
258@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
259
260
261
262-#if __GNUC_PREREQ(3,4)
263 #pragma once
264-#endif /* __GNUC_PREREQ */
265
266 #ifndef __CACHE_H__INCLUDED__
267 #define __CACHE_H__INCLUDED__
268diff --git a/lib/engine/container.h b/lib/engine/container.h
269index 53867b0..c71180c 100644
270--- a/lib/engine/container.h
271+++ b/lib/engine/container.h
272@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
273
274
275
276-#if __GNUC_PREREQ(3,4)
277 #pragma once
278-#endif /* __GNUC_PREREQ */
279
280 #ifndef __CONTAINER_H__INCLUDED__
281 #define __CONTAINER_H__INCLUDED__
282diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h
283index fe9c256..6b4a2e7 100644
284--- a/lib/engine/context_manager.h
285+++ b/lib/engine/context_manager.h
286@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
287
288
289
290-#if __GNUC_PREREQ(3,4)
291 #pragma once
292-#endif /* __GNUC_PREREQ */
293
294 #ifndef __CONTEXT_H__INCLUDED__
295 #define __CONTEXT_H__INCLUDED__
296diff --git a/lib/engine/controller.h b/lib/engine/controller.h
297index a2f188a..6bd078f 100644
298--- a/lib/engine/controller.h
299+++ b/lib/engine/controller.h
300@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
301
302
303
304-#if __GNUC_PREREQ(3, 4)
305 #pragma once
306-#endif /* __GNUC_PREREQ */
307
308 #ifndef __CONTROLLER_H__INCLUDED__
309 #define __CONTROLLER_H__INCLUDED__
310diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h
311index 3faef0c..f4b13cc 100644
312--- a/lib/engine/enclosure.h
313+++ b/lib/engine/enclosure.h
314@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
315
316
317
318-#if __GNUC_PREREQ(3, 4)
319 #pragma once
320-#endif /* __GNUC_PREREQ */
321
322 #ifndef __ENCLOSURE_H__INCLUDED__
323 #define __ENCLOSURE_H__INCLUDED__
324diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h
325index f147e41..269b236 100644
326--- a/lib/engine/end_device.h
327+++ b/lib/engine/end_device.h
328@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
329
330
331
332-#if __GNUC_PREREQ(3, 4)
333 #pragma once
334-#endif /* __GNUC_PREREQ */
335
336 #ifndef __END_DEVICE_H__INCLUDED__
337 #define __END_DEVICE_H__INCLUDED__
338diff --git a/lib/engine/event.h b/lib/engine/event.h
339index cf9bb4f..11a4926 100644
340--- a/lib/engine/event.h
341+++ b/lib/engine/event.h
342@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification,
343 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
344 */
345
346-#if __GNUC_PREREQ(3, 4)
347 #pragma once
348-#endif /* __GNUC_PREREQ */
349
350 #ifndef __EVENT_H__INCLUDED__
351 #define __EVENT_H__INCLUDED__
352diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h
353index 65007b9..a7a8fc3 100644
354--- a/lib/engine/event_manager.h
355+++ b/lib/engine/event_manager.h
356@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
357
358
359
360-#if __GNUC_PREREQ(3, 4)
361 #pragma once
362-#endif /* __GNUC_PREREQ */
363
364 #ifndef __EVENT_MANAGER_H__INCLUDED__
365 #define __EVENT_MANAGER_H__INCLUDED__
366diff --git a/lib/engine/exception.h b/lib/engine/exception.h
367index 171e45d..183ebb5 100644
368--- a/lib/engine/exception.h
369+++ b/lib/engine/exception.h
370@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
371
372
373
374-#if __GNUC_PREREQ(3, 4)
375 #pragma once
376-#endif /* __GNUC_PREREQ */
377
378 #ifndef __EXCEPTION_H__INCLUDED__
379 #define __EXCEPTION_H__INCLUDED__
380diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h
381index 9c2ce39..b49df07 100644
382--- a/lib/engine/filesystem.h
383+++ b/lib/engine/filesystem.h
384@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
385
386
387
388-#if __GNUC_PREREQ(3, 4)
389 #pragma once
390-#endif /* __GNUC_PREREQ */
391
392 #ifndef __FILESYSTEM_H__INCLUDED__
393 #define __FILESYSTEM_H__INCLUDED__
394diff --git a/lib/engine/isci.h b/lib/engine/isci.h
395index ea35cd4..0fa602a 100644
396--- a/lib/engine/isci.h
397+++ b/lib/engine/isci.h
398@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
399
400
401
402-#if __GNUC_PREREQ(3, 4)
403 #pragma once
404-#endif /* __GNUC_PREREQ */
405
406 #ifndef __ISCI_H__INCLUDED__
407 #define __ISCI_H__INCLUDED__
408diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h
409index 87b7e7b..25637f9 100644
410--- a/lib/engine/isci_cdrom.h
411+++ b/lib/engine/isci_cdrom.h
412@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
413
414
415
416-#if __GNUC_PREREQ(3, 4)
417 #pragma once
418-#endif /* __GNUC_PREREQ */
419
420 #ifndef __ISCI_CDROM_H__INCLUDED__
421 #define __ISCI_CDROM_H__INCLUDED__
422diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h
423index 596c3cf..8dd0dae 100644
424--- a/lib/engine/isci_disk.h
425+++ b/lib/engine/isci_disk.h
426@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
427
428
429
430-#if __GNUC_PREREQ(3, 4)
431 #pragma once
432-#endif /* __GNUC_PREREQ */
433
434 #ifndef __ISCI_DISK_H__INCLUDED__
435 #define __ISCI_DISK_H__INCLUDED__
436diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h
437index ca7c2f1..7dc1920 100644
438--- a/lib/engine/isci_expander.h
439+++ b/lib/engine/isci_expander.h
440@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
441
442
443
444-#if __GNUC_PREREQ(3, 4)
445 #pragma once
446-#endif /* __GNUC_PREREQ */
447
448 #ifndef __ISCI_EXPANDER_H__INCLUDED__
449 #define __ISCI_EXPANDER_H__INCLUDED__
450diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h
451index c9cd770..d3d2832 100644
452--- a/lib/engine/isci_expander_phy.h
453+++ b/lib/engine/isci_expander_phy.h
454@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
455
456
457
458-#if __GNUC_PREREQ(3, 4)
459 #pragma once
460-#endif /* __GNUC_PREREQ */
461
462 #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__
463 #define __ISCI_EXPANDER_PHY_H__INCLUDED__
464diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h
465index e65a124..4fc9310 100644
466--- a/lib/engine/isci_expander_port.h
467+++ b/lib/engine/isci_expander_port.h
468@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
469
470
471
472-#if __GNUC_PREREQ(3, 4)
473 #pragma once
474-#endif /* __GNUC_PREREQ */
475
476 #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__
477 #define __ISCI_EXPANDER_PORT_H__INCLUDED__
478diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h
479index 767a5b2..105c697 100644
480--- a/lib/engine/isci_phy.h
481+++ b/lib/engine/isci_phy.h
482@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
483
484
485
486-#if __GNUC_PREREQ(3, 4)
487 #pragma once
488-#endif /* __GNUC_PREREQ */
489
490 #ifndef __ISCI_PHY_H__INCLUDED__
491 #define __ISCI_PHY_H__INCLUDED__
492diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h
493index b80be7f..5ccc151 100644
494--- a/lib/engine/isci_port.h
495+++ b/lib/engine/isci_port.h
496@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
497
498
499
500-#if __GNUC_PREREQ(3, 4)
501 #pragma once
502-#endif /* __GNUC_PREREQ */
503
504 #ifndef __ISCI_PORT_H__INCLUDED__
505 #define __ISCI_PORT_H__INCLUDED__
506diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h
507index 1df6477..b0b046a 100644
508--- a/lib/engine/isci_raid_info.h
509+++ b/lib/engine/isci_raid_info.h
510@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
511
512
513
514-#if __GNUC_PREREQ(3, 4)
515 #pragma once
516-#endif /* __GNUC_PREREQ */
517
518 #ifndef __ISCI_RAID_INFO_H__INCLUDED__
519 #define __ISCI_RAID_INFO_H__INCLUDED__
520diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h
521index 985f767..a2cef2d 100644
522--- a/lib/engine/isci_tape.h
523+++ b/lib/engine/isci_tape.h
524@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
525
526
527
528-#if __GNUC_PREREQ(3, 4)
529 #pragma once
530-#endif /* __GNUC_PREREQ */
531
532 #ifndef __ISCI_TAPE_H__INCLUDED__
533 #define __ISCI_TAPE_H__INCLUDED__
534diff --git a/lib/engine/list.h b/lib/engine/list.h
535index 9a7c3c3..6395830 100644
536--- a/lib/engine/list.h
537+++ b/lib/engine/list.h
538@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
539
540
541
542-#if __GNUC_PREREQ(3, 4)
543 #pragma once
544-#endif /* __GNUC_PREREQ */
545
546 #ifndef __LIST_H__INCLUDED__
547 #define __LIST_H__INCLUDED__
548diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h
549index c94020f..e415b4f 100644
550--- a/lib/engine/mdadm_config.h
551+++ b/lib/engine/mdadm_config.h
552@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification,
553 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
554 */
555
556-#if __GNUC_PREREQ(3, 4)
557 #pragma once
558-#endif /* __GNUC_PREREQ */
559
560 #ifndef __MDADM_CONFIG_H__INCLUDED__
561 #define __MDADM_CONFIG_H__INCLUDED__
562diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h
563index 533370e..694e2a5 100644
564--- a/lib/engine/multimedia_device.h
565+++ b/lib/engine/multimedia_device.h
566@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
567
568
569
570-#if __GNUC_PREREQ(3, 4)
571 #pragma once
572-#endif /* __GNUC_PREREQ */
573
574 #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__
575 #define __MULTIMEDIA_DEVICE_H__INCLUDED__
576diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h
577index 70ebb32..0f00e52 100644
578--- a/lib/engine/nondisk_device.h
579+++ b/lib/engine/nondisk_device.h
580@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
581
582
583
584-#if __GNUC_PREREQ(3, 4)
585 #pragma once
586-#endif /* __GNUC_PREREQ */
587
588 #ifndef __CHARACTER_DEVICE_H__INCLUDED__
589 #define __CHARACTER_DEVICE_H__INCLUDED__
590diff --git a/lib/engine/object.h b/lib/engine/object.h
591index b52d3d3..345d58c 100644
592--- a/lib/engine/object.h
593+++ b/lib/engine/object.h
594@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
595
596
597
598-#if __GNUC_PREREQ(3, 4)
599 #pragma once
600-#endif /* __GNUC_PREREQ */
601
602 #ifndef __OBJECT_H__INCLUDED__
603 #define __OBJECT_H__INCLUDED__
604diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h
605index 376f296..c5129a0 100644
606--- a/lib/engine/pci_header.h
607+++ b/lib/engine/pci_header.h
608@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
609
610
611
612-#if __GNUC_PREREQ(3, 4)
613 #pragma once
614-#endif /* __GNUC_PREREQ */
615
616 #ifndef __PCI_HEADER_H__INCLUDED__
617 #define __PCI_HEADER_H__INCLUDED__
618diff --git a/lib/engine/phy.h b/lib/engine/phy.h
619index f5730a0..c59f7c8 100644
620--- a/lib/engine/phy.h
621+++ b/lib/engine/phy.h
622@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
623
624
625
626-#if __GNUC_PREREQ(3, 4)
627 #pragma once
628-#endif /* __GNUC_PREREQ */
629
630 #ifndef __PHY_H__INCLUDED__
631 #define __PHY_H__INCLUDED__
632diff --git a/lib/engine/port.h b/lib/engine/port.h
633index 2f33876..cc48c7c 100644
634--- a/lib/engine/port.h
635+++ b/lib/engine/port.h
636@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
637
638
639
640-#if __GNUC_PREREQ(3,4)
641 #pragma once
642-#endif /* __GNUC_PREREQ */
643
644 #ifndef __PORT_H__INCLUDED__
645 #define __PORT_H__INCLUDED__
646diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h
647index 998e80c..2174162 100644
648--- a/lib/engine/raid_device.h
649+++ b/lib/engine/raid_device.h
650@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
651
652
653
654-#if __GNUC_PREREQ(3, 4)
655 #pragma once
656-#endif /* __GNUC_PREREQ */
657
658 #ifndef __RAID_DEVICE_H__INCLUDED__
659 #define __RAID_DEVICE_H__INCLUDED__
660diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h
661index 174698a..302be9b 100644
662--- a/lib/engine/raid_info.h
663+++ b/lib/engine/raid_info.h
664@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
665
666
667
668-#if __GNUC_PREREQ(3, 4)
669 #pragma once
670-#endif /* __GNUC_PREREQ */
671
672 #ifndef __RAID_INFO_H__INCLUDED__
673 #define __RAID_INFO_H__INCLUDED__
674diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h
675index c086656..4ddfee3 100644
676--- a/lib/engine/remote_port.h
677+++ b/lib/engine/remote_port.h
678@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
679
680
681
682-#if __GNUC_PREREQ(3, 4)
683 #pragma once
684-#endif /* __GNUC_PREREQ */
685
686 #ifndef __REMOTE_PORT_H__INCLUDED__
687 #define __REMOTE_PORT_H__INCLUDED__
688diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h
689index 5f857a6..284621e 100644
690--- a/lib/engine/routing_device.h
691+++ b/lib/engine/routing_device.h
692@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
693
694
695
696-#if __GNUC_PREREQ(3, 4)
697 #pragma once
698-#endif /* __GNUC_PREREQ */
699
700 #ifndef __ROUTING_DEVICE_H__INCLUDED__
701 #define __ROUTING_DEVICE_H__INCLUDED__
702diff --git a/lib/engine/session.h b/lib/engine/session.h
703index a901d1c..3200da1 100644
704--- a/lib/engine/session.h
705+++ b/lib/engine/session.h
706@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
707
708
709
710-#if __GNUC_PREREQ(3, 4)
711 #pragma once
712-#endif /* __GNUC_PREREQ */
713
714 #ifndef __SESSION_H__INCLUDED__
715 #define __SESSION_H__INCLUDED__
716diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h
717index 7177064..87e16c3 100644
718--- a/lib/engine/session_manager.h
719+++ b/lib/engine/session_manager.h
720@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
721
722
723
724-#if __GNUC_PREREQ(3, 4)
725 #pragma once
726-#endif /* __GNUC_PREREQ */
727
728 #ifndef __SESSION_MANAGER_H__INCLUDED__
729 #define __SESSION_MANAGER_H__INCLUDED__
730diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h
731index ddeb66f..20bdab2 100644
732--- a/lib/engine/storage_device.h
733+++ b/lib/engine/storage_device.h
734@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
735
736
737
738-#if __GNUC_PREREQ(3, 4)
739 #pragma once
740-#endif /* __GNUC_PREREQ */
741
742 #ifndef __STORAGE_DEVICE_H__INCLUDED__
743 #define __STORAGE_DEVICE_H__INCLUDED__
744diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h
745index 9bc111a..b29bd68 100644
746--- a/lib/engine/stream_device.h
747+++ b/lib/engine/stream_device.h
748@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
749
750
751
752-#if __GNUC_PREREQ(3, 4)
753 #pragma once
754-#endif /* __GNUC_PREREQ */
755
756 #ifndef __STREAM_DEVICE_H__INCLUDED__
757 #define __STREAM_DEVICE_H__INCLUDED__
758diff --git a/lib/engine/string.h b/lib/engine/string.h
759index 3007dc7..6f348c9 100644
760--- a/lib/engine/string.h
761+++ b/lib/engine/string.h
762@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
763
764
765
766-#if __GNUC_PREREQ(3, 4)
767 #pragma once
768-#endif /* __GNUC_PREREQ */
769
770 #ifndef __STRING_H__INCLUDED__
771 #define __STRING_H__INCLUDED__
772diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h
773index fe79eac..4a13627 100644
774--- a/lib/engine/unique_id_manager.h
775+++ b/lib/engine/unique_id_manager.h
776@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
777
778
779
780-#if __GNUC_PREREQ(3, 4)
781 #pragma once
782-#endif /* __GNUC_PREREQ */
783
784 #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__
785 #define __UNIQUE_ID_MANAGER_H__INCLUDED__
786diff --git a/lib/engine/utils.h b/lib/engine/utils.h
787index 86c20cf..5525303 100644
788--- a/lib/engine/utils.h
789+++ b/lib/engine/utils.h
790@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
791
792
793
794-#if __GNUC_PREREQ(3, 4)
795 #pragma once
796-#endif /* __GNUC_PREREQ */
797
798 #ifndef __UTILS_H__INCLUDED__
799 #define __UTILS_H__INCLUDED__
800diff --git a/lib/engine/volume.h b/lib/engine/volume.h
801index 9a63cbf..3347b31 100644
802--- a/lib/engine/volume.h
803+++ b/lib/engine/volume.h
804@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
805
806
807
808-#if __GNUC_PREREQ(3, 4)
809 #pragma once
810-#endif /* __GNUC_PREREQ */
811
812 // Forward declarations
813 class Array;
814diff --git a/lib/log/log.h b/lib/log/log.h
815index c0bd63e..8b5f171 100644
816--- a/lib/log/log.h
817+++ b/lib/log/log.h
818@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
819
820
821
822-#if __GNUC_PREREQ(3, 4)
823 #pragma once
824-#endif /* __GNUC_PREREQ */
825
826 #ifndef __LOG_H__INCLUDED__
827 #define __LOG_H__INCLUDED__
828diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
829index 7fbb0e9..800b120 100644
830--- a/lib/mpb/machine_bytes.h
831+++ b/lib/mpb/machine_bytes.h
832@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
833
834
835
836-#if __GNUC_PREREQ(3, 4)
837 #pragma once
838-#endif /* __GNUC_PREREQ */
839
840 #ifndef __ENDIAN_H__INCLUDED__
841 #define __ENDIAN_H__INCLUDED__
842diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
843index 01782af..c42cdfb 100644
844--- a/lib/mpb/mpb.h
845+++ b/lib/mpb/mpb.h
846@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
847
848
849
850-#if __GNUC_PREREQ(3, 4)
851 #pragma once
852-#endif /* __GNUC_PREREQ */
853
854 #ifndef __MPB_H__INCLUDED__
855 #define __MPB_H__INCLUDED__
856diff --git a/lib/orom/orom.h b/lib/orom/orom.h
857index f76e3ee..e10311d 100644
858--- a/lib/orom/orom.h
859+++ b/lib/orom/orom.h
860@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
861
862
863
864-#if __GNUC_PREREQ(3, 4)
865 #pragma once
866-#endif /* __GNUC_PREREQ */
867
868 #ifndef __OROM_H__INCLUDED__
869 #define __OROM_H__INCLUDED__
870--
8712.13.1
872
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
new file mode 100644
index 0000000000..8fdbf3e60e
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
@@ -0,0 +1,57 @@
1From 874da836bc857e5942675c59e19f4fd8ad09b13e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 29 Aug 2019 14:08:19 -0700
4Subject: [PATCH 1/4] log: Avoid shadowing functions from std lib
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 lib/log/log.c | 2 +-
9 lib/log/log.h | 8 ++++----
10 2 files changed, 5 insertions(+), 5 deletions(-)
11
12diff --git a/lib/log/log.c b/lib/log/log.c
13index 7d8e17c..18b67a5 100644
14--- a/lib/log/log.c
15+++ b/lib/log/log.c
16@@ -82,7 +82,7 @@ enum log_level log_get_level(void) {
17 }
18
19 /* */
20-void __log(enum log_level level, const char *message) {
21+void _ssiap_log(enum log_level level, const char *message) {
22 struct tm tm;
23 struct timeval tv;
24
25diff --git a/lib/log/log.h b/lib/log/log.h
26index d94e482..66a707b 100644
27--- a/lib/log/log.h
28+++ b/lib/log/log.h
29@@ -53,13 +53,13 @@ enum log_level {
30 };
31
32 /* */
33-#define log(__level, __message) \
34+#define ssiap_log(__level, __message) \
35 do { if (log_get_level() >= (enum log_level)(__level)) \
36- __log(__level, __message); \
37+ _ssiap_log(__level, __message); \
38 } while (0)
39
40 #define dlog(__message) \
41- log(LOG_DEBUG, __message);
42+ ssiap_log(LOG_DEBUG, __message);
43
44 /* */
45 void log_init(enum log_level level, const char *path);
46@@ -68,7 +68,7 @@ void log_init(enum log_level level, const char *path);
47 void log_fini(void);
48
49 /* */
50-void __log(enum log_level level, const char *message);
51+void _ssiap_log(enum log_level level, const char *message);
52
53 /* */
54 enum log_level log_get_level(void);
55--
562.23.0
57
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
deleted file mode 100644
index 27df9b5de3..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 25 Jul 2017 19:08:21 -0700
4Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and
5 zero, actually with NULL
6
7Comparing which is large or small between a pointer and NULL
8however, looks completely illogical. Ordered comparison of
9two valid pointers is legit, but no pointer will be smaller
10than NULL , so comparing if a pointer is larger than NULL
11simply means if the pointer is not NULL.
12
13Fixes errors found with clang e.g.
14
15| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int')
16| if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
17| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
18
19Signed-off-by: Khem Raj <raj.khem@gmail.com>
20---
21 tools/ssieventmonitor.cpp | 2 +-
22 1 file changed, 1 insertion(+), 1 deletion(-)
23
24diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
25index f04b8f0..7a00122 100644
26--- a/tools/ssieventmonitor.cpp
27+++ b/tools/ssieventmonitor.cpp
28@@ -336,7 +336,7 @@ static int _read_mdstat(int fd)
29 if (!strncmp(line, "md", 2)) {
30 if (strstr(line, INACTIVE_STR)) { /* possibly container */
31 char nextline[1024];
32- if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
33+ if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) {
34 fclose(mdstat);
35 return 1;
36 }
37--
382.13.3
39
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
deleted file mode 100644
index 351301cdc3..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
+++ /dev/null
@@ -1,123 +0,0 @@
1From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 22:08:35 -0700
4Subject: [PATCH 2/6] Convert macros into functions
5
6This helps in fixing the security format warnings
7add -fno-builtin-log
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/engine/Makefile.am | 3 ++-
14 lib/log/Makefile.am | 2 ++
15 lib/log/log.h | 34 +++++++++++++++++++++-------------
16 src/Makefile.am | 3 ++-
17 4 files changed, 27 insertions(+), 15 deletions(-)
18
19Index: ssiapi.1.0.1/lib/engine/Makefile.am
20===================================================================
21--- ssiapi.1.0.1.orig/lib/engine/Makefile.am
22+++ ssiapi.1.0.1/lib/engine/Makefile.am
23@@ -113,4 +113,5 @@ libengine_la_SOURCES = \
24 libengine_la_CPPFLAGS = \
25 -I$(top_srcdir) \
26 -I$(top_srcdir)/include \
27- -I$(top_srcdir)/lib
28+ -I$(top_srcdir)/lib \
29+ -fno-builtin-log
30Index: ssiapi.1.0.1/lib/log/Makefile.am
31===================================================================
32--- ssiapi.1.0.1.orig/lib/log/Makefile.am
33+++ ssiapi.1.0.1/lib/log/Makefile.am
34@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la
35 liblog_la_SOURCES = \
36 log.c \
37 log.h
38+
39+liblog_la_CPPFLAGS = -fno-builtin-log
40Index: ssiapi.1.0.1/lib/log/log.h
41===================================================================
42--- ssiapi.1.0.1.orig/lib/log/log.h
43+++ ssiapi.1.0.1/lib/log/log.h
44@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG
45 #if defined(__cplusplus)
46 extern "C" {
47 #endif /* __cplusplus */
48-
49+#include <stdarg.h>
50 /* */
51 enum log_level {
52 LOG_FIRST = 0,
53@@ -37,26 +37,34 @@ enum log_level {
54 };
55
56 /* */
57-#define log(__level, __format, ...) \
58- do { if (log_get_level() >= (enum log_level)(__level)) \
59- __log(__level, __format, ## __VA_ARGS__); \
60- } while (0)
61-
62-#define dlog(__format, ...) \
63- log(LOG_DEBUG, __format, ## __VA_ARGS__);
64+void __log(enum log_level level, const char *format, ...)
65+ __attribute__((format(printf, 2, 3)));
66
67 /* */
68-void log_init(enum log_level level, const char *path);
69+enum log_level log_get_level(void);
70
71 /* */
72-void log_fini(void);
73-
74+static inline void log(enum log_level __level, const char* __format, ...) {
75+ va_list ap;
76+ va_start(ap, __format);
77+ do {
78+ if (log_get_level() >= (enum log_level)(__level))
79+ __log(__level, __format, ap);
80+ } while (0);
81+ va_end(ap);
82+}
83+
84+static inline void dlog(const char* __format, ...) {
85+ va_list ap;
86+ va_start(ap, __format);
87+ log(LOG_DEBUG, __format, ap);
88+ va_end(ap);
89+}
90 /* */
91-void __log(enum log_level level, const char *format, ...)
92- __attribute__((format(printf, 2, 3)));
93+void log_init(enum log_level level, const char *path);
94
95 /* */
96-enum log_level log_get_level(void);
97+void log_fini(void);
98
99 /* */
100 void log_set_level(enum log_level level);
101Index: ssiapi.1.0.1/src/Makefile.am
102===================================================================
103--- ssiapi.1.0.1.orig/src/Makefile.am
104+++ ssiapi.1.0.1/src/Makefile.am
105@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la
106 libssi_la_CPPFLAGS = \
107 -I$(top_srcdir) \
108 -I$(top_srcdir)/include \
109- -I$(top_srcdir)/lib
110+ -I$(top_srcdir)/lib \
111+ -fno-builtin-log
112
113 libssi_la_LDFLAGS = \
114 $(SGUTILS_LDFLAGS) \
115Index: ssiapi.1.0.1/lib/efi/Makefile.am
116===================================================================
117--- ssiapi.1.0.1.orig/lib/efi/Makefile.am
118+++ ssiapi.1.0.1/lib/efi/Makefile.am
119@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la
120 libefi_la_SOURCES = \
121 efi.cpp \
122 efi.h
123+libefi_la_CPPFLAGS = -fno-builtin-log
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
new file mode 100644
index 0000000000..acc718d23d
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
@@ -0,0 +1,54 @@
1From 01a75b23382fd042673d1f00fce708ba6c67d05a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Aug 2019 13:12:54 -0700
4Subject: [PATCH] Use stangard int types
5
6__unitn_* are internal to GNU libc lets use portable types
7
8Fixes
9error: unknown type name '__uint8_t'
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/engine/end_device.cpp | 13 +++++++------
14 1 file changed, 7 insertions(+), 6 deletions(-)
15
16diff --git a/lib/engine/end_device.cpp b/lib/engine/end_device.cpp
17index 5a66de9..da078bf 100644
18--- a/lib/engine/end_device.cpp
19+++ b/lib/engine/end_device.cpp
20@@ -36,6 +36,7 @@
21 #include <sys/ioctl.h>
22 #include <fcntl.h>
23 #include <linux/hdreg.h>
24+#include <stdint.h>
25 #include <unistd.h>
26 #include <linux/fs.h>
27 #include <climits>
28@@ -90,20 +91,20 @@ using boost::shared_ptr;
29
30 struct AtaCommand
31 {
32- __uint8_t command;
33- __uint8_t obsolete1;
34- __uint8_t obsolete2;
35- __uint8_t transportDependent;
36+ uint8_t command;
37+ uint8_t obsolete1;
38+ uint8_t obsolete2;
39+ uint8_t transportDependent;
40 };
41
42 struct AtaIdentifyCall
43 {
44 AtaCommand command;
45- __uint16_t data[256];
46+ uint16_t data[256];
47 };
48
49 namespace {
50- __uint16_t swap(__uint16_t value)
51+ uint16_t swap(uint16_t value)
52 {
53 return (value >> 8) | (value << 8);
54 }
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
new file mode 100644
index 0000000000..2eeab54e53
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
@@ -0,0 +1,1409 @@
1From ef90544f8df369781a6ef094330c9cfa9f0ee1e4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 29 Aug 2019 14:09:11 -0700
4Subject: [PATCH 2/4] boost: Backport clang support
5
6backport headers from boost 1.59
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 lib/boost/config/compiler/clang.hpp | 272 +++++++++
11 lib/boost/config/stdlib/libcpp.hpp | 80 +++
12 lib/boost/cstdint.hpp | 542 ++++++++++++++++++
13 .../detail/sp_counted_base_clang.hpp | 140 +++++
14 4 files changed, 1034 insertions(+)
15 create mode 100644 lib/boost/config/compiler/clang.hpp
16 create mode 100644 lib/boost/config/stdlib/libcpp.hpp
17 create mode 100644 lib/boost/cstdint.hpp
18 create mode 100644 lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp
19
20--- /dev/null
21+++ b/lib/boost/config/compiler/clang.hpp
22@@ -0,0 +1,272 @@
23+
24+// (C) Copyright Douglas Gregor 2010
25+//
26+// Use, modification and distribution are subject to the
27+// Boost Software License, Version 1.0. (See accompanying file
28+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
29+
30+// See http://www.boost.org for most recent version.
31+
32+// Clang compiler setup.
33+
34+#define BOOST_HAS_PRAGMA_ONCE
35+
36+// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
37+#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
38+# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
39+#endif
40+
41+// When compiling with clang before __has_extension was defined,
42+// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
43+// clang reports a compiler error. So the only workaround found is:
44+
45+#ifndef __has_extension
46+#define __has_extension __has_feature
47+#endif
48+
49+#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
50+# define BOOST_NO_EXCEPTIONS
51+#endif
52+
53+#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
54+# define BOOST_NO_RTTI
55+#endif
56+
57+#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
58+# define BOOST_NO_TYPEID
59+#endif
60+
61+#if defined(__int64) && !defined(__GNUC__)
62+# define BOOST_HAS_MS_INT64
63+#endif
64+
65+#define BOOST_HAS_NRVO
66+
67+// Branch prediction hints
68+#if defined(__has_builtin)
69+#if __has_builtin(__builtin_expect)
70+#define BOOST_LIKELY(x) __builtin_expect(x, 1)
71+#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
72+#endif
73+#endif
74+
75+// Clang supports "long long" in all compilation modes.
76+#define BOOST_HAS_LONG_LONG
77+
78+//
79+// We disable this if the compiler is really nvcc as it
80+// doesn't actually support __int128 as of CUDA_VERSION=5000
81+// even though it defines __SIZEOF_INT128__.
82+// See https://svn.boost.org/trac/boost/ticket/10418
83+// Only re-enable this for nvcc if you're absolutely sure
84+// of the circumstances under which it's supported:
85+//
86+#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
87+# define BOOST_HAS_INT128
88+#endif
89+
90+
91+//
92+// Dynamic shared object (DSO) and dynamic-link library (DLL) support
93+//
94+#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
95+# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
96+# define BOOST_SYMBOL_IMPORT
97+# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
98+#endif
99+
100+//
101+// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
102+// between switch labels.
103+//
104+#if __cplusplus >= 201103L && defined(__has_warning)
105+# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
106+# define BOOST_FALLTHROUGH [[clang::fallthrough]]
107+# endif
108+#endif
109+
110+#if !__has_feature(cxx_auto_type)
111+# define BOOST_NO_CXX11_AUTO_DECLARATIONS
112+# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
113+#endif
114+
115+//
116+// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
117+//
118+#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
119+# define BOOST_NO_CXX11_CHAR16_T
120+# define BOOST_NO_CXX11_CHAR32_T
121+#endif
122+
123+#if !__has_feature(cxx_constexpr)
124+# define BOOST_NO_CXX11_CONSTEXPR
125+#endif
126+
127+#if !__has_feature(cxx_decltype)
128+# define BOOST_NO_CXX11_DECLTYPE
129+#endif
130+
131+#if !__has_feature(cxx_decltype_incomplete_return_types)
132+# define BOOST_NO_CXX11_DECLTYPE_N3276
133+#endif
134+
135+#if !__has_feature(cxx_defaulted_functions)
136+# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
137+#endif
138+
139+#if !__has_feature(cxx_deleted_functions)
140+# define BOOST_NO_CXX11_DELETED_FUNCTIONS
141+#endif
142+
143+#if !__has_feature(cxx_explicit_conversions)
144+# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
145+#endif
146+
147+#if !__has_feature(cxx_default_function_template_args)
148+# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
149+#endif
150+
151+#if !__has_feature(cxx_generalized_initializers)
152+# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
153+#endif
154+
155+#if !__has_feature(cxx_lambdas)
156+# define BOOST_NO_CXX11_LAMBDAS
157+#endif
158+
159+#if !__has_feature(cxx_local_type_template_args)
160+# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
161+#endif
162+
163+#if !__has_feature(cxx_noexcept)
164+# define BOOST_NO_CXX11_NOEXCEPT
165+#endif
166+
167+#if !__has_feature(cxx_nullptr)
168+# define BOOST_NO_CXX11_NULLPTR
169+#endif
170+
171+#if !__has_feature(cxx_range_for)
172+# define BOOST_NO_CXX11_RANGE_BASED_FOR
173+#endif
174+
175+#if !__has_feature(cxx_raw_string_literals)
176+# define BOOST_NO_CXX11_RAW_LITERALS
177+#endif
178+
179+#if !__has_feature(cxx_reference_qualified_functions)
180+# define BOOST_NO_CXX11_REF_QUALIFIERS
181+#endif
182+
183+#if !__has_feature(cxx_generalized_initializers)
184+# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
185+#endif
186+
187+#if !__has_feature(cxx_rvalue_references)
188+# define BOOST_NO_CXX11_RVALUE_REFERENCES
189+#endif
190+
191+#if !__has_feature(cxx_strong_enums)
192+# define BOOST_NO_CXX11_SCOPED_ENUMS
193+#endif
194+
195+#if !__has_feature(cxx_static_assert)
196+# define BOOST_NO_CXX11_STATIC_ASSERT
197+#endif
198+
199+#if !__has_feature(cxx_alias_templates)
200+# define BOOST_NO_CXX11_TEMPLATE_ALIASES
201+#endif
202+
203+#if !__has_feature(cxx_unicode_literals)
204+# define BOOST_NO_CXX11_UNICODE_LITERALS
205+#endif
206+
207+#if !__has_feature(cxx_variadic_templates)
208+# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
209+#endif
210+
211+#if !__has_feature(cxx_user_literals)
212+# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
213+#endif
214+
215+#if !__has_feature(cxx_alignas)
216+# define BOOST_NO_CXX11_ALIGNAS
217+#endif
218+
219+#if !__has_feature(cxx_trailing_return)
220+# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
221+#endif
222+
223+#if !__has_feature(cxx_inline_namespaces)
224+# define BOOST_NO_CXX11_INLINE_NAMESPACES
225+#endif
226+
227+#if !__has_feature(cxx_override_control)
228+# define BOOST_NO_CXX11_FINAL
229+#endif
230+
231+#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
232+# define BOOST_NO_CXX14_BINARY_LITERALS
233+#endif
234+
235+#if !__has_feature(__cxx_decltype_auto__)
236+# define BOOST_NO_CXX14_DECLTYPE_AUTO
237+#endif
238+
239+#if !__has_feature(__cxx_aggregate_nsdmi__)
240+# define BOOST_NO_CXX14_AGGREGATE_NSDMI
241+#endif
242+
243+#if !__has_feature(__cxx_init_captures__)
244+# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
245+#endif
246+
247+#if !__has_feature(__cxx_generic_lambdas__)
248+# define BOOST_NO_CXX14_GENERIC_LAMBDAS
249+#endif
250+
251+// clang < 3.5 has a defect with dependent type, like following.
252+//
253+// template <class T>
254+// constexpr typename enable_if<pred<T> >::type foo(T &)
255+// { } // error: no return statement in constexpr function
256+//
257+// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
258+// Therefore we don't care such case.
259+//
260+// Note that we can't check Clang version directly as the numbering system changes depending who's
261+// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
262+// so instead verify that we have a feature that was introduced at the same time as working C++14
263+// constexpr (generic lambda's in this case):
264+//
265+#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
266+# define BOOST_NO_CXX14_CONSTEXPR
267+#endif
268+
269+#if !__has_feature(__cxx_return_type_deduction__)
270+# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
271+#endif
272+
273+#if !__has_feature(__cxx_variable_templates__)
274+# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
275+#endif
276+
277+#if __cplusplus < 201400
278+// All versions with __cplusplus above this value seem to support this:
279+# define BOOST_NO_CXX14_DIGIT_SEPARATORS
280+#endif
281+
282+
283+// Unused attribute:
284+#if defined(__GNUC__) && (__GNUC__ >= 4)
285+# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
286+#endif
287+
288+#ifndef BOOST_COMPILER
289+# define BOOST_COMPILER "Clang version " __clang_version__
290+#endif
291+
292+// Macro used to identify the Clang compiler.
293+#define BOOST_CLANG 1
294+
295--- /dev/null
296+++ b/lib/boost/config/stdlib/libcpp.hpp
297@@ -0,0 +1,80 @@
298+// (C) Copyright Christopher Jefferson 2011.
299+// Use, modification and distribution are subject to the
300+// Boost Software License, Version 1.0. (See accompanying file
301+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
302+
303+// See http://www.boost.org for most recent version.
304+
305+// config for libc++
306+// Might need more in here later.
307+
308+#if !defined(_LIBCPP_VERSION)
309+# include <ciso646>
310+# if !defined(_LIBCPP_VERSION)
311+# error "This is not libc++!"
312+# endif
313+#endif
314+
315+#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
316+
317+#define BOOST_HAS_THREADS
318+
319+#ifdef _LIBCPP_HAS_NO_VARIADICS
320+# define BOOST_NO_CXX11_HDR_TUPLE
321+#endif
322+
323+// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
324+// allocator model. The C++11 allocator model requires a conforming
325+// std::allocator_traits which is only possible with C++11 template
326+// aliases since members rebind_alloc and rebind_traits require it.
327+#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
328+# define BOOST_NO_CXX11_ALLOCATOR
329+#endif
330+
331+#if __cplusplus < 201103
332+# define BOOST_NO_CXX11_HDR_ARRAY
333+# define BOOST_NO_CXX11_HDR_CODECVT
334+# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
335+# define BOOST_NO_CXX11_HDR_FORWARD_LIST
336+# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
337+# define BOOST_NO_CXX11_HDR_MUTEX
338+# define BOOST_NO_CXX11_HDR_RANDOM
339+# define BOOST_NO_CXX11_HDR_RATIO
340+# define BOOST_NO_CXX11_HDR_REGEX
341+# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
342+# define BOOST_NO_CXX11_HDR_THREAD
343+# define BOOST_NO_CXX11_HDR_TUPLE
344+# define BOOST_NO_CXX11_HDR_TYPEINDEX
345+# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
346+# define BOOST_NO_CXX11_HDR_UNORDERED_SET
347+# define BOOST_NO_CXX11_NUMERIC_LIMITS
348+# define BOOST_NO_CXX11_ALLOCATOR
349+# define BOOST_NO_CXX11_SMART_PTR
350+# define BOOST_NO_CXX11_HDR_FUNCTIONAL
351+# define BOOST_NO_CXX11_STD_ALIGN
352+# define BOOST_NO_CXX11_ADDRESSOF
353+#endif
354+
355+//
356+// These appear to be unusable/incomplete so far:
357+//
358+# define BOOST_NO_CXX11_HDR_CHRONO
359+# define BOOST_NO_CXX11_HDR_FUTURE
360+# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
361+# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
362+# define BOOST_NO_CXX11_HDR_ATOMIC
363+
364+// libc++ uses a non-standard messages_base
365+#define BOOST_NO_STD_MESSAGES
366+
367+#if defined(__has_include)
368+#if !__has_include(<shared_mutex>)
369+# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
370+#elif __cplusplus <= 201103
371+# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
372+#endif
373+#elif __cplusplus < 201402
374+# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
375+#endif
376+
377+// --- end ---
378--- /dev/null
379+++ b/lib/boost/cstdint.hpp
380@@ -0,0 +1,542 @@
381+// boost cstdint.hpp header file ------------------------------------------//
382+
383+// (C) Copyright Beman Dawes 1999.
384+// (C) Copyright Jens Mauer 2001
385+// (C) Copyright John Maddock 2001
386+// Distributed under the Boost
387+// Software License, Version 1.0. (See accompanying file
388+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
389+
390+// See http://www.boost.org/libs/integer for documentation.
391+
392+// Revision History
393+// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
394+// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer)
395+// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
396+// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
397+// 23 Sep 00 Added INTXX_C macro support (John Maddock).
398+// 22 Sep 00 Better 64-bit support (John Maddock)
399+// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost
400+// 8 Aug 99 Initial version (Beman Dawes)
401+
402+
403+#ifndef BOOST_CSTDINT_HPP
404+#define BOOST_CSTDINT_HPP
405+
406+//
407+// Since we always define the INT#_C macros as per C++0x,
408+// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
409+// thing if possible, and so that the user knows that the macros
410+// are actually defined as per C99.
411+//
412+#ifndef __STDC_CONSTANT_MACROS
413+# define __STDC_CONSTANT_MACROS
414+#endif
415+
416+#include <boost/config.hpp>
417+
418+//
419+// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
420+// depending upon what headers happen to have been included first...
421+// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
422+// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
423+//
424+#if defined(BOOST_HAS_STDINT_H) \
425+ && (!defined(__GLIBC__) \
426+ || defined(__GLIBC_HAVE_LONG_LONG) \
427+ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
428+
429+// The following #include is an implementation artifact; not part of interface.
430+# ifdef __hpux
431+// HP-UX has a vaguely nice <stdint.h> in a non-standard location
432+# include <inttypes.h>
433+# ifdef __STDC_32_MODE__
434+ // this is triggered with GCC, because it defines __cplusplus < 199707L
435+# define BOOST_NO_INT64_T
436+# endif
437+# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
438+# include <inttypes.h>
439+# else
440+# include <stdint.h>
441+
442+// There is a bug in Cygwin two _C macros
443+# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
444+# undef INTMAX_C
445+# undef UINTMAX_C
446+# define INTMAX_C(c) c##LL
447+# define UINTMAX_C(c) c##ULL
448+# endif
449+
450+# endif
451+
452+#ifdef __QNX__
453+
454+// QNX (Dinkumware stdlib) defines these as non-standard names.
455+// Reflect to the standard names.
456+
457+typedef ::intleast8_t int_least8_t;
458+typedef ::intfast8_t int_fast8_t;
459+typedef ::uintleast8_t uint_least8_t;
460+typedef ::uintfast8_t uint_fast8_t;
461+
462+typedef ::intleast16_t int_least16_t;
463+typedef ::intfast16_t int_fast16_t;
464+typedef ::uintleast16_t uint_least16_t;
465+typedef ::uintfast16_t uint_fast16_t;
466+
467+typedef ::intleast32_t int_least32_t;
468+typedef ::intfast32_t int_fast32_t;
469+typedef ::uintleast32_t uint_least32_t;
470+typedef ::uintfast32_t uint_fast32_t;
471+
472+# ifndef BOOST_NO_INT64_T
473+
474+typedef ::intleast64_t int_least64_t;
475+typedef ::intfast64_t int_fast64_t;
476+typedef ::uintleast64_t uint_least64_t;
477+typedef ::uintfast64_t uint_fast64_t;
478+
479+# endif
480+
481+#endif
482+
483+namespace boost
484+{
485+
486+ using ::int8_t;
487+ using ::int_least8_t;
488+ using ::int_fast8_t;
489+ using ::uint8_t;
490+ using ::uint_least8_t;
491+ using ::uint_fast8_t;
492+
493+ using ::int16_t;
494+ using ::int_least16_t;
495+ using ::int_fast16_t;
496+ using ::uint16_t;
497+ using ::uint_least16_t;
498+ using ::uint_fast16_t;
499+
500+ using ::int32_t;
501+ using ::int_least32_t;
502+ using ::int_fast32_t;
503+ using ::uint32_t;
504+ using ::uint_least32_t;
505+ using ::uint_fast32_t;
506+
507+# ifndef BOOST_NO_INT64_T
508+
509+ using ::int64_t;
510+ using ::int_least64_t;
511+ using ::int_fast64_t;
512+ using ::uint64_t;
513+ using ::uint_least64_t;
514+ using ::uint_fast64_t;
515+
516+# endif
517+
518+ using ::intmax_t;
519+ using ::uintmax_t;
520+
521+} // namespace boost
522+
523+#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__)
524+// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
525+# include <inttypes.h>
526+
527+namespace boost {
528+
529+ using ::int8_t;
530+ typedef int8_t int_least8_t;
531+ typedef int8_t int_fast8_t;
532+ using ::uint8_t;
533+ typedef uint8_t uint_least8_t;
534+ typedef uint8_t uint_fast8_t;
535+
536+ using ::int16_t;
537+ typedef int16_t int_least16_t;
538+ typedef int16_t int_fast16_t;
539+ using ::uint16_t;
540+ typedef uint16_t uint_least16_t;
541+ typedef uint16_t uint_fast16_t;
542+
543+ using ::int32_t;
544+ typedef int32_t int_least32_t;
545+ typedef int32_t int_fast32_t;
546+ using ::uint32_t;
547+ typedef uint32_t uint_least32_t;
548+ typedef uint32_t uint_fast32_t;
549+
550+# ifndef BOOST_NO_INT64_T
551+
552+ using ::int64_t;
553+ typedef int64_t int_least64_t;
554+ typedef int64_t int_fast64_t;
555+ using ::uint64_t;
556+ typedef uint64_t uint_least64_t;
557+ typedef uint64_t uint_fast64_t;
558+
559+ typedef int64_t intmax_t;
560+ typedef uint64_t uintmax_t;
561+
562+# else
563+
564+ typedef int32_t intmax_t;
565+ typedef uint32_t uintmax_t;
566+
567+# endif
568+
569+} // namespace boost
570+
571+#else // BOOST_HAS_STDINT_H
572+
573+# include <boost/limits.hpp> // implementation artifact; not part of interface
574+# include <limits.h> // needed for limits macros
575+
576+
577+namespace boost
578+{
579+
580+// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
581+// platforms. For other systems, they will have to be hand tailored.
582+//
583+// Because the fast types are assumed to be the same as the undecorated types,
584+// it may be possible to hand tailor a more efficient implementation. Such
585+// an optimization may be illusionary; on the Intel x86-family 386 on, for
586+// example, byte arithmetic and load/stores are as fast as "int" sized ones.
587+
588+// 8-bit types ------------------------------------------------------------//
589+
590+# if UCHAR_MAX == 0xff
591+ typedef signed char int8_t;
592+ typedef signed char int_least8_t;
593+ typedef signed char int_fast8_t;
594+ typedef unsigned char uint8_t;
595+ typedef unsigned char uint_least8_t;
596+ typedef unsigned char uint_fast8_t;
597+# else
598+# error defaults not correct; you must hand modify boost/cstdint.hpp
599+# endif
600+
601+// 16-bit types -----------------------------------------------------------//
602+
603+# if USHRT_MAX == 0xffff
604+# if defined(__crayx1)
605+ // The Cray X1 has a 16-bit short, however it is not recommend
606+ // for use in performance critical code.
607+ typedef short int16_t;
608+ typedef short int_least16_t;
609+ typedef int int_fast16_t;
610+ typedef unsigned short uint16_t;
611+ typedef unsigned short uint_least16_t;
612+ typedef unsigned int uint_fast16_t;
613+# else
614+ typedef short int16_t;
615+ typedef short int_least16_t;
616+ typedef short int_fast16_t;
617+ typedef unsigned short uint16_t;
618+ typedef unsigned short uint_least16_t;
619+ typedef unsigned short uint_fast16_t;
620+# endif
621+# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__)
622+ // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified
623+ // MTA / XMT does support the following non-standard integer types
624+ typedef __short16 int16_t;
625+ typedef __short16 int_least16_t;
626+ typedef __short16 int_fast16_t;
627+ typedef unsigned __short16 uint16_t;
628+ typedef unsigned __short16 uint_least16_t;
629+ typedef unsigned __short16 uint_fast16_t;
630+# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
631+ // no 16-bit types on Cray:
632+ typedef short int_least16_t;
633+ typedef short int_fast16_t;
634+ typedef unsigned short uint_least16_t;
635+ typedef unsigned short uint_fast16_t;
636+# else
637+# error defaults not correct; you must hand modify boost/cstdint.hpp
638+# endif
639+
640+// 32-bit types -----------------------------------------------------------//
641+
642+# if UINT_MAX == 0xffffffff
643+ typedef int int32_t;
644+ typedef int int_least32_t;
645+ typedef int int_fast32_t;
646+ typedef unsigned int uint32_t;
647+ typedef unsigned int uint_least32_t;
648+ typedef unsigned int uint_fast32_t;
649+# elif (USHRT_MAX == 0xffffffff)
650+ typedef short int32_t;
651+ typedef short int_least32_t;
652+ typedef short int_fast32_t;
653+ typedef unsigned short uint32_t;
654+ typedef unsigned short uint_least32_t;
655+ typedef unsigned short uint_fast32_t;
656+# elif ULONG_MAX == 0xffffffff
657+ typedef long int32_t;
658+ typedef long int_least32_t;
659+ typedef long int_fast32_t;
660+ typedef unsigned long uint32_t;
661+ typedef unsigned long uint_least32_t;
662+ typedef unsigned long uint_fast32_t;
663+# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__)
664+ // Integers are 64 bits on the MTA / XMT
665+ typedef __int32 int32_t;
666+ typedef __int32 int_least32_t;
667+ typedef __int32 int_fast32_t;
668+ typedef unsigned __int32 uint32_t;
669+ typedef unsigned __int32 uint_least32_t;
670+ typedef unsigned __int32 uint_fast32_t;
671+# else
672+# error defaults not correct; you must hand modify boost/cstdint.hpp
673+# endif
674+
675+// 64-bit types + intmax_t and uintmax_t ----------------------------------//
676+
677+# if defined(BOOST_HAS_LONG_LONG) && \
678+ !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
679+ (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
680+ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
681+# if defined(__hpux)
682+ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
683+# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
684+ // 2**64 - 1
685+# else
686+# error defaults not correct; you must hand modify boost/cstdint.hpp
687+# endif
688+
689+ typedef ::boost::long_long_type intmax_t;
690+ typedef ::boost::ulong_long_type uintmax_t;
691+ typedef ::boost::long_long_type int64_t;
692+ typedef ::boost::long_long_type int_least64_t;
693+ typedef ::boost::long_long_type int_fast64_t;
694+ typedef ::boost::ulong_long_type uint64_t;
695+ typedef ::boost::ulong_long_type uint_least64_t;
696+ typedef ::boost::ulong_long_type uint_fast64_t;
697+
698+# elif ULONG_MAX != 0xffffffff
699+
700+# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
701+ typedef long intmax_t;
702+ typedef unsigned long uintmax_t;
703+ typedef long int64_t;
704+ typedef long int_least64_t;
705+ typedef long int_fast64_t;
706+ typedef unsigned long uint64_t;
707+ typedef unsigned long uint_least64_t;
708+ typedef unsigned long uint_fast64_t;
709+# else
710+# error defaults not correct; you must hand modify boost/cstdint.hpp
711+# endif
712+# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
713+ __extension__ typedef long long intmax_t;
714+ __extension__ typedef unsigned long long uintmax_t;
715+ __extension__ typedef long long int64_t;
716+ __extension__ typedef long long int_least64_t;
717+ __extension__ typedef long long int_fast64_t;
718+ __extension__ typedef unsigned long long uint64_t;
719+ __extension__ typedef unsigned long long uint_least64_t;
720+ __extension__ typedef unsigned long long uint_fast64_t;
721+# elif defined(BOOST_HAS_MS_INT64)
722+ //
723+ // we have Borland/Intel/Microsoft __int64:
724+ //
725+ typedef __int64 intmax_t;
726+ typedef unsigned __int64 uintmax_t;
727+ typedef __int64 int64_t;
728+ typedef __int64 int_least64_t;
729+ typedef __int64 int_fast64_t;
730+ typedef unsigned __int64 uint64_t;
731+ typedef unsigned __int64 uint_least64_t;
732+ typedef unsigned __int64 uint_fast64_t;
733+# else // assume no 64-bit integers
734+# define BOOST_NO_INT64_T
735+ typedef int32_t intmax_t;
736+ typedef uint32_t uintmax_t;
737+# endif
738+
739+} // namespace boost
740+
741+
742+#endif // BOOST_HAS_STDINT_H
743+
744+// intptr_t/uintptr_t are defined separately because they are optional and not universally available
745+#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
746+// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
747+#include <stddef.h>
748+#endif
749+
750+// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
751+#if !defined(__PGIC__)
752+
753+#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
754+ || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
755+ || defined(__CYGWIN__) \
756+ || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
757+ || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun)
758+
759+namespace boost {
760+ using ::intptr_t;
761+ using ::uintptr_t;
762+}
763+#define BOOST_HAS_INTPTR_T
764+
765+// Clang pretends to be GCC, so it'll match this condition
766+#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
767+
768+namespace boost {
769+ typedef __INTPTR_TYPE__ intptr_t;
770+ typedef __UINTPTR_TYPE__ uintptr_t;
771+}
772+#define BOOST_HAS_INTPTR_T
773+
774+#endif
775+
776+#endif // !defined(__PGIC__)
777+
778+#endif // BOOST_CSTDINT_HPP
779+
780+
781+/****************************************************
782+
783+Macro definition section:
784+
785+Added 23rd September 2000 (John Maddock).
786+Modified 11th September 2001 to be excluded when
787+BOOST_HAS_STDINT_H is defined (John Maddock).
788+Modified 11th Dec 2009 to always define the
789+INT#_C macros if they're not already defined (John Maddock).
790+
791+******************************************************/
792+
793+#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
794+ (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
795+//
796+// For the following code we get several warnings along the lines of:
797+//
798+// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
799+//
800+// So we declare this a system header to suppress these warnings.
801+//
802+#if defined(__GNUC__) && (__GNUC__ >= 4)
803+#pragma GCC system_header
804+#endif
805+
806+#include <limits.h>
807+# define BOOST__STDC_CONSTANT_MACROS_DEFINED
808+# if defined(BOOST_HAS_MS_INT64)
809+//
810+// Borland/Intel/Microsoft compilers have width specific suffixes:
811+//
812+#ifndef INT8_C
813+# define INT8_C(value) value##i8
814+#endif
815+#ifndef INT16_C
816+# define INT16_C(value) value##i16
817+#endif
818+#ifndef INT32_C
819+# define INT32_C(value) value##i32
820+#endif
821+#ifndef INT64_C
822+# define INT64_C(value) value##i64
823+#endif
824+# ifdef __BORLANDC__
825+ // Borland bug: appending ui8 makes the type a signed char
826+# define UINT8_C(value) static_cast<unsigned char>(value##u)
827+# else
828+# define UINT8_C(value) value##ui8
829+# endif
830+#ifndef UINT16_C
831+# define UINT16_C(value) value##ui16
832+#endif
833+#ifndef UINT32_C
834+# define UINT32_C(value) value##ui32
835+#endif
836+#ifndef UINT64_C
837+# define UINT64_C(value) value##ui64
838+#endif
839+#ifndef INTMAX_C
840+# define INTMAX_C(value) value##i64
841+# define UINTMAX_C(value) value##ui64
842+#endif
843+
844+# else
845+// do it the old fashioned way:
846+
847+// 8-bit types ------------------------------------------------------------//
848+
849+# if (UCHAR_MAX == 0xff) && !defined(INT8_C)
850+# define INT8_C(value) static_cast<boost::int8_t>(value)
851+# define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
852+# endif
853+
854+// 16-bit types -----------------------------------------------------------//
855+
856+# if (USHRT_MAX == 0xffff) && !defined(INT16_C)
857+# define INT16_C(value) static_cast<boost::int16_t>(value)
858+# define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
859+# endif
860+
861+// 32-bit types -----------------------------------------------------------//
862+#ifndef INT32_C
863+# if (UINT_MAX == 0xffffffff)
864+# define INT32_C(value) value
865+# define UINT32_C(value) value##u
866+# elif ULONG_MAX == 0xffffffff
867+# define INT32_C(value) value##L
868+# define UINT32_C(value) value##uL
869+# endif
870+#endif
871+
872+// 64-bit types + intmax_t and uintmax_t ----------------------------------//
873+#ifndef INT64_C
874+# if defined(BOOST_HAS_LONG_LONG) && \
875+ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX))
876+
877+# if defined(__hpux)
878+ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
879+# define INT64_C(value) value##LL
880+# define UINT64_C(value) value##uLL
881+# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
882+ (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
883+ (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
884+ (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \
885+ (defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL)
886+
887+# define INT64_C(value) value##LL
888+# define UINT64_C(value) value##uLL
889+# else
890+# error defaults not correct; you must hand modify boost/cstdint.hpp
891+# endif
892+# elif ULONG_MAX != 0xffffffff
893+
894+# if ULONG_MAX == 18446744073709551615U // 2**64 - 1
895+# define INT64_C(value) value##L
896+# define UINT64_C(value) value##uL
897+# else
898+# error defaults not correct; you must hand modify boost/cstdint.hpp
899+# endif
900+# elif defined(BOOST_HAS_LONG_LONG)
901+ // Usual macros not defined, work things out for ourselves:
902+# if(~0uLL == 18446744073709551615ULL)
903+# define INT64_C(value) value##LL
904+# define UINT64_C(value) value##uLL
905+# else
906+# error defaults not correct; you must hand modify boost/cstdint.hpp
907+# endif
908+# else
909+# error defaults not correct; you must hand modify boost/cstdint.hpp
910+# endif
911+
912+# ifdef BOOST_NO_INT64_T
913+# define INTMAX_C(value) INT32_C(value)
914+# define UINTMAX_C(value) UINT32_C(value)
915+# else
916+# define INTMAX_C(value) INT64_C(value)
917+# define UINTMAX_C(value) UINT64_C(value)
918+# endif
919+#endif
920+# endif // Borland/Microsoft specific width suffixes
921+
922+#endif // INT#_C macros.
923--- /dev/null
924+++ b/lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp
925@@ -0,0 +1,140 @@
926+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
927+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
928+
929+// MS compatible compilers support #pragma once
930+
931+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
932+# pragma once
933+#endif
934+
935+// detail/sp_counted_base_clang.hpp - __c11 clang intrinsics
936+//
937+// Copyright (c) 2007, 2013, 2015 Peter Dimov
938+//
939+// Distributed under the Boost Software License, Version 1.0.
940+// See accompanying file LICENSE_1_0.txt or copy at
941+// http://www.boost.org/LICENSE_1_0.txt
942+
943+#include <boost/detail/sp_typeinfo.hpp>
944+#include <boost/cstdint.hpp>
945+
946+namespace boost
947+{
948+
949+namespace detail
950+{
951+
952+typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t;
953+
954+inline void atomic_increment( atomic_int_least32_t * pw )
955+{
956+ __c11_atomic_fetch_add( pw, 1, __ATOMIC_RELAXED );
957+}
958+
959+inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw )
960+{
961+ return __c11_atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL );
962+}
963+
964+inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw )
965+{
966+ // long r = *pw;
967+ // if( r != 0 ) ++*pw;
968+ // return r;
969+
970+ boost::int_least32_t r = __c11_atomic_load( pw, __ATOMIC_RELAXED );
971+
972+ for( ;; )
973+ {
974+ if( r == 0 )
975+ {
976+ return r;
977+ }
978+
979+ if( __c11_atomic_compare_exchange_weak( pw, &r, r + 1, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) )
980+ {
981+ return r;
982+ }
983+ }
984+}
985+
986+class sp_counted_base
987+{
988+private:
989+
990+ sp_counted_base( sp_counted_base const & );
991+ sp_counted_base & operator= ( sp_counted_base const & );
992+
993+ atomic_int_least32_t use_count_; // #shared
994+ atomic_int_least32_t weak_count_; // #weak + (#shared != 0)
995+
996+public:
997+
998+ sp_counted_base()
999+ {
1000+ __c11_atomic_init( &use_count_, 1 );
1001+ __c11_atomic_init( &weak_count_, 1 );
1002+ }
1003+
1004+ virtual ~sp_counted_base() // nothrow
1005+ {
1006+ }
1007+
1008+ // dispose() is called when use_count_ drops to zero, to release
1009+ // the resources managed by *this.
1010+
1011+ virtual void dispose() = 0; // nothrow
1012+
1013+ // destroy() is called when weak_count_ drops to zero.
1014+
1015+ virtual void destroy() // nothrow
1016+ {
1017+ delete this;
1018+ }
1019+
1020+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
1021+ virtual void * get_untyped_deleter() = 0;
1022+
1023+ void add_ref_copy()
1024+ {
1025+ atomic_increment( &use_count_ );
1026+ }
1027+
1028+ bool add_ref_lock() // true on success
1029+ {
1030+ return atomic_conditional_increment( &use_count_ ) != 0;
1031+ }
1032+
1033+ void release() // nothrow
1034+ {
1035+ if( atomic_decrement( &use_count_ ) == 1 )
1036+ {
1037+ dispose();
1038+ weak_release();
1039+ }
1040+ }
1041+
1042+ void weak_add_ref() // nothrow
1043+ {
1044+ atomic_increment( &weak_count_ );
1045+ }
1046+
1047+ void weak_release() // nothrow
1048+ {
1049+ if( atomic_decrement( &weak_count_ ) == 1 )
1050+ {
1051+ destroy();
1052+ }
1053+ }
1054+
1055+ long use_count() const // nothrow
1056+ {
1057+ return __c11_atomic_load( const_cast< atomic_int_least32_t* >( &use_count_ ), __ATOMIC_ACQUIRE );
1058+ }
1059+};
1060+
1061+} // namespace detail
1062+
1063+} // namespace boost
1064+
1065+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
1066--- /dev/null
1067+++ b/lib/boost/smart_ptr/detail/sp_counted_base_sync.hpp
1068@@ -0,0 +1,156 @@
1069+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
1070+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
1071+
1072+// MS compatible compilers support #pragma once
1073+
1074+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
1075+# pragma once
1076+#endif
1077+
1078+// detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics
1079+//
1080+// Copyright (c) 2007 Peter Dimov
1081+//
1082+// Distributed under the Boost Software License, Version 1.0.
1083+// See accompanying file LICENSE_1_0.txt or copy at
1084+// http://www.boost.org/LICENSE_1_0.txt
1085+
1086+#include <boost/detail/sp_typeinfo.hpp>
1087+#include <limits.h>
1088+
1089+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
1090+# include <ia64intrin.h>
1091+#endif
1092+
1093+namespace boost
1094+{
1095+
1096+namespace detail
1097+{
1098+
1099+#if INT_MAX >= 2147483647
1100+
1101+typedef int sp_int32_t;
1102+
1103+#else
1104+
1105+typedef long sp_int32_t;
1106+
1107+#endif
1108+
1109+inline void atomic_increment( sp_int32_t * pw )
1110+{
1111+ __sync_fetch_and_add( pw, 1 );
1112+}
1113+
1114+inline sp_int32_t atomic_decrement( sp_int32_t * pw )
1115+{
1116+ return __sync_fetch_and_add( pw, -1 );
1117+}
1118+
1119+inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
1120+{
1121+ // long r = *pw;
1122+ // if( r != 0 ) ++*pw;
1123+ // return r;
1124+
1125+ sp_int32_t r = *pw;
1126+
1127+ for( ;; )
1128+ {
1129+ if( r == 0 )
1130+ {
1131+ return r;
1132+ }
1133+
1134+ sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
1135+
1136+ if( r2 == r )
1137+ {
1138+ return r;
1139+ }
1140+ else
1141+ {
1142+ r = r2;
1143+ }
1144+ }
1145+}
1146+
1147+class sp_counted_base
1148+{
1149+private:
1150+
1151+ sp_counted_base( sp_counted_base const & );
1152+ sp_counted_base & operator= ( sp_counted_base const & );
1153+
1154+ sp_int32_t use_count_; // #shared
1155+ sp_int32_t weak_count_; // #weak + (#shared != 0)
1156+
1157+public:
1158+
1159+ sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
1160+ {
1161+ }
1162+
1163+ virtual ~sp_counted_base() // nothrow
1164+ {
1165+ }
1166+
1167+ // dispose() is called when use_count_ drops to zero, to release
1168+ // the resources managed by *this.
1169+
1170+ virtual void dispose() = 0; // nothrow
1171+
1172+ // destroy() is called when weak_count_ drops to zero.
1173+
1174+ virtual void destroy() // nothrow
1175+ {
1176+ delete this;
1177+ }
1178+
1179+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
1180+ virtual void * get_untyped_deleter() = 0;
1181+
1182+ void add_ref_copy()
1183+ {
1184+ atomic_increment( &use_count_ );
1185+ }
1186+
1187+ bool add_ref_lock() // true on success
1188+ {
1189+ return atomic_conditional_increment( &use_count_ ) != 0;
1190+ }
1191+
1192+ void release() // nothrow
1193+ {
1194+ if( atomic_decrement( &use_count_ ) == 1 )
1195+ {
1196+ dispose();
1197+ weak_release();
1198+ }
1199+ }
1200+
1201+ void weak_add_ref() // nothrow
1202+ {
1203+ atomic_increment( &weak_count_ );
1204+ }
1205+
1206+ void weak_release() // nothrow
1207+ {
1208+ if( atomic_decrement( &weak_count_ ) == 1 )
1209+ {
1210+ destroy();
1211+ }
1212+ }
1213+
1214+ long use_count() const // nothrow
1215+ {
1216+ return const_cast< sp_int32_t const volatile & >( use_count_ );
1217+ }
1218+};
1219+
1220+} // namespace detail
1221+
1222+} // namespace boost
1223+
1224+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
1225--- /dev/null
1226+++ b/lib/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
1227@@ -0,0 +1,182 @@
1228+#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
1229+#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
1230+
1231+// MS compatible compilers support #pragma once
1232+
1233+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
1234+# pragma once
1235+#endif
1236+
1237+//
1238+// detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS
1239+//
1240+// Copyright (c) 2009, Spirent Communications, Inc.
1241+//
1242+// Distributed under the Boost Software License, Version 1.0. (See
1243+// accompanying file LICENSE_1_0.txt or copy at
1244+// http://www.boost.org/LICENSE_1_0.txt)
1245+//
1246+//
1247+// Lock-free algorithm by Alexander Terekhov
1248+//
1249+
1250+#include <boost/detail/sp_typeinfo.hpp>
1251+
1252+namespace boost
1253+{
1254+
1255+namespace detail
1256+{
1257+
1258+inline void atomic_increment( int * pw )
1259+{
1260+ // ++*pw;
1261+
1262+ int tmp;
1263+
1264+ __asm__ __volatile__
1265+ (
1266+ "0:\n\t"
1267+ ".set push\n\t"
1268+ ".set mips2\n\t"
1269+ "ll %0, %1\n\t"
1270+ "addiu %0, 1\n\t"
1271+ "sc %0, %1\n\t"
1272+ ".set pop\n\t"
1273+ "beqz %0, 0b":
1274+ "=&r"( tmp ), "=m"( *pw ):
1275+ "m"( *pw )
1276+ );
1277+}
1278+
1279+inline int atomic_decrement( int * pw )
1280+{
1281+ // return --*pw;
1282+
1283+ int rv, tmp;
1284+
1285+ __asm__ __volatile__
1286+ (
1287+ "0:\n\t"
1288+ ".set push\n\t"
1289+ ".set mips2\n\t"
1290+ "ll %1, %2\n\t"
1291+ "addiu %0, %1, -1\n\t"
1292+ "sc %0, %2\n\t"
1293+ ".set pop\n\t"
1294+ "beqz %0, 0b\n\t"
1295+ "addiu %0, %1, -1":
1296+ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
1297+ "m"( *pw ):
1298+ "memory"
1299+ );
1300+
1301+ return rv;
1302+}
1303+
1304+inline int atomic_conditional_increment( int * pw )
1305+{
1306+ // if( *pw != 0 ) ++*pw;
1307+ // return *pw;
1308+
1309+ int rv, tmp;
1310+
1311+ __asm__ __volatile__
1312+ (
1313+ "0:\n\t"
1314+ ".set push\n\t"
1315+ ".set mips2\n\t"
1316+ "ll %0, %2\n\t"
1317+ "beqz %0, 1f\n\t"
1318+ "addiu %1, %0, 1\n\t"
1319+ "sc %1, %2\n\t"
1320+ ".set pop\n\t"
1321+ "beqz %1, 0b\n\t"
1322+ "addiu %0, %0, 1\n\t"
1323+ "1:":
1324+ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
1325+ "m"( *pw ):
1326+ "memory"
1327+ );
1328+
1329+ return rv;
1330+}
1331+
1332+class sp_counted_base
1333+{
1334+private:
1335+
1336+ sp_counted_base( sp_counted_base const & );
1337+ sp_counted_base & operator= ( sp_counted_base const & );
1338+
1339+ int use_count_; // #shared
1340+ int weak_count_; // #weak + (#shared != 0)
1341+
1342+public:
1343+
1344+ sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
1345+ {
1346+ }
1347+
1348+ virtual ~sp_counted_base() // nothrow
1349+ {
1350+ }
1351+
1352+ // dispose() is called when use_count_ drops to zero, to release
1353+ // the resources managed by *this.
1354+
1355+ virtual void dispose() = 0; // nothrow
1356+
1357+ // destroy() is called when weak_count_ drops to zero.
1358+
1359+ virtual void destroy() // nothrow
1360+ {
1361+ delete this;
1362+ }
1363+
1364+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
1365+ virtual void * get_untyped_deleter() = 0;
1366+
1367+ void add_ref_copy()
1368+ {
1369+ atomic_increment( &use_count_ );
1370+ }
1371+
1372+ bool add_ref_lock() // true on success
1373+ {
1374+ return atomic_conditional_increment( &use_count_ ) != 0;
1375+ }
1376+
1377+ void release() // nothrow
1378+ {
1379+ if( atomic_decrement( &use_count_ ) == 0 )
1380+ {
1381+ dispose();
1382+ weak_release();
1383+ }
1384+ }
1385+
1386+ void weak_add_ref() // nothrow
1387+ {
1388+ atomic_increment( &weak_count_ );
1389+ }
1390+
1391+ void weak_release() // nothrow
1392+ {
1393+ if( atomic_decrement( &weak_count_ ) == 0 )
1394+ {
1395+ destroy();
1396+ }
1397+ }
1398+
1399+ long use_count() const // nothrow
1400+ {
1401+ return static_cast<int const volatile &>( use_count_ );
1402+ }
1403+};
1404+
1405+} // namespace detail
1406+
1407+} // namespace boost
1408+
1409+#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
deleted file mode 100644
index 98cd40c84c..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 22:12:43 -0700
4Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API
5
6Fixed build on musl where canonicalize_file_name is not implemented
7
8filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope
9 char *p = canonicalize_file_name(path);
10
11Upstream-Status: Pending
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 lib/engine/filesystem.cpp | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
19index b99257e..6064837 100644
20--- a/lib/engine/filesystem.cpp
21+++ b/lib/engine/filesystem.cpp
22@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
23 if (path == 0) {
24 throw E_NULL_POINTER;
25 }
26- char *p = canonicalize_file_name(path);
27+ char *p = realpath(path, NULL);
28 assign(p);
29 if (p) {
30 free(p);
31--
322.13.1
33
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
new file mode 100644
index 0000000000..261358459e
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
@@ -0,0 +1,47 @@
1From 24e0f55c07080a59907c190a315e279f7b2355e5 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 29 Aug 2019 14:25:02 -0700
4Subject: [PATCH 3/4] engine: Define discover(const String &path) in base class
5
6this fixes the confusion that compiler may have when inheriting two
7different classes where each of them defines discover() virtual function
8but with different signatures
9
10Remove ununsed orom_vmd
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 lib/engine/storage_object.h | 3 +++
15 lib/engine/vmd_raid_info.h | 2 --
16 2 files changed, 3 insertions(+), 2 deletions(-)
17
18diff --git a/lib/engine/storage_object.h b/lib/engine/storage_object.h
19index f1feb62..9c1d3d8 100644
20--- a/lib/engine/storage_object.h
21+++ b/lib/engine/storage_object.h
22@@ -123,6 +123,9 @@ public:
23 virtual void discover() {
24 throw E_INVALID_OPERATION;
25 }
26+ virtual void discover(const String &path) {
27+ throw E_INVALID_OPERATION;
28+ }
29 virtual void addToSession(const boost::shared_ptr<Session>& pSession) = 0;
30 };
31
32diff --git a/lib/engine/vmd_raid_info.h b/lib/engine/vmd_raid_info.h
33index 2bea839..cc6ffbe 100644
34--- a/lib/engine/vmd_raid_info.h
35+++ b/lib/engine/vmd_raid_info.h
36@@ -53,8 +53,6 @@ public:
37 return SSI_ControllerTypeVMD;
38 }
39
40-private:
41- struct orom_info orom_vmd;
42 };
43
44 #endif /* __VMD_RAID_INFO_H__INCLUDED__ */
45--
462.23.0
47
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
new file mode 100644
index 0000000000..848d38b223
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
@@ -0,0 +1,43 @@
1From c817db76bb63b872fe2069e3c2449ac18affe8c1 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Aug 2019 13:17:38 -0700
4Subject: [PATCH] replace canonicalize_file_name with realpath
5
6Use 'realpath()' (BSD, POSIX) instead of
7'canonicalize_file_name()' (GNU extension).
8
9Fixes
10error: use of undeclared identifier 'canonicalize_file_name'
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 lib/engine/filesystem.cpp | 2 +-
15 tools/ssieventmonitor.cpp | 2 +-
16 2 files changed, 2 insertions(+), 2 deletions(-)
17
18diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
19index bf5a776..194ab8a 100644
20--- a/lib/engine/filesystem.cpp
21+++ b/lib/engine/filesystem.cpp
22@@ -54,7 +54,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
23 if (path == NULL) {
24 throw E_NULL_POINTER;
25 }
26- char *p = canonicalize_file_name(path);
27+ char *p = realpath(path, (char *)0);
28 assign(p);
29 if (p) {
30 free(p);
31diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
32index 80791fd..3eed877 100644
33--- a/tools/ssieventmonitor.cpp
34+++ b/tools/ssieventmonitor.cpp
35@@ -120,7 +120,7 @@ static int _exec_ssimsg(void)
36 int status;
37 switch (pid) {
38 case 0: {
39- cp = canonicalize_file_name("/proc/self/exe");
40+ cp = realpath("/proc/self/exe", (char *)0);
41 if (cp) {
42 strcpy_s(buffer, sizeof(buffer), cp);
43 free(cp);
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
new file mode 100644
index 0000000000..ca2ffc56b1
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
@@ -0,0 +1,33 @@
1From 98fad8128d0f3b65619827ee5d65f7767b080c4c Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 29 Aug 2019 14:35:16 -0700
4Subject: [PATCH 4/4] Do not override flags coming from build environment
5
6e.g. we need some optimization level turned on when security flags are enabled
7without this change, the build would fail
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 configure.ac | 6 +++---
12 1 file changed, 3 insertions(+), 3 deletions(-)
13
14diff --git a/configure.ac b/configure.ac
15index 34e41ea..9bd0fe3 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -16,9 +16,9 @@ AM_INIT_AUTOMAKE(ssi, ${VERSION})
19 AM_CONFIG_HEADER(config.h)
20
21 dnl Set the language we use
22-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
23-CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
24-CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
25+#CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
26+#CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
27+#CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
28
29 dnl Automake 1.11 - silent build rules
30 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
31--
322.23.0
33
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
deleted file mode 100644
index 7dce0da40b..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 22:18:31 -0700
4Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon
5
6Upstream-Status: Pending
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10 lib/engine/mdadm_config.cpp | 5 +++--
11 lib/engine/unique_id_manager.cpp | 2 +-
12 2 files changed, 4 insertions(+), 3 deletions(-)
13
14diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp
15index 1914ddc..e40c2c7 100644
16--- a/lib/engine/mdadm_config.cpp
17+++ b/lib/engine/mdadm_config.cpp
18@@ -118,9 +118,10 @@ void check_configuration()
19 attr >> config;
20 configOk = correct_config(config);
21 } catch (Exception ex) {
22- if (ex != E_NOT_FOUND)
23+ if (ex != E_NOT_FOUND) {
24 dlog("Warning: mdadm config file cannot be read, new one will be written");
25 backup = false;
26+ }
27 }
28
29 if (configOk && monitor_running()) {
30@@ -134,7 +135,7 @@ void check_configuration()
31 dlog("Warning: failed to update mdadm.conf");
32 }
33 if (restart_monitor() == 0)
34- dlog("Monitor restarted successfully")
35+ dlog("Monitor restarted successfully");
36 else
37 dlog("Error starting Monitor");
38 }
39diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp
40index 99c153c..87d6ddc 100644
41--- a/lib/engine/unique_id_manager.cpp
42+++ b/lib/engine/unique_id_manager.cpp
43@@ -185,7 +185,7 @@ void UniqueIdManager::refresh()
44 keyFile >> keyList;
45 keyList += "\n";
46 } catch (...) {
47- dlog("ssi.keys file missing")
48+ dlog("ssi.keys file missing");
49 /* no file? that's ok */
50 }
51 /* process the list to update IdCaches */
52--
532.13.1
54
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
new file mode 100644
index 0000000000..d63eb50619
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
@@ -0,0 +1,25 @@
1From e90101128dfe75b9b1a0575a0179d211f677e6ad Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 30 Aug 2019 13:19:50 -0700
4Subject: [PATCH] include limits.h
5
6Fixes
7error: use of undeclared identifier 'PATH_MAX'
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 tools/ssieventmonitor.cpp | 1 +
12 1 file changed, 1 insertion(+)
13
14diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
15index 3eed877..0d11975 100644
16--- a/tools/ssieventmonitor.cpp
17+++ b/tools/ssieventmonitor.cpp
18@@ -34,6 +34,7 @@
19 #include <unistd.h>
20 #include <dirent.h>
21 #include <errno.h>
22+#include <limits.h>
23 #include <sys/fcntl.h>
24 #include <sys/select.h>
25 #include <sys/wait.h>
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
new file mode 100644
index 0000000000..c516f65252
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
@@ -0,0 +1,228 @@
1From 3ec4eaf1688e413e8b5cb433148a3bc6e7987606 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 29 Aug 2019 15:10:03 -0700
4Subject: [PATCH] enable out of source tree builds
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 lib/efi/Makefile.am | 2 +-
9 lib/engine/Makefile.am | 2 +-
10 lib/orom/Makefile.am | 2 +-
11 lib/safeclib/Makefile.am | 2 +-
12 src/Makefile.am | 16 ++++++++--------
13 tools/Makefile.am | 10 +++++-----
14 ut/Makefile.am | 36 ++++++++++++++++++------------------
15 7 files changed, 35 insertions(+), 35 deletions(-)
16
17--- a/lib/efi/Makefile.am
18+++ b/lib/efi/Makefile.am
19@@ -7,6 +7,6 @@ libefi_la_SOURCES = \
20 efi.h
21
22 libefi_la_CPPFLAGS = \
23- -I$(top_srcdir) \
24+ -I$(top_builddir) \
25 -I$(top_srcdir)/include \
26 -I$(top_srcdir)/lib
27--- a/lib/engine/Makefile.am
28+++ b/lib/engine/Makefile.am
29@@ -123,6 +123,7 @@ libengine_la_SOURCES = \
30 volume.h
31
32 libengine_la_CPPFLAGS = \
33+ -I$(top_builddir) \
34 -I$(top_srcdir) \
35 -I$(top_srcdir)/include \
36 -I$(top_srcdir)/lib
37--- a/lib/orom/Makefile.am
38+++ b/lib/orom/Makefile.am
39@@ -7,6 +7,6 @@ liborom_la_SOURCES = \
40 orom.h
41
42 liborom_la_CPPFLAGS = \
43- -I$(top_srcdir) \
44+ -I$(top_builddir) \
45 -I$(top_srcdir)/include \
46 -I$(top_srcdir)/lib
47--- a/lib/safeclib/Makefile.am
48+++ b/lib/safeclib/Makefile.am
49@@ -37,7 +37,7 @@ libsafec_la_SOURCES = \
50 strtok_s.c
51
52 libsafec_la_CPPFLAGS = \
53- -I$(top_srcdir) \
54+ -I$(top_builddir) \
55 -I$(top_srcdir)/include \
56 -I$(top_srcdir)/lib \
57 -Wno-unused-variable
58--- a/src/Makefile.am
59+++ b/src/Makefile.am
60@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = nostdinc
61 lib_LTLIBRARIES = libssi.la
62
63 libssi_la_CPPFLAGS = \
64- -I$(top_srcdir) \
65+ -I$(top_builddir) \
66 -I$(top_srcdir)/include \
67 -I$(top_srcdir)/lib \
68 -DBOOST_NO_USER_CONFIG
69@@ -46,10 +46,10 @@ libssi_la_SOURCES =
70 templates.h \
71 volume.cpp
72
73-libssi_la_LIBADD = \
74- ../lib/efi/libefi.la \
75- ../lib/log/liblog.la \
76- ../lib/orom/liborom.la \
77- ../lib/mpb/libmpb.la \
78- ../lib/engine/libengine.la \
79- ../lib/safeclib/libsafec.la
80+libssi_la_LIBADD = \
81+ $(top_builddir)/lib/efi/libefi.la \
82+ $(top_builddir)/lib/log/liblog.la \
83+ $(top_builddir)/lib/orom/liborom.la \
84+ $(top_builddir)/lib/mpb/libmpb.la \
85+ $(top_builddir)/lib/engine/libengine.la \
86+ $(top_builddir)/lib/safeclib/libsafec.la
87--- a/tools/Makefile.am
88+++ b/tools/Makefile.am
89@@ -6,17 +6,18 @@ ssimsg_SOURCES =
90 ssimsg.cpp
91
92 ssimsg_CPPFLAGS = \
93- -I$(top_srcdir) \
94+ -I$(top_builddir) \
95 -I$(top_srcdir)/include \
96 -I$(top_srcdir)/lib
97
98-ssieventmonitor_SOURCES = \
99+ssieventmonitor_SOURCES = \
100 ssieventmonitor.cpp
101
102-ssieventmonitor_CPPFLAGS = \
103+ssieventmonitor_CPPFLAGS = \
104+ -I$(top_builddir) \
105 -I$(top_srcdir) \
106 -I$(top_srcdir)/include \
107 -I$(top_srcdir)/lib
108
109 ssieventmonitor_LDADD = \
110- $(top_srcdir)/lib/safeclib/libsafec.la
111+ $(top_builddir)/lib/safeclib/libsafec.la
112--- a/ut/Makefile.am
113+++ b/ut/Makefile.am
114@@ -8,81 +8,81 @@ ut_events_SOURCES = \
115 ut_events.cpp
116
117 ut_events_CPPFLAGS = \
118- -I$(top_srcdir) \
119+ -I$(top_builddir) \
120 -I$(top_srcdir)/include
121
122 ut_events_LDADD = \
123- ../src/libssi.la
124+ $(top_builddir)/src/libssi.la
125
126 ut_volume_SOURCES = \
127 ut_volume.cpp
128
129 ut_volume_CPPFLAGS = \
130- -I$(top_srcdir) \
131+ -I$(top_builddir) \
132 -I$(top_srcdir)/include
133
134 ut_volume_LDADD = \
135- ../src/libssi.la
136+ $(top_builddir)/src/libssi.la
137
138 ut_session_SOURCES = \
139 ut_session.cpp
140
141 ut_session_CPPFLAGS = \
142- -g3 -I$(top_srcdir) \
143+ -g3 -I$(top_builddir) \
144 -I$(top_srcdir)/include
145
146 ut_session_LDADD = \
147- ../src/libssi.la
148+ $(top_builddir)/src/libssi.la
149
150 ut_info_SOURCES = \
151 ut_info.cpp
152
153 ut_info_CPPFLAGS = \
154- -g3 -I$(top_srcdir) \
155+ -g3 -I$(top_builddir) \
156 -I$(top_srcdir)/include
157
158 ut_info_LDADD = \
159- ../src/libssi.la
160+ $(top_builddir)/src/libssi.la
161
162 ut_markasspare_SOURCES = \
163 ut_markasspare.cpp
164
165 ut_markasspare_CPPFLAGS = \
166- -g3 -I$(top_srcdir) \
167+ -g3 -I$(top_builddir) \
168 -I$(top_srcdir)/include
169
170 ut_markasspare_LDADD = \
171- ../src/libssi.la
172+ $(top_builddir)/src/libssi.la
173
174 ut_migration_SOURCES = \
175 ut_migration.cpp
176
177 ut_migration_CPPFLAGS = \
178- -g3 -I$(top_srcdir) \
179+ -g3 -I$(top_builddir) \
180 -I$(top_srcdir)/include
181
182 ut_migration_LDADD = \
183- ../src/libssi.la
184+ $(top_builddir)/src/libssi.la
185
186 ut_phy_SOURCES = \
187 ut_phy.cpp
188
189 ut_phy_CPPFLAGS = \
190- -g3 -I$(top_srcdir) \
191+ -g3 -I$(top_builddir) \
192 -I$(top_srcdir)/include
193
194 ut_phy_LDADD = \
195- ../src/libssi.la
196+ $(top_builddir)/src/libssi.la
197
198 ut_initialize_volume_SOURCES = \
199 ut_initialize_volume.cpp
200
201 ut_initialize_volume_CPPFLAGS = \
202- -g3 -I$(top_srcdir) \
203+ -g3 -I$(top_builddir) \
204 -I$(top_srcdir)/include
205
206 ut_initialize_volume_LDADD = \
207- ../src/libssi.la
208+ $(top_builddir)/src/libssi.la
209
210 ut_filesystem_SOURCES = \
211 ut_filesystem.cpp \
212@@ -92,7 +92,7 @@ ut_filesystem_SOURCES = \
213
214 ut_filesystem_CPPFLAGS = \
215 -iquote $(top_srcdir)/lib/engine \
216- -I$(top_srcdir) \
217+ -I$(top_builddir) \
218 -I$(top_srcdir)/include
219
220 ut_string_SOURCES = \
221@@ -103,6 +103,6 @@ ut_string_SOURCES = \
222
223 ut_string_CPPFLAGS = \
224 -iquote $(top_srcdir)/lib/engine \
225- -I$(top_srcdir) \
226+ -I$(top_builddir) \
227 -I$(top_srcdir)/include
228
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
deleted file mode 100644
index 6f4dbf18e0..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 22:23:08 -0700
4Subject: [PATCH 5/6] engine: Define SENTINEL
5
6Fix warnings with gcc7
7test.cpp:12: warning: missing sentinel in function call
8
9Upstream-Status: Pending
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/engine/utils.cpp | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp
17index 44579a1..8812a8c 100644
18--- a/lib/engine/utils.cpp
19+++ b/lib/engine/utils.cpp
20@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21 #include "filesystem.h"
22 #include "utils.h"
23 #include "log/log.h"
24-
25+#define SENTINEL (const char *)0
26 /**
27 * @brief capture shell output as binary data
28 *
29@@ -139,7 +139,7 @@ int shell(const String &s)
30 * Before switching into new executable close all non standard
31 * file handlers.*/
32 close_parent_fds();
33- execl("/bin/sh", "sh", "-c", cmd.get(), NULL);
34+ execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL);
35 /* If we're here then execl failed*/
36 exit(-1);
37 break;
38--
392.13.1
40
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
deleted file mode 100644
index a7b70e3f49..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 16 Jun 2017 22:28:59 -0700
4Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of
5 canonicalize_file_name
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 tools/ssieventmonitor.cpp | 6 ++++--
12 1 file changed, 4 insertions(+), 2 deletions(-)
13
14diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
15index 0553386..f04b8f0 100644
16--- a/tools/ssieventmonitor.cpp
17+++ b/tools/ssieventmonitor.cpp
18@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 #include <unistd.h>
20 #include <dirent.h>
21 #include <errno.h>
22-#include <sys/fcntl.h>
23+#include <limits.h>
24+#include <fcntl.h>
25+#include <libgen.h>
26 #include <sys/select.h>
27 #include <sys/wait.h>
28 #include <sys/inotify.h>
29@@ -99,7 +101,7 @@ static int _exec_ssimsg(void)
30 int status;
31 switch (pid) {
32 case 0: {
33- cp = canonicalize_file_name("/proc/self/exe");
34+ cp = realpath("/proc/self/exe", NULL);
35 if (cp) {
36 strcpy(buffer, cp);
37 free(cp);
38--
392.13.1
40
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
deleted file mode 100644
index d45be590c7..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1Do not override flags thereby respect the flags coming from environment,
2e.g. we need some optimization level turned on when security flags are enabled
3without this change, the build would fail
4
5Signed-off-by: Khem Raj <raj.khem@gmail.com>
6Index: ssiapi.1.0.1/configure.ac
7===================================================================
8--- ssiapi.1.0.1.orig/configure.ac
9+++ ssiapi.1.0.1/configure.ac
10@@ -15,11 +15,6 @@ AC_SUBST(VERSION)
11 AM_INIT_AUTOMAKE(ssi, ${VERSION})
12 AM_CONFIG_HEADER(config.h)
13
14-dnl Set the language we use
15-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE"
16-CFLAGS="-std=gnu99"
17-CXXFLAGS="-std=gnu++98"
18-
19 dnl Automake 1.11 - silent build rules
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
21
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
deleted file mode 100644
index 5eb4696b57..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1SUMMARY = "Intel RSTe with Linux OS SSI API Library"
2
3DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
4The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
5
6HOMEPAGE = "http://irstessi.sourceforge.net/"
7
8LICENSE = "BSD"
9LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f"
10
11DEPENDS += "sg3-utils"
12
13SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
14 file://0001-Use-pragma-once-unconditionally.patch \
15 file://0002-Convert-macros-into-functions.patch \
16 file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \
17 file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \
18 file://0005-engine-Define-SENTINEL.patch \
19 file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \
20 file://configure-cflags.patch \
21 file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \
22 "
23SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5"
24SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7"
25
26S ="${WORKDIR}/${BPN}.${PV}"
27
28inherit autotools-brokensep
29CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE"
30
31do_configure_prepend(){
32 ./autogen.sh
33}
34
35RDEPENDS_${PN} += "mdadm"
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
new file mode 100644
index 0000000000..eb086817ef
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
@@ -0,0 +1,36 @@
1SUMMARY = "Intel RSTe with Linux OS SSI API Library"
2
3DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
4The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
5
6HOMEPAGE = "http://irstessi.sourceforge.net/"
7
8LICENSE = "BSD-3-Clause"
9LIC_FILES_CHKSUM = "file://COPYING;md5=9d701a2fbb56039fd64afb2262008ddb"
10
11DEPENDS += "sg3-utils"
12
13SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
14 file://0001-log-Avoid-shadowing-functions-from-std-lib.patch \
15 file://0002-boost-Backport-clang-support.patch \
16 file://0003-engine-Define-discover-const-String-path-in-base-cla.patch \
17 file://0004-Do-not-override-flags-coming-from-build-environment.patch \
18 file://0005-enable-out-of-source-tree-builds.patch \
19 file://0001-Don-t-use-__GNUC_PREREQ.patch \
20 file://0002-Use-stangard-int-types.patch \
21 file://0003-replace-canonicalize_file_name-with-realpath.patch \
22 file://0004-include-limits.h.patch \
23 file://0001-Include-libgen.h.patch \
24 "
25SRC_URI[md5sum] = "d06c9b426437a7697d77266e9835b520"
26SRC_URI[sha256sum] = "59daab29363d6e9f07c524029c4239653cfbbee6b0e57fd75df62499728dad8a"
27
28S ="${WORKDIR}/${BPN}.${PV}"
29
30inherit autotools
31
32do_configure_prepend(){
33 ${S}/autogen.sh
34}
35
36RDEPENDS_${PN} += "mdadm"