Skip to content

fix(conan): plugin_host links the parser-module host; GCC 15 -O3 false positive (0.23.1) - #177

Merged
facontidavide merged 1 commit into
mainfrom
fix/conan-plugin-host-components
Aug 30, 2026
Merged

fix(conan): plugin_host links the parser-module host; GCC 15 -O3 false positive (0.23.1)#177
facontidavide merged 1 commit into
mainfrom
fix/conan-plugin-host-components

Conversation

@facontidavide

Copy link
Copy Markdown
Contributor

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_host component was incomplete since 0.22.0

conanfile.py's plugin_host component listed the pre-0.22 loaders only: pj_parser_module_host and pj_parser_claim_catalog (both part of the plotjuggler_sdk::plugin_host umbrella 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 the parser_module component and ships PjParserModule.cmake as a build module so find_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 created plotjuggler_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 linking plotjuggler_sdk::plugin_host constructs ParserClaimCatalog and NativeParserModule::loads the module → ok.

2. GCC 15 -O3 -Werror false positive

GCC 15.2 reports -Wfree-nonheap-object for std::vector<uint8_t>::push_back's reallocation path inlined into ByteWriter::littleEndian in pj_base/src/parser_module_abi.cpp. -O0 and -O2 (Debug, RelWithDebInfo) are clean; every Release / conan create build fails on that compiler. Suppressed with a __GNUC__ >= 15 pragma pair, same pattern as #170.

Verification

  • ./build.sh --debug + ctest: 75/75 (Debug+ASAN)
  • direct g++ -O3 -DNDEBUG -Wall -Wextra -Werror on the file: clean with the pragma, 1 error without
  • Conan consumer as above

Release: PATCH → 0.23.1 (VERSION bumped here; tagging is yours).

🤖 Generated with Claude Code

https://claude.ai/code/session_017U391nLF7Motf4FehVRiXz

…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
@facontidavide
facontidavide merged commit ba9bb8e into main Aug 30, 2026
7 checks passed
@facontidavide
facontidavide deleted the fix/conan-plugin-host-components branch August 30, 2026 18:22
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