aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2020-05-05 12:33:11 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2020-05-05 12:42:22 +0200
commit5269b24605b17211f34dd40df2d18ba7a7f481e2 (patch)
tree8837eee81dbd7ff67d62c12f8dacc61f95c4995f /gcc/gcc.c
parent2badc9885330b56dfabb49328c42de792bc67b1e (diff)
downloadgcc-5269b24605b17211f34dd40df2d18ba7a7f481e2.zip
gcc-5269b24605b17211f34dd40df2d18ba7a7f481e2.tar.gz
gcc-5269b24605b17211f34dd40df2d18ba7a7f481e2.tar.bz2
Silence warning in LTO mode on VxWorks
The link phase is always partial (-r) for VxWorks in kernel mode, which means that it uses incremental LTO linking by default (-flinker-output=rel). But in this mode the LTO plugin outputs a warning if one of the object files involved in the link does not contain LTO bytecode, before switching to nolto-rel mode. We do not do repeated incremental linking for VxWorks so silence the warning. lto-plugin/ * lto-plugin.c: Document -linker-output-auto-notlo-rel option. (linker_output_set): Change type to bool. (linker_output_known): Likewise. (linker_output_auto_nolto_rel): New variable. (all_symbols_read_handler): Take it into account. <LDPO_REL>: Do not issue the warning if it is set. (process_option): Process -linker-output-auto-notlo-rel. (cleanup_handler): Remove unused variable. (onload) <LDPT_LINKER_OUTPUT>: Adjust to above type change. gcc/ * gcc.c (LTO_PLUGIN_SPEC): Define if not already. (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC. * config/vxworks.h (LTO_PLUGIN_SPEC): Define.
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r--gcc/gcc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 9f790db..b0d0308 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -944,6 +944,10 @@ proper position among the other output files. */
# endif
#endif
+#ifndef LTO_PLUGIN_SPEC
+#define LTO_PLUGIN_SPEC ""
+#endif
+
/* Conditional to test whether the LTO plugin is used or not.
FIXME: For slim LTO we will need to enable plugin unconditionally. This
still cause problems with PLUGIN_LD != LD and when plugin is built but
@@ -968,6 +972,7 @@ proper position among the other output files. */
-plugin %(linker_plugin_file) \
-plugin-opt=%(lto_wrapper) \
-plugin-opt=-fresolution=%u.res \
+ " LTO_PLUGIN_SPEC "\
%{flinker-output=*:-plugin-opt=-linker-output-known} \
%{!nostdlib:%{!nodefaultlibs:%:pass-through-libs(%(link_gcc_c_sequence))}} \
}" PLUGIN_COND_CLOSE