fix(conan): plugin_host links the parser-module host; GCC 15 -O3 false positive (0.23.1) - #177
Merged
Merged
Conversation
…15 -O3 false positive (0.23.1) The Conan recipe's plugin_host component omitted pj_parser_module_host and pj_parser_claim_catalog, both part of the plotjuggler_sdk::plugin_host umbrella since 0.22.0, so Conan consumers of the host umbrella could not link the claim catalog, route resolver, or native parser-module loader. The recipe also gains the parser_module component (header-only authoring kit) and ships PjParserModule.cmake as a build module, so find_package(plotjuggler_sdk COMPONENTS parser_module) and pj_add_parser_module() work from the Conan package exactly as from the installed CMake package. Verified with a throwaway consumer against the locally created plotjuggler_sdk/0.23.1 package: components resolve, a native module builds through pj_add_parser_module(), and a binary linking plugin_host constructs ParserClaimCatalog and loads the module through NativeParserModule::load. Also silences a GCC 15 -Wfree-nonheap-object false positive in parser_module_abi.cpp (std::vector::push_back reallocation inlined into ByteWriter::littleEndian) that made every -O3 -Werror build — i.e. every Release/Conan package build — fail on that compiler. -O0/-O2 are clean. No header, ABI, or behavior change: PATCH, VERSION 0.23.1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017U391nLF7Motf4FehVRiXz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PATCH release 0.23.1 — two build/packaging fixes on top of
main, no header/ABI/behavior change. Found while reviewing #173.1. Conan
plugin_hostcomponent was incomplete since 0.22.0conanfile.py'splugin_hostcomponent listed the pre-0.22 loaders only:pj_parser_module_hostandpj_parser_claim_catalog(both part of theplotjuggler_sdk::plugin_hostumbrella since #172) were missing, so a Conan consumer of the umbrella could not link the claim catalog / route resolver / native parser-module loader. Also adds theparser_modulecomponent and shipsPjParserModule.cmakeas a build module sofind_package(plotjuggler_sdk COMPONENTS parser_module)+pj_add_parser_module()work from the Conan package like they do from the installed CMake package.Verified with a throwaway consumer against a locally
conan createdplotjuggler_sdk/0.23.1:find_package(... COMPONENTS plugin_host parser_module)resolves,pj_add_parser_module(TARGETS native)builds the toy module from the Conan build module, and a binary linkingplotjuggler_sdk::plugin_hostconstructsParserClaimCatalogandNativeParserModule::loads the module →ok.2. GCC 15
-O3 -Werrorfalse positiveGCC 15.2 reports
-Wfree-nonheap-objectforstd::vector<uint8_t>::push_back's reallocation path inlined intoByteWriter::littleEndianinpj_base/src/parser_module_abi.cpp.-O0and-O2(Debug, RelWithDebInfo) are clean; every Release /conan createbuild fails on that compiler. Suppressed with a__GNUC__ >= 15pragma pair, same pattern as #170.Verification
./build.sh --debug+ ctest: 75/75 (Debug+ASAN)g++ -O3 -DNDEBUG -Wall -Wextra -Werroron the file: clean with the pragma, 1 error withoutRelease: PATCH →
0.23.1(VERSION bumped here; tagging is yours).🤖 Generated with Claude Code
https://claude.ai/code/session_017U391nLF7Motf4FehVRiXz