This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]