aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-01-24 11:13:55 +0000
committerJonathan Wakely <jwakely@redhat.com>2020-02-26 09:09:48 +0000
commit761696abfe0a772315449e3d2b57de76756f5953 (patch)
tree1d46aedc05031558f049fe1cd482969e9cc45456 /libstdc++-v3
parent56b6c2ba3a45c768a33f726b130a56fc19cca650 (diff)
downloadgcc-761696abfe0a772315449e3d2b57de76756f5953.zip
gcc-761696abfe0a772315449e3d2b57de76756f5953.tar.gz
gcc-761696abfe0a772315449e3d2b57de76756f5953.tar.bz2
libstdc++: Simplify makefile rule for largefile-config.h (PR91947)
The previous rule could leave an incomplete file if the build was interrupted, which would then not be remade if make was run again. This makes the rule more robust by writing to a temporary file and only moving it into place as the final step. It also simplifies the rule so that only the essential macro definitions are written to the file, not the explanatory comments and commented out #undef lines. Also, the macro for enabling LFS on Mac OS X 10.5 is now set unconditionally, which is a bug fix from upstream autoconf. Backport from mainline 2020-01-23 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/91947 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify rule. * include/Makefile.in: Regenerate.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/Makefile.am22
-rw-r--r--libstdc++-v3/include/Makefile.in22
3 files changed, 20 insertions, 32 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8b4a53d..ab768b9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,13 @@
2020-02-26 Jonathan Wakely <jwakely@redhat.com>
+ Backport from mainline
+ 2020-01-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/91947
+ * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
+ rule.
+ * include/Makefile.in: Regenerate.
+
Backport from mainlne
2019-10-04 Jonathan Wakely <jwakely@redhat.com>
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index f98d88a..482cba7 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -1240,22 +1240,12 @@ stamp-float128:
endif
# This header is not installed, it's only used to build libstdc++ itself.
-${host_builddir}/largefile-config.h: ${CONFIG_HEADER} \
- ${glibcxx_srcdir}/include/bits/c++config
- @echo '#if defined _GLIBCXX_CXX_CONFIG_H || defined _FEATURES_H' > $@
- @echo '# error "This file must be included before any others"' >> $@
- @echo '#endif' >> $@
- @echo >> $@
- @echo '/* Enable large inode numbers on Mac OS X 10.5. */' >> $@
- @echo '#ifndef _DARWIN_USE_64_BIT_INODE' >> $@
- @echo '# define _DARWIN_USE_64_BIT_INODE 1' >> $@
- @echo '#endif' >> $@
- @echo >> $@
- @echo '/* Number of bits in a file offset, on hosts where this is settable. */' >> $@
- @grep '_FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@
- @echo >> $@
- @echo '/* Define for large files, on AIX-style hosts. */' >> $@
- @grep '_LARGE_FILES' ${CONFIG_HEADER} >> $@
+${host_builddir}/largefile-config.h: ${CONFIG_HEADER}
+ @rm -f $@.tmp
+ @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
+ @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
+ @-grep 'define _LARGE_FILES' ${CONFIG_HEADER} >> $@.tmp
+ @mv $@.tmp $@
# NB: The non-empty default ldbl_compat works around an AIX sed
# oddity, see libstdc++/31957 for details.
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 7fb509a..d8f93c8 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -1670,22 +1670,12 @@ stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_head
@ENABLE_FLOAT128_FALSE@ echo 'undef _GLIBCXX_USE_FLOAT128' > stamp-float128
# This header is not installed, it's only used to build libstdc++ itself.
-${host_builddir}/largefile-config.h: ${CONFIG_HEADER} \
- ${glibcxx_srcdir}/include/bits/c++config
- @echo '#if defined _GLIBCXX_CXX_CONFIG_H || defined _FEATURES_H' > $@
- @echo '# error "This file must be included before any others"' >> $@
- @echo '#endif' >> $@
- @echo >> $@
- @echo '/* Enable large inode numbers on Mac OS X 10.5. */' >> $@
- @echo '#ifndef _DARWIN_USE_64_BIT_INODE' >> $@
- @echo '# define _DARWIN_USE_64_BIT_INODE 1' >> $@
- @echo '#endif' >> $@
- @echo >> $@
- @echo '/* Number of bits in a file offset, on hosts where this is settable. */' >> $@
- @grep '_FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@
- @echo >> $@
- @echo '/* Define for large files, on AIX-style hosts. */' >> $@
- @grep '_LARGE_FILES' ${CONFIG_HEADER} >> $@
+${host_builddir}/largefile-config.h: ${CONFIG_HEADER}
+ @rm -f $@.tmp
+ @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
+ @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
+ @-grep 'define _LARGE_FILES' ${CONFIG_HEADER} >> $@.tmp
+ @mv $@.tmp $@
# NB: The non-empty default ldbl_compat works around an AIX sed
# oddity, see libstdc++/31957 for details.