FreeBSD/libexec/rtld-elf/rtld.c
/*
 * Relocate newly-loaded shared objects.  The argument is a pointer to
 * the Obj_Entry for the first such object.  All objects from the first
 * to the end of the list of objects are relocated.  Returns 0 on success,
 * or -1 on failure.
 */
Relocate newly-loaded shared objects.  The argument is a pointer to
the Obj_Entry for the first such object.  All objects from the first
to the end of the list of objects are relocated.  Returns 0 on success,
or -1 on failure.
Relocate newly - loaded shared objects . The argument is a pointer to the Obj_Entry for the first such object . All objects from the first to the end of the list of objects are relocated . Returns 0 on success or - 1 on failure .
static int
relocate_objects(Obj_Entry *first, bool bind_now, Obj_Entry *rtldobj,
    int flags, RtldLockState *lockstate)
{
	Obj_Entry *obj;
	int error;
	for (error = 0, obj = first;  obj != NULL;
	    obj = TAILQ_NEXT(obj, next)) {
		if (obj->marker)
			continue;
		error = relocate_object(obj, bind_now, rtldobj, flags,
		    lockstate);
		if (error == -1)
			break;
	}
	return (error);
}
static int relocate_objects ( Obj_Entry * first , bool bind_now , Obj_Entry * rtldobj , int flags , RtldLockState * lockstate ) { Obj_Entry * obj ; int error ; for ( error = 0 , obj = first ; obj != NULL ; obj = TAILQ_NEXT ( obj , next ) ) { if ( obj -> marker ) continue ; error = relocate_object ( obj , bind_now , rtldobj , flags , lockstate ) ; if ( error == -1 ) break ; } return ( error ) ; }
Relocate newly-loaded shared objects.
Relocate newly - loaded shared objects .