https://gcc.gnu.org/g:e818a48fc88685246852739a969194e24857013f

commit r17-2761-ge818a48fc88685246852739a969194e24857013f
Author: John David Anglin <[email protected]>
Date:   Tue Jul 28 15:11:39 2026 -0400

    Disable CFI directives on hppa*-*-hpux*
    
    We want to use difference expressions in the .eh_frame section for
    EH encoding but gas defines CFI_DIFF_EXPR_OK to 0.  So, we need to
    disable generation of CFI directives on hppa*-*-hpux*.  GCC will
    generate the difference expressions itself.
    
    2026-07-28  John David Anglin  <[email protected]>
    
    gcc/ChangeLog:
    
            * configure.ac: Set gcc_cv_as_cfi_directive to no on
            hppa*-*-hpux*.
            * configure: Regenerate.

Diff:
---
 gcc/configure    | 8 ++++++++
 gcc/configure.ac | 8 ++++++++
 2 files changed, 16 insertions(+)

diff --git a/gcc/configure b/gcc/configure
index be2b9c9aad90..a9cf7ab081a3 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -27244,6 +27244,14 @@ else
   test $ac_status = 0; }; }
     then
        case "$target" in
+  hppa*-*-hpux*)
+    # The HP dynamic linker relocates text and data separately, so
+    # differences between text and data don't work.  As a result,
+    # gas defines CFI_DIFF_EXPR_OK to 0.  We want to use difference
+    # expressions for symbols in the data segment, so we need to
+    # make sure CFI directives aren't emitted.
+    gcc_cv_as_cfi_directive=no
+    ;;
   *-*-solaris*)
     # If the linker used on Solaris (like Sun ld) isn't capable of merging
     # read-only and read-write sections, we need to make sure that the
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 763b094d6cf8..5d315a115910 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3549,6 +3549,14 @@ gcc_GAS_CHECK_FEATURE([cfi directives], 
gcc_cv_as_cfi_directive,,
        .cfi_escape 1, 2, 3, 4, 5
        .cfi_endproc],
 [case "$target" in
+  hppa*-*-hpux*)
+    # The HP dynamic linker relocates text and data separately, so
+    # differences between text and data don't work.  As a result,
+    # gas defines CFI_DIFF_EXPR_OK to 0.  We want to use difference
+    # expressions for symbols in the data segment, so we need to
+    # make sure CFI directives aren't emitted.
+    gcc_cv_as_cfi_directive=no
+    ;;
   *-*-solaris*)
     # If the linker used on Solaris (like Sun ld) isn't capable of merging
     # read-only and read-write sections, we need to make sure that the

Reply via email to