ppc476 linker workaround shared lib fixes again
[deliverable/binutils-gdb.git] / ld / ldexp.c
index f2c8620a4651aa2604b66291513db4c69697ad76..a5192b1eaad6c361ec96d363f090043c0d6a7015 100644 (file)
@@ -575,7 +575,6 @@ fold_binary (etree_type *tree)
                  else if (expld.dataseg.phase == exp_dataseg_none)
                    {
                      expld.dataseg.phase = exp_dataseg_align_seen;
-                     expld.dataseg.min_base = expld.dot;
                      expld.dataseg.base = expld.result.value;
                      expld.dataseg.pagesize = commonpage;
                      expld.dataseg.maxpagesize = maxpage;
@@ -588,7 +587,10 @@ fold_binary (etree_type *tree)
          break;
 
        case DATA_SEGMENT_RELRO_END:
+         /* Operands swapped!  DATA_SEGMENT_RELRO_END(offset,exp)
+            has offset in expld.result and exp in lhs.  */
          expld.dataseg.relro = exp_dataseg_relro_end;
+         expld.dataseg.relro_offset = expld.result.value;
          if (expld.phase == lang_first_phase_enum
              || expld.section != bfd_abs_section_ptr)
            expld.result.valid_p = FALSE;
@@ -828,15 +830,18 @@ fold_name (etree_type *tree)
 
     case LENGTH:
       {
-        lang_memory_region_type *mem;
-
-        mem = lang_memory_region_lookup (tree->name.name, FALSE);
-        if (mem != NULL)
-          new_number (mem->length);
-        else
-          einfo (_("%F%S: undefined MEMORY region `%s'"
-                  " referenced in expression\n"),
-                tree, tree->name.name);
+      if (expld.phase != lang_first_phase_enum)
+        {
+          lang_memory_region_type *mem;
+
+          mem = lang_memory_region_lookup (tree->name.name, FALSE);
+          if (mem != NULL)
+            new_number (mem->length);
+          else
+            einfo (_("%F%S: undefined MEMORY region `%s'"
+             " referenced in expression\n"),
+           tree, tree->name.name);
+        }
       }
       break;
 
This page took 0.024155 seconds and 4 git commands to generate.