Switch to shared Spicy libraries by default.

This should work now. It affects only the toolchain libraries
`libhilti`/`libspicy`. the runtime libraries `libhilti-rt` and
`libspicy-rt` are always built static (but they are small). Zeek
itself doesn't link against the toolchain anymore now anyways, but a
number of the Spicy tools do.

Note, we have an issue with Broker I believe: it looks like it always
overrides BUILD_SHARED_LIBS to `OFF`

Addresses #2675.
This commit is contained in:
Robin Sommer 2023-01-27 17:16:57 +01:00
parent 04a1ead978
commit 2512fd1e68
No known key found for this signature in database
GPG key ID: 6BEDA4DA6B8B23E3

View file

@ -14,15 +14,10 @@ endif ()
get_filename_component(dir ${BISON_EXECUTABLE} DIRECTORY ABSOLUTE) get_filename_component(dir ${BISON_EXECUTABLE} DIRECTORY ABSOLUTE)
set(BISON_ROOT ${dir}/..) set(BISON_ROOT ${dir}/..)
# We currently only support building against statically linked Spicy libraries. if ( NOT BINARY_PACKAGING_MODE )
# This is due to global state held in the Spicy and HILTI runtime libraries. If # TODO: Broker seems to always turn on static libraries. We don't want that for Spicy by default.
# we would like Spicy dynamically this global state would end up the the final set(BUILD_SHARED_LIBS yes)
# binary once via the static link of the runtime libraries into Zeek (needed to endif ()
# make sure we can e.g., load arbitrary HLTO files), and once as a link
# dependency of spicy-plugin. This can lead to e.g. consistency issues during
# execution or the problem during teardown where the same global might be
# cleaned up multiple times.
set(BUILD_SHARED_LIBS OFF)
# Spicy uses slightly less strict warnings than Zeek proper. Mute a few warnings for Spicy. # Spicy uses slightly less strict warnings than Zeek proper. Mute a few warnings for Spicy.
# NOTE: Compiler flags are inherited down the directory tree, so in order to # NOTE: Compiler flags are inherited down the directory tree, so in order to