From: mengqinggang <mengqingg...@loongson.cn>

Add "ld conftest.o -o conftest" process, then the "objdump -dr" contents
is right. Because gas write zero to objdec file and generate
R_LARCH_ADD_ULEB128/R_LARCH_SUB_ULEB128 reloc pair to calcualte uleb128
format symbol subtraction after ld relaxation.

gcc/ChangeLog:

        * configure: Regenerate.
        * configure.ac: Add "ld conftest.o -o conftest" process.
---
 gcc/configure    | 13 +++++++++++++
 gcc/configure.ac | 13 +++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/gcc/configure b/gcc/configure
index c7b26d1927d..d4763e6fd18 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -24638,6 +24638,19 @@ L2:
   test $ac_status = 0; }; }
     then
 
+case "$target" in
+  loongarch*-*-*)
+    if test "x$gcc_cv_ld" != x; then
+      ac_try='$gcc_cv_ld conftest.o -o conftest -e 0x0 >&5'
+      { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+      (eval $ac_try) 2>&5
+      ac_status=$?
+      $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+      test $ac_status = 0
+      mv conftest conftest.o
+    fi
+esac
+
 if test "x$gcc_cv_objdump" != x; then
   if $gcc_cv_objdump -s conftest.o 2>/dev/null \
      | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 09082e8ccae..072fe1d2b48 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3226,6 +3226,19 @@ L2:
        .uleb128 0x8000000000000000
 ],
 [[
+case "$target" in
+  loongarch*-*-*)
+    if test "x$gcc_cv_ld" != x; then
+      ac_try='$gcc_cv_ld conftest.o -o conftest -e 0x0 >&5'
+      { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+      (eval $ac_try) 2>&5
+      ac_status=$?
+      $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+      test $ac_status = 0
+      mv conftest conftest.o
+    fi
+esac
+
 if test "x$gcc_cv_objdump" != x; then
   if $gcc_cv_objdump -s conftest.o 2>/dev/null \
      | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
-- 
2.31.1

Reply via email to