diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 94afbfc93f7d..d824dd811d15 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-11-20 Jan Hubicka + + * opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin. + * common.opt (fuse-linker-plugin): Add var. + 2013-11-20 Ilya Enkovich * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE. diff --git a/gcc/common.opt b/gcc/common.opt index 43d49ace352e..2216d6e0392e 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2247,7 +2247,7 @@ Common Negative(fuse-ld=bfd) Use the gold linker instead of the default linker fuse-linker-plugin -Common Undocumented +Common Undocumented Var(flag_use_linker_plugin) ; Positive if we should track variables, negative if we should run ; the var-tracking pass only to discard debug annotations, zero if diff --git a/gcc/opts.c b/gcc/opts.c index cd48c73267b2..d282d6df507f 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -809,10 +809,13 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set, #else error_at (loc, "LTO support has not been enabled in this configuration"); #endif - if (!opts->x_flag_fat_lto_objects && !HAVE_LTO_PLUGIN) + if (!opts->x_flag_fat_lto_objects + && (!HAVE_LTO_PLUGIN + || (opts_set->x_flag_use_linker_plugin + && !opts->x_flag_use_linker_plugin))) { if (opts_set->x_flag_fat_lto_objects) - error_at (loc, "-fno-fat-lto-objects are supported only with linker plugin."); + error_at (loc, "-fno-fat-lto-objects are supported only with linker plugin"); opts->x_flag_fat_lto_objects = 1; } }