diff options
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/incremental-dump.cc | 6 | ||||
-rw-r--r-- | gold/incremental.cc | 16 |
3 files changed, 28 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 7368334..f727c5f 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,11 @@ 2009-12-02 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. + +2009-12-02 Rafael Avila de Espindola <espindola@google.com> + * testsuite/Makefile.am: Add the incremental_test.sh test. * testsuite/incremental_test.sh: New. * testsuite/incremental_test_1.c: New. 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. |