Jonathan Wakely
fa4754797c
libstdc++: Optionally define std::print functions non-inline [PR124410]
...
We don't want to export std::vprint_unicode etc. from libstdc++.so yet,
but we can give users the option of improving compile times by getting
the definitions of the std::print internals from libstdc++exp.a instead.
This commit adds a macro, _GLIBCXX_NO_INLINE_PRINT, which disables the
inline definitions of std::vprint_unicode etc. so that extern
definitions in libstdc++exp.a can be used instead.
With this change compiling a helloworld using std::print goes from 8s to
under 2s with trunk. For release branches with --enable-checking=release
we should see even faster times. The object file size is also
dramatically smaller, because there's just a single call to an extern
function instead of instantiating the entire std::print and std::format
implementation inline.
libstdc++-v3/ChangeLog:
PR libstdc++/124410
* doc/html/*: Regenerate.
* doc/xml/manual/using.xml (_GLIBCXX_NO_INLINE_PRINT): Document
macro.
* include/Makefile.am: Add bits/print.h and bits/ostream_print.h
headers.
* include/Makefile.in: Regenerate.
* include/std/ostream (vprint_nonunicode, vprint_unicode): Move
definitions to new bits/ostream_print.h header.
* include/std/print (__format::_File_sink, vprint_nonunicode)
(vprint_nonunicode_buffered, vprint_unicode)
(vprint_unicode_buffered): Move definitions to new bits/print.h
header.
* src/c++23/print.cc: Include new headers to define symbols for
inline print functions.
* include/bits/ostream_print.h: New file.
* include/bits/print.h: New file.
2026-04-17 13:43:49 +01:00
..
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-03-10 13:38:23 -04:00
2026-01-02 09:56:11 +01:00
2026-03-16 15:17:45 +00:00
2026-03-30 18:01:13 +02:00
2026-01-02 09:56:11 +01:00
2026-01-09 19:18:21 +00:00
2026-03-09 16:44:11 +00:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-07 19:25:27 +02:00
2026-04-07 19:25:27 +02:00
2026-04-02 13:59:55 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-01 12:51:16 +01:00
2026-04-02 13:59:57 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-07 19:25:27 +02:00
2026-01-02 09:56:11 +01:00
2025-06-02 13:52:35 +02:00
2026-03-17 21:49:14 +00:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-19 10:17:47 +01:00
2026-04-02 13:59:55 +01:00
2026-04-02 13:59:55 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-03-17 21:49:43 +00:00
2026-01-02 09:56:11 +01:00
2026-04-08 13:22:20 +02:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-08 13:22:20 +02:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-13 22:29:22 +02:00
2026-04-13 22:29:22 +02:00
2026-01-02 09:56:11 +01:00
2025-10-08 17:06:20 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-15 10:17:43 -05:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-03-10 13:38:23 -04:00
2025-06-02 13:52:35 +02:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:56 +01:00
2026-03-16 15:17:45 +00:00
2026-01-07 15:07:33 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-17 13:43:49 +01:00
2026-04-02 13:59:56 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:55 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-17 13:43:49 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-15 17:51:49 +01:00
2026-01-02 09:56:11 +01:00
2026-03-10 18:22:28 +00:00
2026-01-02 09:56:11 +01:00
2026-03-16 22:04:23 +00:00
2026-01-19 12:09:11 +01:00
2026-04-10 07:59:24 +02:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-03-18 15:40:51 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:58 +01:00
2026-01-02 09:56:11 +01:00
2026-02-09 20:04:12 -05:00
2026-02-12 15:17:57 -05:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-02-09 20:04:12 -05:00
2026-02-11 11:00:03 +00:00
2026-04-01 12:51:13 +01:00
2026-01-09 19:18:21 +00:00
2026-01-02 09:56:11 +01:00
2026-01-28 10:28:09 +00:00
2026-01-02 09:56:11 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-03-21 12:44:15 +01:00
2026-04-15 09:40:55 +02:00
2026-03-21 12:44:15 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-07 15:07:33 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:56 +01:00
2026-04-02 13:59:56 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:56 +01:00
2026-02-11 17:54:09 +01:00
2026-01-13 19:14:26 +01:00
2026-04-02 13:59:56 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:55 +01:00
2026-02-04 17:39:51 -05:00
2026-02-04 17:39:51 -05:00
2026-04-02 13:59:56 +01:00
2026-04-02 13:59:57 +01:00
2026-04-02 13:59:56 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:55 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:56 +01:00
2026-03-27 11:37:39 -04:00
2026-04-10 07:59:24 +02:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2025-10-08 18:02:39 +02:00
2025-11-14 18:27:01 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-02 13:59:56 +01:00
2026-04-02 13:59:56 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-04-14 14:20:59 +02:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-01-02 09:56:11 +01:00
2026-03-21 12:44:15 +01:00
2026-01-02 09:56:11 +01:00
2026-04-14 17:09:26 +02:00
2026-04-14 17:09:26 +02:00
2026-01-02 09:56:11 +01:00