Landing: fa4754797c29

Project / Subsystem

gcc / libstdc++

Date

2026-03-10

Author

Jonathan Wakely

Commit

fa4754797c2935e4e2be95f128e668d6499ec267

Source

github

Impact

7/10

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
libstdc++
patch_id
commit_hash
fa4754797c2935e4e2be95f128e668d6499ec267
source_type
github
headline
Libstdc++: Allow non-inline definition of std::print functions.
tldr
Introduces a macro to optionally disable inline definitions of `std::print` functions, reducing compile times.
why_it_matters
Inlining `std::print` can significantly increase compile times. This change gives users the option to trade some performance for faster builds.
author
Jonathan Wakely
impact_score
7
impact_rationale
User-visible feature to control inlining, with significant impact on compile times in some cases.
outcome
committed
performance_win
false
breaking_change
false
series_id
series_parts
[]
tags
  • libstdc++
  • std::print
  • compile time
  • inlining
  • optimization
discussion_id_link
bugzilla_pr
date
2026-03-10T00:00:00.000Z

This commit introduces the _GLIBCXX_NO_INLINE_PRINT macro. When defined, this macro prevents the std::vprint_unicode family of functions from being defined inline, instead using external definitions from libstdc++exp.a. This can drastically reduce compile times, especially in optimized builds, at the cost of potential runtime performance.