How can I stretch a bone's tail to another bone or empty with a constraint? A want the second bone's tail to stretch to the third's head. 

I have tried to use the Stretch To constraint but then I would need the target to be at the tail at start.

Is there a way to force the tail position to the thirds head?



It's a bit confusing... The bone has only one position in pose mode, but in edit mode it has two positions (head and tail). So when using the stretch to constraint all it can do is to scale the bone. What I really want is to adjust the length of the bone but that attribute doesn't makes sens in pose mode.

The end goal of this is to create joins aligned to other objects and then Apply Pose As Rest Pose. 

I'm starting to think it wasn't a good idea.

[Edit]
There is apparently no way of doing this using bone constraints only.
It could be done with an intermediate object constraint but it would be a complicated and not a useful solution.
It seems to me that there is some confusion between pose mode and edit mode: if your end goal is to apply pose as rest pose, it means that you want to have your rig modified in edit mode: this is the same result as editing in edit mode: so go to edit mode, select the head of the third bone, press Shift S "cursor to selected", then select the tail of the second bone, press Shift S "Selection to cursor". Then you'll have to choose if the third bone is connected and parented to the second or not (by now they only share the same location in one joint): if you want that select the third, shift select the second, press Ctrl P and choose "connected".