hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
comment "boost needs a toolchain w/ C++, threads, wchar"
   depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 
config BR2_PACKAGE_BOOST
   bool "boost"
   depends on BR2_INSTALL_LIBSTDCPP
   # Boost could theorically be built with threading=single, but
   # that unfortunately doesn't work. Until someone fixes that,
   # let's depend on threads.
   depends on BR2_TOOLCHAIN_HAS_THREADS
   depends on BR2_USE_WCHAR
   help
     A general purpose C++ library
 
     http://www.boost.org/
 
if BR2_PACKAGE_BOOST
 
config BR2_PACKAGE_BOOST_ATOMIC
   bool "boost-atomic"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   help
     C++11-style atomic<>.
 
config BR2_PACKAGE_BOOST_CHRONO
   bool "boost-chrono"
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     Useful time utilities. C++11.
 
config BR2_PACKAGE_BOOST_CONTAINER
   bool "boost-container"
   help
     Standard library containers and extensions.
 
# see
# http://www.boost.org/doc/libs/1_78_0/libs/context/doc/html/context/architectures.html
# for the list of supported architectures. Sparc pretends to be
# supported, but it doesn't build.
config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   bool
   default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM)
   default y if (BR2_aarch64 || BR2_aarch64_be)
   default y if BR2_i386
   default y if BR2_mips
   default y if BR2_mipsel
   default y if BR2_powerpc
   default y if BR2_x86_64
 
config BR2_PACKAGE_BOOST_CONTEXT
   bool "boost-context"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
       || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
   select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
   help
     C++11 context switching library.
 
config BR2_PACKAGE_BOOST_CONTRACT
   bool "boost-contract"
   # pthread_condattr_setclock
   depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     Contract programming for C++.
 
comment "boost-contract needs a toolchain w/ NPTL"
   depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
 
config BR2_PACKAGE_BOOST_COROUTINE
   bool "boost-coroutine"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
   select BR2_PACKAGE_BOOST_CHRONO
   select BR2_PACKAGE_BOOST_CONTEXT
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_THREAD
   help
     deprecated coroutine library, the non-depricated coroutine2
     library is a header-only library and does not need to be
     selected.
 
comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_DATE_TIME
   bool "boost-date_time"
   help
     A set of date-time libraries based on generic programming
     concepts.
 
config BR2_PACKAGE_BOOST_EXCEPTION
   bool "boost-exception"
   help
     The Boost Exception library supports transporting of arbitrary
     data in exception objects, and transporting of exceptions
     between threads.
 
config BR2_PACKAGE_BOOST_FIBER
   bool "boost-fiber"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
   # mips support uses the "pause" instruction, only available
   # since mips32r2/mips64r2.
   depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
   select BR2_PACKAGE_BOOST_CONTEXT
   select BR2_PACKAGE_BOOST_FILESYSTEM
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     C++11 userland threads library.
 
comment "boost-fiber needs a toolchain w/ NPTL"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
 
comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
   depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
       || BR2_TOOLCHAIN_GCC_AT_LEAST_6
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_FILESYSTEM
   bool "boost-filesystem"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
   select BR2_PACKAGE_BOOST_ATOMIC
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     The Boost Filesystem Library provides portable facilities to
     query and manipulate paths, files, and directories.
 
config BR2_PACKAGE_BOOST_GRAPH
   bool "boost-graph"
   select BR2_PACKAGE_BOOST_REGEX
   help
     The BGL graph interface and graph components are generic, in
     the same sense as the the Standard Template Library (STL).
 
config BR2_PACKAGE_BOOST_GRAPH_PARALLEL
   bool "boost-graph_parallel"
   help
     The PBGL graph interface and graph components are generic, in
     the same sense as the the Standard Template Library (STL).
 
config BR2_PACKAGE_BOOST_IOSTREAMS
   bool "boost-iostreams"
   select BR2_PACKAGE_BZIP2
   select BR2_PACKAGE_ZLIB
   help
     Boost.IOStreams provides a framework for defining streams,
     stream buffers and i/o filters.
 
config BR2_PACKAGE_BOOST_JSON
   bool "boost-json"
   select BR2_PACKAGE_BOOST_CONTAINER
   help
     Boost.JSON is a portable C++ library which provides containers
     and algorithms that implement JavaScript Object Notation, or
     simply "JSON", a lightweight data-interchange format.
 
     To use the library "header-only" this option is not needed.
 
config BR2_PACKAGE_BOOST_LOCALE
   bool "boost-locale"
   # When boost-locale is enabled with icu support, Boost no
   # longer supports building the libboost_* libraries as static
   # libraries, causing build failures when other boost features
   # than boost-locale are enabled. To work around this, we
   # prevent using boost-locale on static linking configurations
   # with icu enabled. See
   # https://svn.boost.org/trac/boost/ticket/9685 for more
   # details.
   depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
   depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \
       || !BR2_PACKAGE_ICU # boost-thread
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
   select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
   help
     Provide localization and Unicode handling tools for C++.
 
