PATCH: Fix the relax finalize pass

H. J. Lu hjl@lucon.org
Thu May 15 05:41:00 GMT 2003


On Wed, May 14, 2003 at 10:31:36PM -0700, Richard Henderson wrote:
> On Wed, May 14, 2003 at 07:19:12PM -0700, H. J. Lu wrote:
> > It sounds good. Are you going to implement it?
> 
> Not any time soon.
> 

How about this kludge in the meantime?

H.J.
-------------- next part --------------
2003-05-14  H.J. Lu <hongjiu.lu@intel.com>

	* ldlang.c (lang_size_sections): Don't adjust data segment
	address.

--- ld/ldlang.c.final	Tue May 13 08:42:40 2003
+++ ld/ldlang.c	Wed May 14 22:39:09 2003
@@ -3387,7 +3387,10 @@ lang_size_sections (s, output_section_st
   exp_data_seg.phase = exp_dataseg_none;
   result = lang_size_sections_1 (s, output_section_statement, prev, fill,
 				 dot, relax, check_regions);
-  if (exp_data_seg.phase == exp_dataseg_end_seen)
+  /* FIXME: We can't change data segment address after the final relax
+     pass starts. But we start to change it before the final relax pass
+     starts.  */
+  if (0 && exp_data_seg.phase == exp_dataseg_end_seen)
     {
       /* If DATA_SEGMENT_ALIGN DATA_SEGMENT_END pair was seen, check whether
 	 a page could be saved in the data segment.  */


More information about the Binutils mailing list