Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@kleisauke
Copy link
Contributor

The GenerateExportHeader module assumes it's acting on a shared library. When libjxl is built as a static library, we must define JXL*_STATIC_DEFINE explicitly to disable symbol export.

Without this, symbols from a statically built libjxl may be incorrectly exported as part of the ABI of any dynamic library that links against it. See for example:

$ llvm-readobj --coff-exports bin/libvips-42.dll | grep -c Jxl
105

A CMake block attempting to handle this already existed, but it was a no-op because the internal objects had already been built.

The `GenerateExportHeader` module assumes it's acting on a shared
library. When libjxl is built as a static library, we must define
`JXL*_STATIC_DEFINE` explicitly to disable symbol export.

Without this, symbols from a statically built libjxl may be
incorrectly exported as part of the ABI of any dynamic library that
links against it.

A CMake block attempting to handle this already existed, but it was
a no-op because the internal objects had already been built.
kleisauke added a commit to libvips/build-win64-mxe that referenced this pull request Dec 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant