From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id E14F33858D38; Mon, 3 Oct 2022 14:45:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E14F33858D38 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664808330; bh=RzITX1Aa0k+X04RO1RAXfwO/XGJexqqvBx7s+792T7A=; h=From:To:Subject:Date:From; b=ZkVfb91nGNqHItvtdg5zbuEc6Wnu6RLBZbLu8z7k5dSC2f+24lPednwUFvFh+IfTK WG1Vd+0GRCL2uncOpSfesAunKPX1PDLnRRM0UCdZYQuG66qatHC6aBvOHVYvcRL0vX xf40jCAPHthFyYL/8wILICOqE8/ZKJTRUx1YF668= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-3034] libstdc++: Make _GLIBCXX_HOSTED respect -ffreestanding [PR103626] X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: 77d0627c244f7520bf74ec9cf2a8b69c32b6d30d X-Git-Newrev: f1b51f68f8ac6c63e352dda8599aed01634212de Message-Id: <20221003144530.E14F33858D38@sourceware.org> Date: Mon, 3 Oct 2022 14:45:30 +0000 (GMT) List-Id: https://gcc.gnu.org/g:f1b51f68f8ac6c63e352dda8599aed01634212de commit r13-3034-gf1b51f68f8ac6c63e352dda8599aed01634212de Author: Jonathan Wakely Date: Tue Sep 20 11:57:28 2022 +0100 libstdc++: Make _GLIBCXX_HOSTED respect -ffreestanding [PR103626] This allows the library to switch to freestanding mode when compiling with the -ffreestanding flag. This means you don't need a separate libstdc++ build configured with --disable-hosted-libstdcxx in order to compile for a freestanding environment. The testsuite support files cannot be compiled for freestanding, so add -fno-freestanding to override any -ffreestanding in the test flags. libstdc++-v3/ChangeLog: PR libstdc++/103626 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED to __STDC_HOSTED__ for non-freestanding installations. * configure: Regenerate. * include/Makefile.am (${host_builddir}/c++config.h): Adjust grep pattern. * include/Makefile.in: Regenerate. * testsuite/lib/libstdc++.exp (v3-build_support): Use -fno-freestanding. * testsuite/libstdc++-abi/abi.exp: Likewise. Diff: --- libstdc++-v3/acinclude.m4 | 2 +- libstdc++-v3/configure | 2 +- libstdc++-v3/include/Makefile.am | 2 +- libstdc++-v3/include/Makefile.in | 2 +- libstdc++-v3/testsuite/lib/libstdc++.exp | 4 ++-- libstdc++-v3/testsuite/libstdc++-abi/abi.exp | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 9aa81e1ac13..1b404d7df22 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2992,7 +2992,7 @@ AC_DEFUN([GLIBCXX_ENABLE_HOSTED], [ fi else is_hosted=yes - hosted_define=1 + hosted_define=__STDC_HOSTED__ fi GLIBCXX_CONDITIONAL(GLIBCXX_HOSTED, test $is_hosted = yes) AC_DEFINE_UNQUOTED(_GLIBCXX_HOSTED, $hosted_define, diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 07916d14d93..1ff28af2c2c 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -15651,7 +15651,7 @@ $as_echo "$as_me: Only freestanding libraries will be built" >&6;} fi else is_hosted=yes - hosted_define=1 + hosted_define=__STDC_HOSTED__ fi diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index 3eeb407a57f..3472e84f75c 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am @@ -1326,7 +1326,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && ldbl_alt128_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 1,' ;\ verbose_assert='s,g,g,' ; \ - grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*1[ ]*$$" \ + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*__STDC_HOSTED__[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_VERBOSE[ ][ ]*1[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index e24563caaed..39ef34fc3ce 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -1820,7 +1820,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && ldbl_alt128_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 1,' ;\ verbose_assert='s,g,g,' ; \ - grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*1[ ]*$$" \ + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*__STDC_HOSTED__[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_VERBOSE[ ][ ]*1[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 0338b50897f..d3256b6c8c4 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -654,7 +654,7 @@ proc v3-build_support { } { # do not prevent compilation. # Disable LTO so that ar/ranlib don't need the LTO plugin. if { [v3_target_compile $srcdir/util/$f $object_file "object" \ - [list "incdir=$srcdir" "additional_flags=-w -fno-lto"]] + [list "incdir=$srcdir" "additional_flags=-w -fno-lto -fno-freestanding"]] != "" } { error "could not compile $f" } @@ -693,7 +693,7 @@ proc v3-build_support { } { # Compile with "-w" so that warnings issued by the compiler # do not prevent compilation. if { [v3_target_compile $srcdir/util/$f $object_file "sharedlib" \ - [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC -std=gnu++98"]] + [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC -std=gnu++98 -fno-freestanding"]] != "" } { error "could not compile $f" } diff --git a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp index 9e919e1d7a0..66f19ea4514 100644 --- a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp +++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp @@ -60,7 +60,7 @@ remote_exec "build" "$blddir/scripts/extract_symvers" \ # Build the abi_check program. if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \ - "executable" [list "additional_flags=-w"]] != "" } { + "executable" [list "additional_flags=-w -fno-freestanding"]] != "" } { error "could not compile testsuite_abi_check.cc" }