Message ID | VI1PR07MB0911F2B49AE4FBDDD72EEA2EE4B20@VI1PR07MB0911.eurprd07.prod.outlook.com |
---|---|
State | New |
Headers | show |
Ping... Hi, when the free-standing libstdc++-headers are installed, the C++ header file <new> does not always compile, because it includes <exception> and this includes under certain conditions (__cplusplus >= 201103L && ATOMIC_INT_LOCK_FREE > 1) the header file <bits/nested_exception.h> but that fails to compile because it needs <bits/move.h> which is not installed. This condition depends on the target, and for instance an arm-eabi eCos compiler fails to compile <new> with -mcpu=cortex-a9 and the default C++ standard option, while it is OK with ARMv4 CPUs. Therefore this patch adds move.h and concept_check.h to the installed headers, unconditionally. I've verified that the <new> header compiles on an eCos cross compiler. Boot-strapped and regression-tested on x86_64-pc-linux-gnu. Is it OK for trunk? Thanks Bernd.
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 Thanks Bernd.
2016-03-08 Bernd Edlinger <bernd.edlinger@hotmail.de> * include/Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. * include/Makefile.in: Regenerated. Index: libstdc++-v3/include/Makefile.am =================================================================== --- libstdc++-v3/include/Makefile.am (revision 234060) +++ 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 234060) +++ 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 \