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
>From a65988d01557606296f420968e921ef58fd193b2 Mon Sep 17 00:00:00 2001 From: marxin <mli...@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 <mli...@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