mirror of
https://github.com/matrix-construct/construct
synced 2024-05-20 03:43:47 +02:00
ircd::spirit: Fixes for thread_local generator_state linkage related.
This commit is contained in:
parent
cc9df943a7
commit
b55d670af1
|
@ -14,12 +14,6 @@
|
||||||
/// it involves extremely expensive boost headers for creating formal spirit
|
/// it involves extremely expensive boost headers for creating formal spirit
|
||||||
/// grammars. This file is automatically included in the spirit.h group.
|
/// grammars. This file is automatically included in the spirit.h group.
|
||||||
|
|
||||||
#ifdef __clang__
|
|
||||||
#define IRCD_SPIRIT_GSPTR_LINKAGE static
|
|
||||||
#else
|
|
||||||
#define IRCD_SPIRIT_GSPTR_LINKAGE extern
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace ircd {
|
namespace ircd {
|
||||||
namespace spirit
|
namespace spirit
|
||||||
__attribute__((visibility("default")))
|
__attribute__((visibility("default")))
|
||||||
|
@ -31,7 +25,7 @@ __attribute__((visibility("default")))
|
||||||
generator_buffer_size {64_KiB},
|
generator_buffer_size {64_KiB},
|
||||||
generator_buffer_count {8};
|
generator_buffer_count {8};
|
||||||
|
|
||||||
IRCD_SPIRIT_GSPTR_LINKAGE thread_local struct generator_state *
|
extern thread_local struct generator_state *
|
||||||
generator_state;
|
generator_state;
|
||||||
|
|
||||||
extern thread_local char
|
extern thread_local char
|
||||||
|
@ -70,7 +64,7 @@ __attribute__((visibility("internal")))
|
||||||
/// height of any stack growing from an ircd::spirit::generate() call without
|
/// height of any stack growing from an ircd::spirit::generate() call without
|
||||||
/// need for reentrancy. This gives us the ability to pre-allocate thread_local
|
/// need for reentrancy. This gives us the ability to pre-allocate thread_local
|
||||||
/// buffers.
|
/// buffers.
|
||||||
struct [[gnu::visibility("hidden")]]
|
struct [[gnu::visibility("internal")]]
|
||||||
ircd::spirit::generator_state
|
ircd::spirit::generator_state
|
||||||
{
|
{
|
||||||
/// The number of instances stacked behind the current state. This should
|
/// The number of instances stacked behind the current state. This should
|
||||||
|
|
|
@ -143,32 +143,32 @@ endif
|
||||||
libircd_la_SOURCES =#
|
libircd_la_SOURCES =#
|
||||||
libircd_la_SOURCES += default.profdata
|
libircd_la_SOURCES += default.profdata
|
||||||
libircd_la_SOURCES += assert.cc
|
libircd_la_SOURCES += assert.cc
|
||||||
libircd_la_SOURCES += info.cc
|
|
||||||
libircd_la_SOURCES += vg.cc
|
libircd_la_SOURCES += vg.cc
|
||||||
libircd_la_SOURCES += allocator.cc
|
|
||||||
libircd_la_SOURCES += allocator_gnu.cc
|
|
||||||
libircd_la_SOURCES += allocator_je.cc
|
|
||||||
libircd_la_SOURCES += exception.cc
|
libircd_la_SOURCES += exception.cc
|
||||||
libircd_la_SOURCES += util.cc
|
|
||||||
libircd_la_SOURCES += demangle.cc
|
libircd_la_SOURCES += demangle.cc
|
||||||
libircd_la_SOURCES += backtrace.cc
|
libircd_la_SOURCES += backtrace.cc
|
||||||
libircd_la_SOURCES += simd.cc
|
libircd_la_SOURCES += simd.cc
|
||||||
libircd_la_SOURCES += fpe.cc
|
libircd_la_SOURCES += fpe.cc
|
||||||
|
libircd_la_SOURCES += parse.cc
|
||||||
|
libircd_la_SOURCES += lex_cast.cc
|
||||||
|
libircd_la_SOURCES += info.cc
|
||||||
|
libircd_la_SOURCES += allocator.cc
|
||||||
|
libircd_la_SOURCES += allocator_gnu.cc
|
||||||
|
libircd_la_SOURCES += allocator_je.cc
|
||||||
|
libircd_la_SOURCES += util.cc
|
||||||
|
libircd_la_SOURCES += rand.cc
|
||||||
|
libircd_la_SOURCES += fmt.cc
|
||||||
|
libircd_la_SOURCES += timedate.cc
|
||||||
if ICU
|
if ICU
|
||||||
libircd_la_SOURCES += icu.cc
|
libircd_la_SOURCES += icu.cc
|
||||||
endif
|
endif
|
||||||
libircd_la_SOURCES += utf.cc
|
libircd_la_SOURCES += utf.cc
|
||||||
libircd_la_SOURCES += timedate.cc
|
|
||||||
libircd_la_SOURCES += lex_cast.cc
|
|
||||||
libircd_la_SOURCES += stringops.cc
|
libircd_la_SOURCES += stringops.cc
|
||||||
libircd_la_SOURCES += globular.cc
|
libircd_la_SOURCES += globular.cc
|
||||||
libircd_la_SOURCES += tokens.cc
|
libircd_la_SOURCES += tokens.cc
|
||||||
libircd_la_SOURCES += parse.cc
|
|
||||||
libircd_la_SOURCES += rand.cc
|
|
||||||
libircd_la_SOURCES += b64.cc
|
libircd_la_SOURCES += b64.cc
|
||||||
libircd_la_SOURCES += b58.cc
|
libircd_la_SOURCES += b58.cc
|
||||||
libircd_la_SOURCES += crh.cc
|
libircd_la_SOURCES += crh.cc
|
||||||
libircd_la_SOURCES += fmt.cc
|
|
||||||
libircd_la_SOURCES += json.cc
|
libircd_la_SOURCES += json.cc
|
||||||
libircd_la_SOURCES += cbor.cc
|
libircd_la_SOURCES += cbor.cc
|
||||||
libircd_la_SOURCES += conf.cc
|
libircd_la_SOURCES += conf.cc
|
||||||
|
|
|
@ -28,11 +28,9 @@ decltype(ircd::spirit::rule_buffer)
|
||||||
ircd::spirit::rule_buffer
|
ircd::spirit::rule_buffer
|
||||||
alignas(64);
|
alignas(64);
|
||||||
|
|
||||||
#ifndef __clang__
|
|
||||||
thread_local
|
thread_local
|
||||||
decltype(ircd::spirit::generator_state)
|
decltype(ircd::spirit::generator_state)
|
||||||
ircd::spirit::generator_state;
|
ircd::spirit::generator_state;
|
||||||
#endif
|
|
||||||
|
|
||||||
thread_local
|
thread_local
|
||||||
decltype(ircd::spirit::generator_buffer)
|
decltype(ircd::spirit::generator_buffer)
|
||||||
|
|
Loading…
Reference in a new issue