2013-04-26 Geoff Pike <gpike@chromium.org>

gold/
	* gold.cc (queue_final_tasks): invoke layout->queue_build_id_tasks().
	* layout.cc (Hash_task): New class.
	(Layout::queue_build_id_tasks): New function.
	(Layout::write_build_id): Handle single-thread portion of build ID
	computation.  (In some cases, all of it is single-threaded.)  Replace
	{sha1,md5}_process_bytes with {sha1,md5}_buffer to get the same
	functionality in fewer lines of code.
	* layout.h (Layout::queue_build_id_tasks): New function declaration.
	* options.h (General_options): make "--build-id" default to tree
	rather than sha1.  Add two new options related to --build-id=tree:
	--build-id-chunk-size-for-treehash and
	--build-id-min-file-size-for-treehash.
	* Makefile.am: add testing of --build-id=tree and related new options
	(these tests will be invoked by "make check").
	* Makefile.in: Regenerate.
This commit is contained in:
Cary Coutant
2013-04-26 21:38:57 +00:00
parent ee441d9a9a
commit e7c5ea405f
7 changed files with 310 additions and 35 deletions

View File

@@ -678,10 +678,19 @@ class General_options
DEFINE_bool(Bsymbolic_functions, options::ONE_DASH, '\0', false,
N_("Bind defined function symbols locally"), NULL);
DEFINE_optional_string(build_id, options::TWO_DASHES, '\0', "sha1",
DEFINE_optional_string(build_id, options::TWO_DASHES, '\0', "tree",
N_("Generate build ID note"),
N_("[=STYLE]"));
DEFINE_uint64(build_id_chunk_size_for_treehash,
options::TWO_DASHES, '\0', 2 << 20,
N_("Chunk size for '--build-id=tree'"), N_("SIZE"));
DEFINE_uint64(build_id_min_file_size_for_treehash, options::TWO_DASHES,
'\0', 40 << 20,
N_("Minimum output file size for '--build-id=tree' to work"
" differently than '--build-id=sha1'"), N_("SIZE"));
DEFINE_bool(check_sections, options::TWO_DASHES, '\0', true,
N_("Check segment addresses for overlaps (default)"),
N_("Do not check segment addresses for overlaps"));