diff mbox

[libstdc++] Add missing free-standing headers to install rule

Message ID VI1PR07MB0911F2B49AE4FBDDD72EEA2EE4B20@VI1PR07MB0911.eurprd07.prod.outlook.com
State New
Headers show

Commit Message

Bernd Edlinger March 9, 2016, 3:33 a.m. UTC
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.

Comments

Bernd Edlinger March 16, 2016, 8:32 a.m. UTC | #1
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.
Bernd Edlinger March 22, 2016, 7:10 a.m. UTC | #2
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.
diff mbox

Patch

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 \