Set __ehdr_start rel_from_abs earlier

Alan Modra amodra@gmail.com
Fri Jan 28 06:31:54 GMT 2022


This is just a tidy, making the __ehdr_start symbol flag tweaks all in
one place.

	* ldelf.c (ldelf_before_allocation): Don't set rel_from_abs
	for __ehdr_start.
	* ldlang.c (lang_symbol_tweaks): Set it here instead.

diff --git a/ld/ldelf.c b/ld/ldelf.c
index 121c25d948f..33c6a9f1f46 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -1619,7 +1619,6 @@ ldelf_before_allocation (char *audit, char *depaudit,
 		      sizeof ehdr_start_save_u);
 	      ehdr_start->type = bfd_link_hash_defined;
 	      /* It will be converted to section-relative later.  */
-	      ehdr_start->rel_from_abs = 1;
 	      ehdr_start->u.def.section = bfd_abs_section_ptr;
 	      ehdr_start->u.def.value = 0;
 	    }
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 4e6511ba4ff..5dd3df12a0f 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -7022,6 +7022,7 @@ lang_symbol_tweaks (void)
 	    h->other = (h->other & ~ELF_ST_VISIBILITY (-1)) | STV_HIDDEN;
 	  h->def_regular = 1;
 	  h->root.linker_def = 1;
+	  h->root.rel_from_abs = 1;
 	}
     }
 }

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list