[committed] libstdc++: Fix libbacktrace build files
Jonathan Wakely
jwakely@redhat.com
Thu Jan 20 12:30:15 GMT 2022
On Wed, 19 Jan 2022 at 15:00, Jonathan Wakely wrote:
>
> Tested x86_64-linux, pushed to trunk.
>
>
> This makes it possible to combine --enable-libstdcxx-debug with
> --enable-libstdcxx-backtrace, by adding a rule to src/Makefile to copy
> the backtrace-supported.h header into the src/debug/libbacktrace
> directory.
>
> Add libbacktrace path to testsuite flags so the tests can link without
> having the library installed.
>
> Also fix some warnings when running automake for the libbacktrace
> makefile.
>
> Use a per-library CPPFLAGS variable to fix:
>
> src/libbacktrace/Makefile.am:38: warning: AM_CPPFLAGS multiply defined in condition TRUE ...
> fragment.am:43: ... 'AM_CPPFLAGS' previously defined here
> src/libbacktrace/Makefile.am:32: 'fragment.am' included from here
>
> Create symlinks to the libbacktrace sources to fix:
>
> src/libbacktrace/Makefile.am:55: warning: source file '../../../libbacktrace/atomic.c' is in a subdirectory,
> src/libbacktrace/Makefile.am:55: but option 'subdir-objects' is disabled
>
> libstdc++-v3/ChangeLog:
>
> * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
> linker search paths.
> * src/Makefile.am: Fix src/debug/libbacktrace build.
> * src/Makefile.in: Regenerate.
> * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
> variable. Use symlinks for the source files.
> * src/libbacktrace/Makefile.in: Regenerate.
> ---
> libstdc++-v3/scripts/testsuite_flags.in | 3 +-
> libstdc++-v3/src/Makefile.am | 12 +-
> libstdc++-v3/src/Makefile.in | 9 +-
> libstdc++-v3/src/libbacktrace/Makefile.am | 56 ++++++----
> libstdc++-v3/src/libbacktrace/Makefile.in | 128 +++++++++++++---------
> 5 files changed, 132 insertions(+), 76 deletions(-)
>
> diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/testsuite_flags.in
> index cf7f0f7411e..40dd3d3465e 100755
> --- a/libstdc++-v3/scripts/testsuite_flags.in
> +++ b/libstdc++-v3/scripts/testsuite_flags.in
> @@ -78,7 +78,8 @@ case ${query} in
> ;;
> --cxxldflags)
> SECTIONLDFLAGS="@SECTION_LDFLAGS@ @LIBICONV@
> - -L${BUILD_DIR}/src/filesystem/.libs"
> + -L${BUILD_DIR}/src/filesystem/.libs
> + -L${BUILD_DIR}/src/libbacktrace/.libs"
> echo ${SECTIONLDFLAGS}
> ;;
> *)
This part broke nearly every test on macOS, because the linker warns
about unknown paths.
The src/filesystem/.libs dir only exists for
--enable-libstdcxx-filesystem-ts (which is enabled by default on
macOS) and src/libbacktrace/.libs only exists for
--enable-libstdcxx-backtrace (which is disabled by default on all
targets). The src/filesystem/.libs part has been there for years, so
must have been a latent problem on macOS.
Fixed by this patch, tested powerpc64le-linux and pushed to trunk.
-------------- next part --------------
commit 5929f253fcdbf24fd47706dd11aafdeac5e9ecb6
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Jan 20 11:15:27 2022
libstdc++: Only add valid -L paths to testsuite linker options
The MacOS linker warns about -L arguments that don't exist, which causes
all tests to fail for the defauly configuration (because libbacktrace
isn't built).
libstdc++-v3/ChangeLog:
* scripts/testsuite_flags.in: Only add src/filesystem/.libs and
src/libbacktrace/.libs to LDFLAGS if those directories exist.
diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/testsuite_flags.in
index 40dd3d3465e..18748f0f9ce 100755
--- a/libstdc++-v3/scripts/testsuite_flags.in
+++ b/libstdc++-v3/scripts/testsuite_flags.in
@@ -77,9 +77,15 @@ case ${query} in
echo ${PCHFLAGS}
;;
--cxxldflags)
- SECTIONLDFLAGS="@SECTION_LDFLAGS@ @LIBICONV@
- -L${BUILD_DIR}/src/filesystem/.libs
- -L${BUILD_DIR}/src/libbacktrace/.libs"
+ FS_LDFLAGS=
+ BT_LDFLAGS=
+ if [ -d ${BUILD_DIR}/src/filesystem/.libs ]; then
+ FS_LDFLAGS=-L${BUILD_DIR}/src/filesystem/.libs
+ fi
+ if [ -d ${BUILD_DIR}/src/libbacktrace/.libs ]; then
+ BT_LDFLAGS=-L${BUILD_DIR}/src/libbacktrace/.libs
+ fi
+ SECTIONLDFLAGS="@SECTION_LDFLAGS@ @LIBICONV@ $FS_LDFLAGS $BT_LDFLAGS"
echo ${SECTIONLDFLAGS}
;;
*)
More information about the Libstdc++
mailing list