On 2024-11-14 16:53, Christophe Lyon wrote:
On Sun, 10 Nov 2024 at 17:44, Torbjörn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:

Ok for trunk and releases/gcc-14?

--

When the feature "needs_status_wrapper" in dejagnu is used, the
resulting gcc_tg.o file is a regular object file and thus the following
warning will be emitted if doing an incremental link:

.../ld: warning: incremental linking of LTO and non-LTO objects; using 
-flinker-output=nolto-rel which will bypass whole program optimization

Since the warning causes test cases, like pr61123-enum-size, to fail,
prune it.

This makes sense. Just to be sure that -flinker-output=nolto-rel does
not avoid the problem described in PR61123,
any chance you could try revering SVN r211832 (well just remove "LTO"
from short-enums entry in c.opt) and see the original bug with the
warning (pruned)?

If I build r15-5047-g7e1d9f58858 with the following change (I obviously have my patch applied when testing it...):

diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 9b9f5e744f6..80d934b516d 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -2277,7 +2277,7 @@ C++ ObjC++ Optimization Var(flag_rtti) Init(1)
 Generate run time type descriptor information.

 fshort-enums
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
+C ObjC C++ ObjC++ Optimization Var(flag_short_enums)
 Use the narrowest integer type possible for enumeration types.

 fshort-wchar



For Cortex-A7, Cortex-M0/3/4/7/33/55/85, I get the following failure:

FAIL: object-readelf Tag_ABI_enum_size size is incorrect.

I suppose this is what you wanted to get confirmed, right?

We could, instead of pruning, add the -flonker-output=nolto-rel, but that fails to link as there is no main function etc.

I'm not sure that this answers you question, so if it's not what you had in mind, please let me know. :)


Kind regards,
Torbjörn


Thanks,

Christophe


gcc/testsuite/ChangeLog:

         * gcc.target/arm/lto/lto.exp: Prune incremental link warning if
         status wrapper is used.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
  gcc/testsuite/gcc.target/arm/lto/lto.exp | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/gcc/testsuite/gcc.target/arm/lto/lto.exp 
b/gcc/testsuite/gcc.target/arm/lto/lto.exp
index 4ccb0737253..3f8377bdd3e 100644
--- a/gcc/testsuite/gcc.target/arm/lto/lto.exp
+++ b/gcc/testsuite/gcc.target/arm/lto/lto.exp
@@ -43,6 +43,14 @@ if { ![check_effective_target_lto] } {
      return
  }

+# This variable should only apply to tests called in this exp file.
+global dg_runtest_extra_prunes
+set dg_runtest_extra_prunes ""
+if { ![check_effective_target_unwrapped] } {
+    # The status wrapper is a regular object file
+    lappend dg_runtest_extra_prunes "warning: incremental linking of LTO and 
non-LTO objects"
+}
+
  gcc_init
  lto_init no-mathlib

@@ -60,4 +68,5 @@ foreach src [lsort [find $srcdir/$subdir *_0.c]] {
      lto-execute $src $sid
  }

+set dg_runtest_extra_prunes ""
  lto_finish
--
2.25.1


Reply via email to