comment "boost-locale needs a toolchain w/ dynamic library"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on BR2_PACKAGE_ICU
   depends on BR2_STATIC_LIBS
 
comment "boost-locale needs a toolchain not affected by GCC bug 64735"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on BR2_PACKAGE_ICU
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_LOG
   bool "boost-log"
   depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
   select BR2_PACKAGE_BOOST_ATOMIC
   select BR2_PACKAGE_BOOST_DATE_TIME
   select BR2_PACKAGE_BOOST_FILESYSTEM
   select BR2_PACKAGE_BOOST_REGEX
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_THREAD
   help
     Logging library.
 
comment "boost-log needs a toolchain w/ NPTL"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
 
comment "boost-log needs a toolchain not affected by GCC bug 64735"
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_MATH
   bool "boost-math"
   help
     Boost.Math includes several contributions in the domain of
     mathematics:
 
     The Greatest Common Divisor and Least Common
     Multiple library provides run-time and compile-time evaluation
     of the greatest common divisor (GCD) or least common multiple
     (LCM) of two integers.
 
     The Special Functions library currently provides eight
     templated special functions, in namespace boost.
 
     The Complex Number Inverse Trigonometric Functions are the
     inverses of trigonometric functions currently present in the
     C++ standard.
 
     Quaternions are a relative of complex numbers often used to
     parameterise rotations in three dimentional space.
 
     Octonions, like quaternions, are a relative of complex
     numbers.
 
config BR2_PACKAGE_BOOST_MPI
   bool "boost-mpi"
   help
     Message Passing Interface library, for use in
     distributed-memory parallel application programming.
 
config BR2_PACKAGE_BOOST_NOWIDE
   bool "boost-nowide"
   help
     Library for cross-platform, unicode aware programming.
 
config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
   bool "boost-program_options"
   help
     The program_options library allows program developers to
     obtain program options, that is (name, value) pairs from the
     user, via conventional methods such as command line and config
     file.
 
config BR2_PACKAGE_BOOST_PYTHON
   bool "boost-python"
   depends on BR2_PACKAGE_PYTHON3
   help
     The Boost Python Library is a framework for interfacing Python
     and C++. It allows you to quickly and seamlessly expose C++
     classes functions and objects to Python, and vice-versa,
     using no special tools -- just your C++ compiler.
 
config BR2_PACKAGE_BOOST_RANDOM
   bool "boost-random"
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     A complete system for random number generation.
 
config BR2_PACKAGE_BOOST_REGEX
   bool "boost-regex"
   help
     A new infrastructure for generic algorithms that builds on top
     of the new iterator concepts.
 
config BR2_PACKAGE_BOOST_SERIALIZATION
   bool "boost-serialization"
   help
     Serialization for persistence and marshalling.
 
config BR2_PACKAGE_BOOST_STACKTRACE
   bool "boost-stacktrace"
   depends on !BR2_STATIC_LIBS
   help
     Gather, store, copy and print backtraces.
 
comment "boost-stacktrace needs a toolchain w/ dynamic library"
   depends on BR2_STATIC_LIBS
 
config BR2_PACKAGE_BOOST_SYSTEM
   bool "boost-system"
   help
     Operating system support, including the diagnostics support
     that will be part of the C++0x standard library.
 
config BR2_PACKAGE_BOOST_TEST
   bool "boost-test"
   depends on BR2_USE_MMU # fork()
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_TIMER
   help
     Support for simple program testing, full unit testing, and for
     program execution monitoring.
 
config BR2_PACKAGE_BOOST_THREAD
   bool "boost-thread"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
   select BR2_PACKAGE_BOOST_CHRONO
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     Portable C++ multi-threading. C++11, C++14.
 
comment "boost-thread needs a toolchain not affected by GCC bug 64735"
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_TIMER
   bool "boost-timer"
   select BR2_PACKAGE_BOOST_CHRONO
   select BR2_PACKAGE_BOOST_SYSTEM
   help
     Event timer, progress timer, and progress display classes.
 
config BR2_PACKAGE_BOOST_TYPE_ERASURE
   bool "boost-type_erasure"
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_THREAD
   help
     Runtime polymorphism based on concepts.
 
comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735"
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
config BR2_PACKAGE_BOOST_WAVE
   bool "boost-wave"
   # limitation of assembler for coldfire
   # error: Tried to convert PC relative branch to absolute jump
   depends on !BR2_m68k_cf
   depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
   depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
   select BR2_PACKAGE_BOOST_DATE_TIME
   select BR2_PACKAGE_BOOST_FILESYSTEM
   select BR2_PACKAGE_BOOST_SYSTEM
   select BR2_PACKAGE_BOOST_THREAD
   help
     The Boost.Wave library is a Standards conformant, and highly
     configurable implementation of the mandated C99/C++
     preprocessor functionality packed behind an easy to use
     iterator interface.
 
comment "boost-wave needs a toolchain not affected by GCC bug 64735"
   depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
 
endif