aboutsummaryrefslogtreecommitdiff
path: root/lto-plugin
AgeCommit message (Collapse)AuthorFilesLines
2022-08-02Daily bump.GCC Administrator1-0/+6
2022-08-01lto: replace $target with $host in configure.ac [PR106170]Martin Liska2-2/+2
PR lto/106170 lto-plugin/ChangeLog: * configure.ac: Replace $target with $host. * configure: Regenerate.
2022-07-15Daily bump.GCC Administrator1-0/+8
2022-07-14lto-plugin: use -pthread only for detected targetsMartin Liska4-6/+16
Use -pthread only if we are going to use pthread functionality. PR bootstrap/106156 lto-plugin/ChangeLog: * Makefile.am: Use ac_lto_plugin_extra_ldflags for AM_LDFLAGS. * configure.ac: Use AC_SUBST(ac_lto_plugin_extra_ldflags). * Makefile.in: Regenerate. * configure: Regenerate.
2022-07-13Daily bump.GCC Administrator1-0/+7
2022-07-12lto-plugin: implement LDPT_GET_API_VERSIONMartin Liska3-2/+49
include/ChangeLog: * plugin-api.h (enum linker_api_version): New enum. (ld_plugin_get_api_version): New. (enum ld_plugin_tag): Add LDPT_GET_API_VERSION. (struct ld_plugin_tv): Add tv_get_api_version. lto-plugin/ChangeLog: * lto-plugin.c (negotiate_api_version): New. (onload): Negotiate API version. * Makefile.am: Add -DBASE_VERSION. * Makefile.in: Regenerate.
2022-07-08Daily bump.GCC Administrator1-0/+11
2022-07-07lto-plugin: use locking only for selected targetsMartin Liska4-18/+53
For now, support locking only for linux targets that are different from riscv* where the target depends on libatomic (and fails during bootstrap). PR lto/106170 lto-plugin/ChangeLog: * configure.ac: Configure HAVE_PTHREAD_LOCKING. * lto-plugin.c (LOCK_SECTION): New. (UNLOCK_SECTION): New. (claim_file_handler): Use the newly added macros. (onload): Likewise. * config.h.in: Regenerate. * configure: Regenerate.
2022-07-02Daily bump.GCC Administrator1-0/+8
2022-07-01lto: pass -pthread to AM_LDFLAGS [PR 106118]Pekka Seppänen4-10/+6
Move -pthread from configure.ac to Makefile.in so that it is passed to AM_LDFLAGS. PR lto/106118 lto-plugin/ChangeLog: * configure.ac: Move -pthread from here... * Makefile.am: ...to here. * configure: Regenerate. * Makefile.in: Likewise.
2022-06-28Daily bump.GCC Administrator1-0/+9
2022-06-27lto-plugin: make claim_file_handler thread-safeMartin Liska4-2/+45
lto-plugin/ChangeLog: * lto-plugin.c (plugin_lock): New lock. (claim_file_handler): Use mutex for critical section. (onload): Initialize mutex. * configure.ac: Check for pthread.h. * configure: Regenerate. * config.h.in: Regenerate.
2022-06-21Daily bump.GCC Administrator1-0/+7
2022-06-20lto-plugin: support LDPT_GET_SYMBOLS_V3Martin Liska1-7/+35
That supports skipping of an object file (LDPS_NO_SYMS). lto-plugin/ChangeLog: * lto-plugin.c (struct plugin_file_info): Add skip_file flag. (write_resolution): Write resolution only if get_symbols != LDPS_NO_SYMS. (all_symbols_read_handler): Ignore file if skip_file is true. (onload): Handle LDPT_GET_SYMBOLS_V3.
2022-05-05Daily bump.GCC Administrator1-0/+9
2022-05-04LTO plugin: modernize a bit.Martin Liska1-9/+10
include/ChangeLog: * plugin-api.h (enum ld_plugin_tag): Do not set implicit enum values. lto-plugin/ChangeLog: * lto-plugin.c (struct plugin_objfile): Use bool for offset field. (exec_lto_wrapper): Assign true/false to bool variables. (process_offload_section): Likewise. (claim_file_handler): Likewise. (onload): Likewise.
2022-03-23Daily bump.GCC Administrator1-0/+14
2022-03-22lto-plugin: Use GNU ld or Solaris ld version script in preference to ↵Jakub Jelinek5-8/+179
-export-symbols-regex [PR102426] As reported, libtool -export-symbols-regex doesn't work on Solaris when using GNU ld instead of Sun ld, libtool just always assumes Sun ld. As I'm unsure what is the maintainance status of libtool right now, this patch solves it on the lto-plugin side instead, tests at configure time similar way how libssp and other target libraries test for symbol versioning (except omitting the symbol version because we just want one GLOBAL symbol and rest of them LOCAL), and will use the current way of -export-symbols-regex onload as fallback when this doesn't work. 2022-03-22 Jakub Jelinek <jakub@redhat.com> PR lto/102426 lto-plugin/ * configure.ac (LTO_PLUGIN_USE_SYMVER, LTO_PLUGIN_USE_SYMVER_GNU, LTO_PLUGIN_USE_SYMVER_SUN): New test for symbol versioning support. * Makefile.am (version_arg, version_dep): Set conditionally based on LTO_PLUGIN_USE_SYMVER*. (liblto_plugin_la_LDFLAGS): Use $(version_arg) instead of -export-symbols-regex onload. (liblto_plugin_la_DEPENDENCIES): Depend on $(version_dep). * lto-plugin.map: New file. * configure: Regenerated. * Makefile.in: Regenerated.
2022-03-12Daily bump.GCC Administrator1-0/+5
2022-03-11lto-plugin: Honor link_output_name for -foffload-objects file nameTobias Burnus1-1/+8
lto-plugin/ChangeLog: * lto-plugin.c (all_symbols_read_handler): With -save-temps, use link_output_name for -foffload-objects's file name, if available.
2022-03-02Daily bump.GCC Administrator1-0/+6
2022-03-01lto-plugin: update comments - remove hardwired goldMartin Liska1-7/+7
lto-plugin/ChangeLog: * lto-plugin.c (process_offload_section): Use a linker as many comments are connected to gold linker. (process_option): Likewise.
2022-01-03Update copyright years.Jakub Jelinek1-1/+1
2021-12-03Daily bump.GCC Administrator1-0/+7
2021-12-02fix spelling of -linker-output-auto-nolto-relRasmus Villemoes1-2/+4
The transposition nolto -> notlo is confusing and it makes the long name even harder to read than it already is - I kept reading it as "not lo" until I realized it was a simple typo. Fixes: 5269b24605b1 (Silence warning in LTO mode on VxWorks) lto-plugin/ * lto-plugin.c: Fix -linker-output-auto-notlo-rel -> -linker-output-auto-nolto-rel typo. (process_option): Adjust accordingly, accepting both old and new spelling. gcc/ * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected spelling of -linker-output-auto-nolto-rel.
2021-09-14Daily bump.GCC Administrator1-0/+6
2021-09-13Fix PR lto/49664: liblto_plugin.so exports too many symbolsAndrew Pinski2-4/+6
So right now liblto_plugin.so exports many libiberty symbols and simple_object file symbols but really it just needs to export onload. This fixes the problem by using "-export-symbols-regex onload" on the libtool link line. lto-plugin/ChangeLog: PR lto/49664 * Makefile.am: Export only onload. * Makefile.in: Regenerate.
2021-06-26Daily bump.GCC Administrator1-0/+7
2021-06-25add -ltrans-objects lto-plugin debug optionRichard Biener1-0/+12
This adds a -ltrans-objects option to lto-plugin that by-passes lto-wrapper invocation and instead feeds LD the final LTRANS objects directly from the response file given as argument to the option. This allows LD issues involving the linker-plugin path to be debugged in an easier way with just the IR objects (their symtab) and the LTRANS objects as testcase. I've tested the path re-building stage2 build/genmatch from an LTO bootstrap and got a bit-identical executable by adding -plugin-opt=-ltrans-objects=y to the original collect2 invocation, seeding y with the final objects as printed by building genmatch with -save-temps -v. 2021-06-22 Richard Biener <rguenther@suse.de> lto-plugin/ * lto-plugin.c (ltrans_objects): New global. (all_symbols_read_handler): If -ltrans-objects was specified, add the output files from the specified file directly. (process_option): Handle -ltrans-objects.
2021-05-11Daily bump.GCC Administrator1-0/+18
2021-05-10LTO plugin: use startswith function.Martin Liska1-16/+13
lto-plugin/ChangeLog: * lto-plugin.c (LTO_SEGMENT_NAME): Remove. (LTO_SYMTAB_PREFIX): Likewise. (LTO_SYMTAB_PREFIX_LEN): Likewise. (LTO_SYMTAB_EXT_PREFIX): Likewise. (LTO_SYMTAB_EXT_PREFIX_LEN): Likewise. (LTO_LTO_PREFIX): Likewise. (LTO_LTO_PREFIX_LEN): Likewise. (OFFLOAD_SECTION): Likewise. (OFFLOAD_SECTION_LEN): Likewise. (startswith): New function. (all_symbols_read_handler): Use it. (process_symtab): Likewise. (process_symtab_extension): Likewise. (process_offload_section): Likewise. (process_option): Likewise.
2021-05-04Daily bump.GCC Administrator1-0/+5
2021-05-03GCC_CET_HOST_FLAGS: Check if host supports multi-byte NOPsH.J. Lu1-16/+47
Check if host supports multi-byte NOPs before enabling CET on host. gcc/ PR bootstrap/99703 * configure: Regenerated. libbacktrace/ PR bootstrap/99703 * configure: Regenerated. libcc1/ PR bootstrap/99703 * configure: Regenerated. libcpp/ PR bootstrap/99703 * configure: Regenerated. libdecnumber/ PR bootstrap/99703 * configure: Regenerated. lto-plugin/ PR bootstrap/99703 * configure: Regenerated.
2021-04-22Daily bump.GCC Administrator1-0/+4
2021-04-21Fix clang warning (-Wstring-plus-int)Martin Liska1-3/+3
This fixes: lto-plugin.c:642:7: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int] lto-plugin/ChangeLog: * lto-plugin.c (exec_lto_wrapper): Make a temp variable.
2021-01-06Daily bump.GCC Administrator1-0/+4
2021-01-05Update GNU/Hurd configure supportSamuel Thibault1-11/+1
ChangeLog: * libtool.m4: Match gnu* along other GNU systems. * libgo/config/libtool.m4: Match gnu* along other GNU systems. * libgo/configure: Re-generate. libffi/ * configure: Re-generate. libgomp/ * configure: Re-generate. gcc/ * configure: Re-generate. libatomic/ * configure: Re-generate. libbacktrace/ * configure: Re-generate. libcc1/ * configure: Re-generate. libgfortran/ * configure: Re-generate. libgomp/ * configure: Re-generate. libhsail-rt/ * configure: Re-generate. libitm/ * configure: Re-generate. libobjc/ * configure: Re-generate. liboffloadmic/ * configure: Re-generate. * plugin/configure: Re-generate. libphobos/ * configure: Re-generate. libquadmath/ * configure: Re-generate. libsanitizer/ * configure: Re-generate. libssp/ * configure: Re-generate. libstdc++-v3/ * configure: Re-generate. libvtv/ * configure: Re-generate. lto-plugin/ * configure: Re-generate. zlib/ * configure: Re-generate.
2021-01-04Update copyright years.Jakub Jelinek1-1/+1
2020-11-30Daily bump.GCC Administrator1-0/+4
2020-11-29Fix hppa64-hpux11 build to remove source paths from embedded path.John David Anglin1-2/+2
This change adds the +nodefaultrpath ld option to remove all library paths that were specified with the -L option from the embedded path. 2020-11-29 John David Anglin <danglin@gcc.gnu.org> ChangeLog: * libtool.m4 (archive_cmds): Add +nodefaultrpath ld option on hppa64-*-hpux11*. libatomic/ChangeLog: * configure: Regenerate. libbacktrace/ChangeLog: * configure: Regenerate. libcc1/ChangeLog: * configure: Regenerate. libffi/ChangeLog: * configure: Regenerate. libgfortran/ChangeLog: * configure: Regenerate. libgomp/ChangeLog: * configure: Regenerate. libhsail-rt/ChangeLog: * configure: Regenerate. libitm/ChangeLog: * configure: Regenerate. libobjc/ChangeLog: * configure: Regenerate. liboffloadmic/ChangeLog: * configure: Regenerate. * plugin/configure: Regenerate. libquadmath/ChangeLog: * configure: Regenerate. libsanitizer/ChangeLog: * configure: Regenerate. libssp/ChangeLog: * configure: Regenerate. libstdc++-v3/ChangeLog: * configure: Regenerate. libvtv/ChangeLog: * configure: Regenerate. lto-plugin/ChangeLog: * configure: Regenerate. zlib/ChangeLog: * configure: Regenerate.
2020-11-26Daily bump.GCC Administrator1-0/+5
2020-11-25libsanitizer: Add option to bootstrap using HWASANMatthew Malcomson2-4/+4
This is an analogous option to --bootstrap-asan to configure. It allows bootstrapping GCC using HWASAN. For the same reasons as for ASAN we have to avoid using the HWASAN sanitizer when compiling libiberty and the lto-plugin. Also add a function to query whether -fsanitize=hwaddress has been passed. ChangeLog: * configure: Regenerate. * configure.ac: Add --bootstrap-hwasan option. config/ChangeLog: * bootstrap-hwasan.mk: New file. gcc/ChangeLog: * doc/install.texi: Document new option. libiberty/ChangeLog: * configure: Regenerate. * configure.ac: Avoid using sanitizer. lto-plugin/ChangeLog: * Makefile.am: Avoid using sanitizer. * Makefile.in: Regenerate.
2020-09-11Daily bump.GCC Administrator1-0/+5
2020-09-10Cygwin/MinGW: Do not version lto pluginsJonathan Yong2-2/+2
GCC on Linux already uses liblto_plugin.so directly without the libtool version suffix, adjust windows GCC to do the same. gcc/ChangeLog: * config.host: Adjust plugin name for Windows. lto-plugin/ChangeLog: * Makefile.am: drop versioning from libtool completely. * Makefile.in: regenerate.
2020-09-10Daily bump.GCC Administrator1-0/+7
2020-09-09If the lto plugin encounters a file with multiple symbol sections, each of ↵Nick Clifton1-8/+23
which also has a v1 symbol extension section[1] then it will attempt to read the extension data for *every* symbol from each of the extension sections. This results in reading off the end of a buffer with the associated memory corruption that that entails. This patch fixes that problem. 2020-09-09 Nick Clifton <nickc@redhat.com> * lto-plugin.c (struct plugin_symtab): Add last_sym field. (parse_symtab_extension): Only read as many entries as are available in the buffer. Store the data read into the symbol table indexed from last_sym. Increment last_sym.
2020-07-31Daily bump.GCC Administrator1-0/+5
2020-07-30Require CET support only for the final GCC buildH.J. Lu1-6/+19
With --enable-cet, require CET support only for the final GCC build. Don't enable CET without CET support for non-bootstrap build, in stage1 nor for build support. config/ PR bootstrap/96202 * cet.m4 (GCC_CET_HOST_FLAGS): Don't enable CET without CET support in stage1 nor for build support. gcc/ PR bootstrap/96202 * configure: Regenerated. libbacktrace/ PR bootstrap/96202 * configure: Regenerated. libcc1/ PR bootstrap/96202 * configure: Regenerated. libcpp/ PR bootstrap/96202 * configure: Regenerated. libdecnumber/ PR bootstrap/96202 * configure: Regenerated. libiberty/ PR bootstrap/96202 * configure: Regenerated. lto-plugin/ PR bootstrap/96202 * configure: Regenerated.
2020-05-30Daily bump.GCC Administrator1-0/+5
2020-05-29Avoid nested save_CFLAGS and save_LDFLAGSH.J. Lu1-6/+6
Avoid nested save_CFLAGS and save_LDFLAGS by replacing save_CFLAGS and save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS in cet.m4. config/ PR bootstrap/95413 * cet.m4: Replace save_CFLAGS and save_LDFLAGS with cet_save_CFLAGS and cet_save_LDFLAGS. gcc/ PR bootstrap/95413 * configure: Regenerated. libatomic/ PR bootstrap/95413 * configure: Regenerated. libbacktrace/ PR bootstrap/95413 * configure: Regenerated. libcc1/ PR bootstrap/95413 * configure: Regenerated. libcpp/ PR bootstrap/95413 * configure: Regenerated. libdecnumber/ PR bootstrap/95413 * configure: Regenerated. libgcc/ PR bootstrap/95413 * configure: Regenerated. libgfortran/ PR bootstrap/95413 * configure: Regenerated. libgomp/ PR bootstrap/95413 * configure: Regenerated. libiberty/ PR bootstrap/95413 * configure: Regenerated. libitm/ PR bootstrap/95413 * configure: Regenerated. libobjc/ PR bootstrap/95413 * configure: Regenerated. libphobos/ PR bootstrap/95413 * configure: Regenerated. libquadmath/ PR bootstrap/95413 * configure: Regenerated. libsanitizer/ PR bootstrap/95413 * configure: Regenerated. libssp/ PR bootstrap/95413 * configure: Regenerated. libstdc++-v3/ PR bootstrap/95413 * configure: Regenerated. libvtv/ PR bootstrap/95413 * configure: Regenerated. lto-plugin/ PR bootstrap/95413 * configure: Regenerated. zlib/ PR bootstrap/95413 * configure: Regenerated.