Remove trailing spaces in ld
[binutils-gdb.git] / ld / ldexp.c
index a5192b1eaad6c361ec96d363f090043c0d6a7015..1d4da9aadb4780f6e0077f1cc448117a0c281e4e 100644 (file)
@@ -877,7 +877,7 @@ fold_name (etree_type *tree)
 }
 
 /* Return true if TREE is '.'.  */
+
 static bfd_boolean
 is_dot (const etree_type *tree)
 {
@@ -1026,7 +1026,12 @@ exp_fold_tree_1 (etree_type *tree)
              /* If we are assigning to dot inside an output section
                 arrange to keep the section, except for certain
                 expressions that evaluate to zero.  We ignore . = 0,
-                . = . + 0, and . = ALIGN (. != 0 ? expr : 1).  */
+                . = . + 0, and . = ALIGN (. != 0 ? expr : 1).
+                We can't ignore all expressions that evaluate to zero
+                because an otherwise empty section might have padding
+                added by an alignment expression that changes with
+                relaxation.  Such a section might have zero size
+                before relaxation and so be stripped incorrectly.  */
              if (expld.phase == lang_mark_phase_enum
                  && expld.section != bfd_abs_section_ptr
                  && !(expld.result.valid_p