diff mbox

LTO: display file name if LTO version check fails

Message ID 573DAFC8.9070800@suse.cz
State New
Headers show

Commit Message

Martin Liška May 19, 2016, 12:21 p.m. UTC
Hi.

During the compilation of chrome, I've noticed that they utilize 'cc' binary.
Because of that, I see LTO version check, but it would be quite useful to
see which file is affected.

Like:

lto1: fatal error: bytecode stream in file 'obj/third_party/icu/source/common/icuuc.cmemory.o' generated with LTO version 4.0 instead of the expected 6.0

Ready after it finishes regression tests?
Thanks,
Martin

Comments

Richard Biener May 19, 2016, 12:57 p.m. UTC | #1
On Thu, May 19, 2016 at 2:21 PM, Martin Liška <mliska@suse.cz> wrote:
> Hi.
>
> During the compilation of chrome, I've noticed that they utilize 'cc' binary.
> Because of that, I see LTO version check, but it would be quite useful to
> see which file is affected.
>
> Like:
>
> lto1: fatal error: bytecode stream in file 'obj/third_party/icu/source/common/icuuc.cmemory.o' generated with LTO version 4.0 instead of the expected 6.0
>
> Ready after it finishes regression tests?

Ok.

Richard.

> Thanks,
> Martin
>
diff mbox

Patch

From a65988d01557606296f420968e921ef58fd193b2 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Thu, 19 May 2016 14:17:03 +0200
Subject: [PATCH] LTO: display file name if LTO version check fails

gcc/ChangeLog:

2016-05-19  Martin Liska  <mliska@suse.cz>

	* lto-section-in.c (lto_get_section_data): Call
	lto_check_version with additional argument.
	* lto-streamer.c (lto_check_version): Add new argument.
	* lto-streamer.h (lto_check_version): Likewise.
---
 gcc/lto-section-in.c | 3 ++-
 gcc/lto-streamer.c   | 7 ++++---
 gcc/lto-streamer.h   | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/gcc/lto-section-in.c b/gcc/lto-section-in.c
index 93b82be..d8e74d7 100644
--- a/gcc/lto-section-in.c
+++ b/gcc/lto-section-in.c
@@ -168,7 +168,8 @@  lto_get_section_data (struct lto_file_decl_data *file_data,
     }
 
   lto_check_version (((const lto_header *)data)->major_version,
-		     ((const lto_header *)data)->minor_version);
+		     ((const lto_header *)data)->minor_version,
+		     file_data->file_name);
   return data;
 }
 
diff --git a/gcc/lto-streamer.c b/gcc/lto-streamer.c
index 5e35aac..bfde1fe 100644
--- a/gcc/lto-streamer.c
+++ b/gcc/lto-streamer.c
@@ -376,12 +376,13 @@  lto_orig_address_remove (tree t)
 /* Check that the version MAJOR.MINOR is the correct version number.  */
 
 void
-lto_check_version (int major, int minor)
+lto_check_version (int major, int minor, const char *file_name)
 {
   if (major != LTO_major_version || minor != LTO_minor_version)
     fatal_error (input_location,
-		 "bytecode stream generated with LTO version %d.%d instead "
-	         "of the expected %d.%d",
+		 "bytecode stream in file '%s' generated with LTO version "
+		 "%d.%d instead of the expected %d.%d",
+		 file_name,
 		 major, minor,
 		 LTO_major_version, LTO_minor_version);
 }
diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index 01c15ff..92efdb8 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -844,7 +844,7 @@  extern void lto_orig_address_map (tree, intptr_t);
 extern intptr_t lto_orig_address_get (tree);
 extern void lto_orig_address_remove (tree);
 #endif
-extern void lto_check_version (int, int);
+extern void lto_check_version (int, int, const char *);
 extern void lto_streamer_hooks_init (void);
 
 /* In lto-streamer-in.c */
-- 
2.8.2