diff options
author | Martin Liska <mliska@suse.cz> | 2019-09-06 08:58:42 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-09-06 06:58:42 +0000 |
commit | 67f6e64994b49ec330708e1655065dbd9741e1d6 (patch) | |
tree | 46ebc6701f5d6390841af0ca16cc9e0c51bf23e2 /gcc/collect2.c | |
parent | ebd247d4b3813f3d1ab83d04e338ed566d10de3e (diff) | |
download | gcc-67f6e64994b49ec330708e1655065dbd9741e1d6.zip gcc-67f6e64994b49ec330708e1655065dbd9741e1d6.tar.gz gcc-67f6e64994b49ec330708e1655065dbd9741e1d6.tar.bz2 |
Remove support for repo files (PR c++/91125).
2019-09-06 Martin Liska <mliska@suse.cz>
PR c++/91125
* Makefile.in: Remove tlink.o.
* collect2.c (do_link): New function isolated
from do_tlink.
(main): Use.
* collect2.h (do_tlink): Remove declaration of do_tlink.
* doc/extend.texi: Remove documentation of -frepo.
* doc/invoke.texi: Likewise.
* doc/sourcebuild.texi: Remove cleanup-repo-files.
* tlink.c: Remove.
2019-09-06 Martin Liska <mliska@suse.cz>
PR c++/91125
* c-common.c: Remove definition of flag_use_repository.
* c-common.h: Likewise.
* c-opts.c (c_common_handle_option):
Do not handle OPT_frepo option.
* c.opt: Mark the option with Deprecated.
2019-09-06 Martin Liska <mliska@suse.cz>
PR c++/91125
* Make-lang.in: Remove repo.o.
* config-lang.in: Likewise.
* cp-tree.h (init_repo): Remove declarations
of repo-related functions.
(repo_emit_p): Likewise.
(repo_export_class_p): Likewise.
(finish_repo): Likewise.
* decl2.c (import_export_class): Always
set -1 value/
(mark_needed): Remove -frepo from comment.
(import_export_decl): Similarly here.
(c_parse_final_cleanups): Remove call of finish_repo.
* lex.c (cxx_init): Remove call to init_repo.
* optimize.c (can_alias_cdtor): Remove dead condition.
* pt.c (push_template_decl_real): Update comment.
(instantiate_decl): Remove dead code used for -frepo.
* repo.c: Remove.
2019-09-06 Martin Liska <mliska@suse.cz>
PR c++/91125
* g++.dg/parse/repo1.C: Remove.
* g++.dg/rtti/repo1.C: Remove.
* g++.dg/template/repo1.C: Remove.
* g++.dg/template/repo10.C: Remove.
* g++.dg/template/repo11.C: Remove.
* g++.dg/template/repo2.C: Remove.
* g++.dg/template/repo3.C: Remove.
* g++.dg/template/repo4.C: Remove.
* g++.dg/template/repo5.C: Remove.
* g++.dg/template/repo6.C: Remove.
* g++.dg/template/repo7.C: Remove.
* g++.dg/template/repo8.C: Remove.
* g++.dg/template/repo9.C: Remove.
* g++.old-deja/g++.pt/instantiate4.C: Remove.
* g++.old-deja/g++.pt/instantiate6.C: Remove.
* g++.old-deja/g++.pt/repo1.C: Remove.
* g++.old-deja/g++.pt/repo2.C: Remove.
* g++.old-deja/g++.pt/repo3.C: Remove.
* g++.old-deja/g++.pt/repo4.C: Remove.
* lib/g++.exp: Remove removal of repo files.
* lib/gcc-dg.exp: Likewise.
* lib/obj-c++.exp: Likewise.
From-SVN: r275450
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r-- | gcc/collect2.c | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c index e25e339..4972072 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -825,6 +825,30 @@ maybe_run_lto_and_relink (char **lto_ld_argv, char **object_lst, else post_ld_pass (false); /* No LTO objects were found, no temp file. */ } +/* Entry point for linker invoation. Called from main in collect2.c. + LD_ARGV is an array of arguments for the linker. */ + +static void +do_link (char **ld_argv) +{ + struct pex_obj *pex; + const char *prog = "ld"; + pex = collect_execute (prog, ld_argv, NULL, NULL, + PEX_LAST | PEX_SEARCH, + HAVE_GNU_LD && at_file_supplied); + int ret = collect_wait (prog, pex); + if (ret) + { + error ("ld returned %d exit status", ret); + exit (ret); + } + else + { + /* We have just successfully produced an output file, so assume that we + may unlink it if need be for now on. */ + may_unlink_output_file = true; + } +} /* Main program. */ @@ -1704,7 +1728,7 @@ main (int argc, char **argv) functions from precise cross reference insertions by the compiler. */ if (early_exit || ld1_filter != SCAN_NOTHING) - do_tlink (ld1_argv, object_lst); + do_link (ld1_argv); if (early_exit) { @@ -1762,10 +1786,10 @@ main (int argc, char **argv) #endif ) { - /* Do tlink without additional code generation now if we didn't + /* Do link without additional code generation now if we didn't do it earlier for scanning purposes. */ if (ld1_filter == SCAN_NOTHING) - do_tlink (ld1_argv, object_lst); + do_link (ld1_argv); if (lto_mode) maybe_run_lto_and_relink (ld1_argv, object_lst, object, false); @@ -1868,13 +1892,13 @@ main (int argc, char **argv) fork_execute ("gcc", c_argv, at_file_supplied); #ifdef COLLECT_EXPORT_LIST - /* On AIX we must call tlink because of possible templates resolution. */ - do_tlink (ld2_argv, object_lst); + /* On AIX we must call link because of possible templates resolution. */ + do_link (ld2_argv); if (lto_mode) maybe_run_lto_and_relink (ld2_argv, object_lst, object, false); #else - /* Otherwise, simply call ld because tlink is already done. */ + /* Otherwise, simply call ld because link is already done. */ if (lto_mode) maybe_run_lto_and_relink (ld2_argv, object_lst, object, true); else |