This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[gold][patch] Write 0 as the data_offset of scripts
- From: Rafael Espindola <espindola at google dot com>
- To: Binutils <binutils at sourceware dot org>
- Cc: Ian Lance Taylor <iant at google dot com>
- Date: Tue, 1 Dec 2009 16:24:50 -0500
- Subject: [gold][patch] Write 0 as the data_offset of scripts
Linker scripts don't need any additional information. Write 0 for the
data_offset. This is mostly to reduce the noise from the following
patches.
2009-12-01 Rafael Avila de Espindola <espindola@google.com>
* incremental-dump.cc (main): Check that the offeset of a script is 0.
* incremental.cc (Incremental_inputs::sized_create_inputs_section_data):
Write 0 for the data_offset of scripts.
Cheers,
--
Rafael Ãvila de EspÃndola
diff --git a/gold/incremental-dump.cc b/gold/incremental-dump.cc
index daaee8a..9e750cb 100644
--- a/gold/incremental-dump.cc
+++ b/gold/incremental-dump.cc
@@ -166,6 +166,12 @@ main(int argc, char** argv)
break;
case INCREMENTAL_INPUT_SCRIPT:
printf("Linker script\n");
+ if (input->data_offset != 0)
+ {
+ fprintf(stderr,"%s: %s: %u is a script but offset is not zero",
+ argv[0], filename, i);
+ return 1;
+ }
break;
case INCREMENTAL_INPUT_INVALID:
default:
diff --git a/gold/incremental.cc b/gold/incremental.cc
index 97b3eea..e89372a 100644
--- a/gold/incremental.cc
+++ b/gold/incremental.cc
@@ -650,6 +650,22 @@ Incremental_inputs::sized_create_inputs_section_data()
int filename_offset =
this->strtab_->get_offset_from_key(it->second.filename_key);
entry.put_filename_offset(filename_offset);
+ switch (it->second.type)
+ {
+ case INCREMENTAL_INPUT_SCRIPT:
+ entry.put_data_offset(0);
+ break;
+ case INCREMENTAL_INPUT_ARCHIVE:
+ case INCREMENTAL_INPUT_OBJECT:
+ case INCREMENTAL_INPUT_SHARED_LIBRARY:
+ // TODO: add per input data. Currently we store
+ // an out-of-bounds offset for future version of gold to reject
+ // such an incremental_inputs section.
+ entry.put_data_offset(0xffffffff);
+ break;
+ default:
+ gold_unreachable();
+ }
// TODO: add per input data and timestamp. Currently we store
// an out-of-bounds offset for future version of gold to reject
// such an incremental_inputs section.