Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/libexec/ld.elf_so



In article <20260210060331.08706F986%cvs.NetBSD.org@localhost>,
Nick Hudson <source-changes-d%NetBSD.org@localhost> wrote:
>-=-=-=-=-=-
>
> static void
>+_rtld_call_preinit_functions(sigset_t *mask)
>+{
>+#ifdef HAVE_INITFINI_ARRAY
>+	Obj_Entry      *obj = _rtld_objmain;
>+
>+	/*
>+	 * Process the init_array if it exists.  Simply go from  start
>+	 * to end.
>+	 */
>+	while (obj->preinit_arraysz > 0) {
>+		fptr_t preinit = *obj->preinit_array++;
>+		obj->preinit_arraysz--;
>+		dbg (("calling preinit_array function %s at %p",
>+		    obj->path, (void *)preinit));
>+		_rtld_call_initfini_function(preinit, mask);
>+	}
>+#endif /* HAVE_INITFINI_ARRAY */

I thought that you were going to fix this so that iterating does
not alter the object's array/arraysz values, like FreeBSDs doesn't?

christos



Home | Main Index | Thread Index | Old Index