Go to file
Nick Alcock 8915c559d4 libctf, include: remove the nondeduplicating CTF linker
The nondeduplicating CTF linker was kept around when the deduplicating
one was added so that people had something to fall back to in case the
deduplicating linker turned out to be buggy.  It's now much more stable
than the nondeduplicating linker, in addition to much faster, using much
less memory and producing much better output.  In addition, while
libctf has a linker flag to invoke the nondeduplicating linker, ld does
not expose it: the only way to turn it on within ld is an intentionally-
undocumented environment variable.  So we can remove it without any ABI
or user-visibility concerns (the only thing we leave around is the
CTF_LINK_NONDEDUP flag, which can easily be interpreted as "deduplicate
less", though right now it does nothing).

This lets us remove a lot of complexity associated with tracking
filenames and CU names separately (something the deduplcating linker
never bothered with, since the cunames are always reliable and ld never
hands us useful filenames anyway)

The biggest lacuna left behind is the ctf_type_mapping machinery, which
slows down deduplicating links quite a lot.  We can't just ditch it
because ctf_add_type uses it: removing the slowdown from the
deduplicating linker is a job for another commit.

include/ChangeLog
2021-03-02  Nick Alcock  <nick.alcock@oracle.com>

	* ctf-api.h (CTF_LINK_SHARE_DUPLICATED): Note that this might
	merely change how much deduplication is done.

libctf/ChangeLog
2021-03-02  Nick Alcock  <nick.alcock@oracle.com>

	* ctf-link.c (ctf_create_per_cu): Drop FILENAME now that it is
	always identical to CUNAME.
	(ctf_link_deduplicating_one_symtypetab): Adjust.
	(ctf_link_one_type): Remove.
	(ctf_link_one_input_archive_member): Likewise.
	(ctf_link_close_one_input_archive): Likewise.
	(ctf_link_one_input_archive): Likewise.
	(ctf_link): No longer call it.  Drop CTF_LINK_NONDEDUP path.
	Improve header comment a bit (dicts, not files).  Adjust
	ctf_create_per_cu call.
	(ctf_link_deduplicating_variables): Simplify.
	(ctf_link_in_member_cb_arg_t) <cu_name>: Remove.
	<in_input_cu_file>: Likewise.
	<in_fp_parent>: Likewise.
	<done_parent>: Likewise.
	(ctf_link_one_variable): Turn uses of in_file_name to in_cuname.
2021-03-02 15:10:05 +00:00
bfd PR27451, -z start_stop_gc for powerpc64 2021-03-02 21:49:56 +10:30
binutils Warn for missing separate debug files only if needed 2021-03-01 05:34:47 -08:00
config config/debuginfod: do not include pkg.m4 directly 2021-02-13 00:15:11 -05:00
contrib
cpu Add Changelog entries and NEWS entries for 2.36 branch 2021-01-09 10:40:28 +00:00
elfcpp Add Changelog entries and NEWS entries for 2.36 branch 2021-01-09 10:40:28 +00:00
etc Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
gas Correct an error message in the ARM assembler. 2021-02-26 16:37:30 +00:00
gdb [PR gdb/27393] set directories: handle empty dirs. 2021-02-27 14:29:39 +00:00
gdbserver gdbserver: linux-low: make linux_process_target::filter_event return void 2021-02-23 10:56:56 -05:00
gdbsupport gnulib: update to 776af40e0 2021-02-05 13:35:20 -05:00
gnulib gnulib: update to 776af40e0 2021-02-05 13:35:20 -05:00
gold gold: Skip address size and segment selector for DWARF5 2021-01-28 04:21:31 -08:00
gprof Regen Makefile.in for jobserver.m4 aclocal.m4 dependency 2021-01-13 22:06:02 +10:30
include libctf, include: remove the nondeduplicating CTF linker 2021-03-02 15:10:05 +00:00
intl intl: turn LIBINTL into -L / -l form 2021-02-10 15:26:57 +00:00
ld PR27451, -z start_stop_gc for powerpc64 2021-03-02 21:49:56 +10:30
libctf libctf, include: remove the nondeduplicating CTF linker 2021-03-02 15:10:05 +00:00
libdecnumber
libiberty GCC: Check if AR works with --plugin and rc 2021-01-11 16:26:51 -08:00
opcodes RISC-V: PR27158, fixed UJ/SB types and added CSS/CL/CS types for .insn. 2021-02-19 11:44:49 +08:00
readline Use readline's variant of Windows patch 2021-01-23 09:24:20 -07:00
sim sim: igen: drop config.h & header checking 2021-02-28 03:32:47 -05:00
texinfo
zlib GCC: Check if AR works with --plugin and rc 2021-01-11 16:26:51 -08:00
.cvsignore
.gitattributes
.gitignore Add gnu global outputs to .gitignore 2020-12-02 10:00:27 -05:00
ar-lib
ChangeLog Add missing changes to Makefile.tpl 2021-02-28 04:39:38 -08:00
compile
config-ml.in
config.guess Update config.sub and config.guess 2021-01-05 15:55:59 +10:30
config.rpath
config.sub config.sub update broke powerpc-eabivle 2021-01-07 08:56:28 +10:30
configure Remove arm-symbianelf 2021-02-09 23:36:16 +10:30
configure.ac Remove arm-symbianelf 2021-02-09 23:36:16 +10:30
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4 GCC: Check if AR works with --plugin and rc 2021-01-11 16:26:51 -08:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def ld: depend on libctf 2021-01-27 11:04:12 +00:00
Makefile.in ld: depend on libctf 2021-01-27 11:04:12 +00:00
Makefile.tpl Add missing changes to Makefile.tpl 2021-02-28 04:39:38 -08:00
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode
setup.com
src-release.sh src-release: fix indentation 2021-01-12 18:19:20 -05:00
symlink-tree
test-driver
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.