On 22/09/20 09:40 +0000, JonY via Libstdc++ wrote:
On 9/22/20 8:50 AM, Jonathan Wakely wrote:
I don't see a patch, or any previous email to the libstdc++ list.
Please resend with the patch, CCing libstdc++@
Thanks.
Resent for the record.
Thanks.
I've been told it might not be appropriate
because some targets cannot link yet and therefore will fail incorrectly.
We only use the GLIBCXX_CHECK_LINKER_FEATURES macro for native builds,
or for specific cross targets. And we already do AC_TRY_LINK just
before the relro check, so I think it's probably OK. But I admit to
not fully understanding this.
Currently, the linker support is misdetected since binutils can support
multiple targets. MinGW/Cygwin PE formats don't support such a flag.
From: Jonathan Yong <10wa...@gmail.com>
Date: Sun, 22 Mar 2020 01:59:37 +0000 (+0800)
Subject: libstdc++: use a link test to test for -Wl,-z,relro
X-Git-Url:
https://repo.or.cz/gcc/cygwin-gcc.git/commitdiff_plain/1b20e03e7468760828bfc70fc5e811b5b3738adf
libstdc++: use a link test to test for -Wl,-z,relro
Do a link test instead of just a grep. The linker can
support multiple targets, but not all targets can use it.
Signed-off-by: Jonathan Yong <10wa...@gmail.com>
---
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index bc7d137dc74..209aa3a91f3 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -274,7 +274,16 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
ac_ld_relro=no
if test x"$with_gnu_ld" = x"yes"; then
AC_MSG_CHECKING([for ld that supports -Wl,-z,relro])
- cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"`
+ ac_save_ldflags="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,-z,relro"
+ AC_LINK_IFELSE([
+ AC_LANG_SOURCE(
+ [[int main() { return 0; }]]
+ )],
+ [cxx_z_relo="1"],
+ [cxx_z_relo=""])
+ LDFLAGS="$ac_save_ldflags"
+
if test -n "$cxx_z_relo"; then
OPT_LDFLAGS="-Wl,-z,relro"
ac_ld_relro=yes