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)

Reply via email to