Skip to content

boost: fix bjam bootstrap under GCC 14 for @1.56.0 - #6271

Open
gonzabotmdp wants to merge 1 commit into
spack:developfrom
gonzabotmdp:fix/boost-1.56.0-gcc14-bjam-file_query
Open

boost: fix bjam bootstrap under GCC 14 for @1.56.0#6271
gonzabotmdp wants to merge 1 commit into
spack:developfrom
gonzabotmdp:fix/boost-1.56.0-gcc14-bjam-file_query

Conversation

@gonzabotmdp

Copy link
Copy Markdown
Contributor

Summary

boost@1.56.0's own build engine (tools/build/src/engine, aka bjam/b2) fails to bootstrap under GCC 14:

tools/build/src/engine/modules/path.c: In function 'path_exists':
tools/build/src/engine/modules/path.c:16:12: error: implicit declaration of function 'file_query'

file_query() is properly declared in the engine's own filesys.h (and correctly implemented in filesys.c/fileunix.c), but modules/path.c calls it without including that header -- valid, if sloppy, C89 that every older GCC only warned about (-Wimplicit-function-declaration became a hard error by default in GCC 14). Confirmed with the preprocessor (gcc -E) that the correct file_query declaration really is reachable via the existing -I../include-style search path used at both of bjam's two build stages (the initial bootstrap/jam0 bootstrap AND the subsequent full b2 build jam0 itself drives) -- it's just never actually included from this one file.

Adding the missing #include "../filesys.h" fixes both stages in one shot (a -Wno-error=... flag override only reaches the first stage, since jam0's own Jam rules recompile the same sources a second time without inheriting it).

Testing

Reproduced the failure and confirmed the fix on a real (if since-abandoned) dependency chain: initially needed for py-quast@5.2.0 pinning boost@1.56.0 directly (that pin turned out to be vestigial and was removed in a separate PR, but this bjam bug is real and will hit anyone else building boost@1.56.0 with a modern GCC).

@spackbot-triage spackbot-triage Bot added update-package Modifications to packages in the repository conflicts Modifications with a `conflicts()` directive labels Aug 28, 2026
@spackbot-triage
spackbot-triage Bot requested a review from hainest August 28, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts Modifications with a `conflicts()` directive update-package Modifications to packages in the repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant