[PING**2] [PATCH, libstdc++] Add missing free-standing headers to install rule

Jonathan Wakely jwakely@redhat.com
Tue Mar 22 14:36:00 GMT 2016


On 22/03/16 07:10 +0000, Bernd Edlinger wrote:
>Hi,
>
>I am pinging for this patch, which addresses an admittedly minor regression
>for free-standing libstdc++ due to changed c++11 default settings.  The proposed
>patch does only change the free-standing install rule, and has therefore no impact
>on other configurations.
>
>https://gcc.gnu.org/ml/libstdc++/2016-03/msg00004.html

Sorry for the delay, I'm testing the patch today.

Looks like the patch doesn't add <bits/boost_concept_check.h> to the freestanding
headers, which means using -D_GLIBCXX_CONCEPT_CHECKS will give a fatal
error.

It also means --disable-libstdccxx-hosted --enable-concept-checks
creates an unusable configuration (although it's possible that
--enable-concept-checks is already broken due to the -std=gnu++14
default).

I think it's fine for the concept checking to be unsupported for
freestanding installations, but we should degrade gracefully, via
something like:

--- a/libstdc++-v3/include/bits/concept_check.h
+++ b/libstdc++-v3/include/bits/concept_check.h
@@ -42,7 +42,7 @@
 // Concept-checking code is off by default unless users turn it on via
 // configure options or editing c++config.h.
 
-#ifndef _GLIBCXX_CONCEPT_CHECKS
+#if !defined(_GLIBCXX_CONCEPT_CHECKS) || !defined(_GLIBCXX_HOSTED)
 
 #define __glibcxx_function_requires(...)
 #define __glibcxx_class_requires(_a,_b)


Or in c++config.h doing:

#ifndef _GLIBCXX_HOSTED
# undef _GLIBCXX_CONCEPT_CHECKS
#endif

That seems better than just giving an error.



More information about the Libstdc++ mailing list