On 22.03.2016 20:10, Jonathan Wakely wrote: > On 22/03/16 18:29 +0000, Bernd Edlinger wrote: >> Yes. Maybe changing concept_check.h would be better, because >> I see 3 different instances of bits/c++config.h: >> >> $prefix/arm-eabi/include/c++/6.0.0/arm-eabi/fpu/bits/c++config.h >> $prefix/arm-eabi/include/c++/6.0.0/arm-eabi/bits/c++config.h >> $prefix/arm-eabi/include/c++/6.0.0/arm-eabi/thumb/bits/c++config.h > > But they're all generated from the same include/bits/c++config in the > source tree, so that shouldn't matter. > >> while I only see one use of _GLIBCXX_CONCEPT_CHECKS: >> $prefix/arm-eabi/include/c++/6.0.0/bits/concept_check.h > > I'm fine with changing it there. We should also document that the > macro doesn't do anything for freestanding implementations. >
Done. Attached is a new version of my patch with a small documentation update. I just used your wording if you don't mind. Is it Ok for trunk when boot-strap and regression-testing completed? Thanks Bernd.
2016-03-22 Bernd Edlinger <bernd.edlin...@hotmail.de> * include/Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. * include/Makefile.in: Regenerated. * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for freestanding implementations. * doc/html/manual/using_macros.html (_GLIBCXX_CONCEPT_CHECKS): Mention that this macro doesn't do anything for freestanding implementaions. * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention that this macro doesn't do anything for freestanding implementaions. Index: libstdc++-v3/doc/html/manual/using_macros.html =================================================================== --- libstdc++-v3/doc/html/manual/using_macros.html (revision 234407) +++ libstdc++-v3/doc/html/manual/using_macros.html (working copy) @@ -66,7 +66,8 @@ <code class="code">--enable-concept-checks</code>. When defined, performs compile-time checking on certain template instantiations to detect violations of the requirements of the standard. This - is described in more detail in + macro doesn't do anything for freestanding implementaions. + This is described in more detail in <a class="link" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks">Compile Time Checks</a>. </p></dd><dt><span class="term"><code class="code">_GLIBCXX_ASSERTIONS</code></span></dt><dd><p> Undefined by default. When defined, enables extra error checking in @@ -91,4 +92,4 @@ mode</a>. </p></dd><dt><span class="term"><code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></span></dt><dd><p>Undefined by default. When defined to a non-zero integer constant, enables support for ISO/IEC 29124 Special Math Functions. - </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dual ABI</td></tr></table></div></body></html> \ No newline at end of file + </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dual ABI</td></tr></table></div></body></html> Index: libstdc++-v3/doc/xml/manual/using.xml =================================================================== --- libstdc++-v3/doc/xml/manual/using.xml (revision 234407) +++ libstdc++-v3/doc/xml/manual/using.xml (working copy) @@ -908,7 +908,8 @@ <code>--enable-concept-checks</code>. When defined, performs compile-time checking on certain template instantiations to detect violations of the requirements of the standard. This - is described in more detail in + macro doesn't do anything for freestanding implementaions. + This is described in more detail in <link linkend="manual.ext.compile_checks">Compile Time Checks</link>. </para> </listitem></varlistentry> Index: libstdc++-v3/include/Makefile.am =================================================================== --- libstdc++-v3/include/Makefile.am (revision 234407) +++ libstdc++-v3/include/Makefile.am (working copy) @@ -1331,7 +1331,7 @@ # libsupc++, so only the others and the sub-includes are copied here. install-freestanding-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits - for file in c++0x_warning.h atomic_base.h; do \ + for file in c++0x_warning.h atomic_base.h concept_check.h move.h; do \ $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/$${file} $(DESTDIR)${gxx_include_dir}/bits; done $(mkinstalldirs) $(DESTDIR)${host_installdir} for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \ Index: libstdc++-v3/include/Makefile.in =================================================================== --- libstdc++-v3/include/Makefile.in (revision 234407) +++ libstdc++-v3/include/Makefile.in (working copy) @@ -1753,7 +1753,7 @@ # libsupc++, so only the others and the sub-includes are copied here. install-freestanding-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits - for file in c++0x_warning.h atomic_base.h; do \ + for file in c++0x_warning.h atomic_base.h concept_check.h move.h; do \ $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/$${file} $(DESTDIR)${gxx_include_dir}/bits; done $(mkinstalldirs) $(DESTDIR)${host_installdir} for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \ Index: libstdc++-v3/include/bits/concept_check.h =================================================================== --- libstdc++-v3/include/bits/concept_check.h (revision 234407) +++ libstdc++-v3/include/bits/concept_check.h (working copy) @@ -41,8 +41,9 @@ // Concept-checking code is off by default unless users turn it on via // configure options or editing c++config.h. +// It is not supported for freestanding implementations. -#ifndef _GLIBCXX_CONCEPT_CHECKS +#if !defined(_GLIBCXX_CONCEPT_CHECKS) || !defined(_GLIBCXX_HOSTED) #define __glibcxx_function_requires(...) #define __glibcxx_class_requires(_a,_b)