Patchwork libstdc++/62159 install missing freestanding headers for C++11

login
register
mail settings
Submitter Jonathan Wakely
Date Aug. 27, 2014, 5:33 p.m.
Message ID <20140827173359.GF22778@redhat.com>
Download mbox | patch
Permalink /patch/383506/
State New
Headers show

Comments

Jonathan Wakely - Aug. 27, 2014, 5:33 p.m.
C++11 adds several more headers to the minimum requirements for a
freestanding implementation.

Tested x86_64-linux, committed to trunk.

Patch

commit 88367ee23e7a6f23fb339dd938a50a79d4eb7fb3
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 27 15:24:27 2014 +0100

    	PR libstdc++/62159
    	* include/Makefile.am (install-freestanding-headers): Add missing
    	C++11 headers.
    	* include/Makefile.in: Regenerate.

diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index e469586..3143a21 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -1223,14 +1223,18 @@  else
 install-data-local: install-freestanding-headers
 endif
 
-# This is a subset of the full install-headers rule.  We only need <cstddef>,
-# <limits>, <cstdlib>, <cstdarg>, <new>, <typeinfo>, <exception>, and any
-# files which they include (and which we provide).  The last three headers
-# are installed by libsupc++, so only the first four and the sub-includes
-# are copied here.
+# This is a subset of the full install-headers rule.  We only need <ciso646>,
+# <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>,
+# <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
+# <cstdbool>, <type_traits>, <atomic>, and any files which they include (and
+# which we provide).
+# <new>, <typeinfo>, <exception>, and <initializer_list> are installed by
+# libsupc++, so only the others and the sub-includes are copied here.
 install-freestanding-headers:
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits
 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
+	$(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/atomic_base.h \
+	  $(DESTDIR)${gxx_include_dir}/bits
 	$(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/c++0x_warning.h \
 	  $(DESTDIR)${gxx_include_dir}/bits
 	for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \
@@ -1239,8 +1243,11 @@  install-freestanding-headers:
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
 	$(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir}
+	$(INSTALL_DATA) ${std_builddir}/type_traits $(DESTDIR)${gxx_include_dir}/${std_builddir}
+	$(INSTALL_DATA) ${std_builddir}/atomic $(DESTDIR)${gxx_include_dir}/${std_builddir}
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
-	for file in cstddef cstdlib cstdarg; do \
+	for file in ciso646 cstddef cfloat climits cstdint cstdlib \
+	  cstdalign cstdarg cstdbool; do \
 	  $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
 
 # The real deal.