Arsen Arsenović <ar...@aarsen.me> writes: > This commit replaces the ad-hoc logic in <version> with an AutoGen > database that (mostly) declaratively generates a version.h bit which > combines all of the FTM logic across all headers together. > > This generated header defines macros of the form __glibcxx_foo, > equivalent to their __cpp_lib_foo variants, according to rules specified > in version.def and, optionally, if __glibcxx_want_foo or > __glibcxx_want_all are defined, also defines __cpp_lib_foo forms with > the same definition. > > libstdc++-v3/ChangeLog: > > * include/Makefile.am (bits_freestanding): Add version.h. > (allcreated): Add version.h. > (${bits_srcdir}/version.h): New rule. Regenerates > version.h out of version.{def,tpl}. > * include/Makefile.in: Regenerate. > * include/bits/version.def: New file. Declares a list of > all feature test macros, their values and their preconditions. > * include/bits/version.tpl: New file. Turns version.def > into a sequence of #if blocks. > * include/bits/version.h: New file. Generated from > version.def. > * include/std/version: Replace with a __glibcxx_want_all define > and bits/version.h include. > --- > This patchset is a rebase of > https://inbox.sourceware.org/libstdc++/20230429101640.1697750-1-ar...@aarsen.me/ > > ... passing the same two checks (difall / vercmp) I wrote for the first > pass. Testsuite runs are still pending. > > Changes in this revision: > - Replace the ${bits_srcdir}/version.h rule with a update-version phony, > - Add the new __cpp_lib_chrono value, > - Add __cpp_lib_{ranges_{contains,find_last,fold,iota}}, > - Add comments to various replaced conditions which summarize their > condition, > - Correct a few minor errors spotted in review > > OK for trunk (if those testsuite runs end up clean)?
Same tests as the first time around passed on x86_64-pc-linux-gnu (that is, regression testing + a large libstdc++ harness). -- Arsen Arsenović
signature.asc
Description: PGP signature