public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gold: provide __ehdr_start magic symbol
@ 2012-06-22 16:58 Roland McGrath
  2012-06-22 17:57 ` Ian Lance Taylor
  0 siblings, 1 reply; 3+ messages in thread
From: Roland McGrath @ 2012-06-22 16:58 UTC (permalink / raw)
  To: binutils

This makes gold define __ehdr_start, consistent with the change that just
went into BFD ld.

Ok for trunk?


Thanks,
Roland


gold/
2012-06-22  Roland McGrath  <mcgrathr@google.com>

	* layout.cc (finalize): Define __ehdr_start symbol if applicable.

diff --git a/gold/layout.cc b/gold/layout.cc
index 154be88..ad667ab 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -2509,6 +2509,16 @@ Layout::finalize(const Input_objects* input_objects, Symbol_table* symtab,
   while (target->may_relax()
 	 && target->relax(pass, input_objects, symtab, this, task));
 
+  // If there is a load segment that contains the file and program headers,
+  // provide a symbol __ehdr_start pointing there.
+  // A program can use this to examine itself robustly.
+  if (load_seg != NULL)
+    symtab->define_in_output_segment("__ehdr_start", NULL,
+				     Symbol_table::PREDEFINED, load_seg, 0, 0,
+				     elfcpp::STT_NOTYPE, elfcpp::STB_GLOBAL,
+				     elfcpp::STV_DEFAULT, 0,
+				     Symbol::SEGMENT_START, true);
+
   // Set the file offsets of all the non-data sections we've seen so
   // far which don't have to wait for the input sections.  We need
   // this in order to finalize local symbols in non-allocated

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gold: provide __ehdr_start magic symbol
  2012-06-22 16:58 [PATCH] gold: provide __ehdr_start magic symbol Roland McGrath
@ 2012-06-22 17:57 ` Ian Lance Taylor
  2012-06-22 18:03   ` Roland McGrath
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Lance Taylor @ 2012-06-22 17:57 UTC (permalink / raw)
  To: Roland McGrath; +Cc: binutils

Roland McGrath <mcgrathr@google.com> writes:

> 2012-06-22  Roland McGrath  <mcgrathr@google.com>
>
> 	* layout.cc (finalize): Define __ehdr_start symbol if applicable.

This is OK.

Thanks.

Ian

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gold: provide __ehdr_start magic symbol
  2012-06-22 17:57 ` Ian Lance Taylor
@ 2012-06-22 18:03   ` Roland McGrath
  0 siblings, 0 replies; 3+ messages in thread
From: Roland McGrath @ 2012-06-22 18:03 UTC (permalink / raw)
  To: Ian Lance Taylor; +Cc: binutils

Committed.

Thanks,
Roland

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-06-22 18:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-22 16:58 [PATCH] gold: provide __ehdr_start magic symbol Roland McGrath
2012-06-22 17:57 ` Ian Lance Taylor
2012-06-22 18:03   ` Roland McGrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).