[binutils-gdb] config: Fix host -rdynamic detection for build != host != target

Joseph Myers jsm28@sourceware.org
Fri Sep 1 15:22:27 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7fdd4fcee1c6698daa8eb5f52017e768b0771503

commit 7fdd4fcee1c6698daa8eb5f52017e768b0771503
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Sep 1 15:20:47 2023 +0000

    config: Fix host -rdynamic detection for build != host != target
    
    [Merge from GCC commit 4d9bc81a5d8d884dee7a7781fa4c1577a6c9681a.]
    
    The GCC_ENABLE_PLUGINS configure logic for detecting whether -rdynamic
    is necessary and supported uses an appropriate objdump for $host
    binaries (running on $build) in cases where $host is $build or
    $target.
    
    However, it is missing such logic in the case where $host is neither
    $build nor $target, resulting in the compilers not being linked with
    -rdynamic and plugins not being usable with such a compiler.  In fact
    $ac_cv_prog_OBJDUMP, as used when $build = $host, is always an objdump
    for $host binaries that runs on $build; that is, it's appropriate to
    use in this case as well.
    
    Tested in such a configuration that it does result in cc1 being linked
    with -rdynamic as expected.  Also bootstrapped with no regressions for
    x86_64-pc-linux-gnu.
    
    config/
            * gcc-plugin.m4 (GCC_ENABLE_PLUGINS): Use
            export_sym_check="$ac_cv_prog_OBJDUMP -T" also when host is not
            build or target.

Diff:
---
 config/gcc-plugin.m4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/config/gcc-plugin.m4 b/config/gcc-plugin.m4
index c731a6fab38..c30cfdd8fad 100644
--- a/config/gcc-plugin.m4
+++ b/config/gcc-plugin.m4
@@ -49,7 +49,7 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
        elif test x$host = x$target; then
 	 export_sym_check="$gcc_cv_objdump -T"
        else
-	 export_sym_check=
+	 export_sym_check="$ac_cv_prog_OBJDUMP -T"
        fi
      ;;
    esac


More information about the Binutils-cvs mailing list