During the transition from soft to hard float, I made the default behavior
of the system as follows:
1. If the binary is hard float use the default ld.so paths
2. if there was no /usr/libsoft directory, use the default ld.so paths
3. otherwise use the soft ld.so paths.
which was fine as a transition in a -current environment which has rough
edges, but is now causing problems for people trying to execute FreeBSD 10
binaries on FreeBSD 11. I'd like to propose that we eliminate step 2 above
so we detect this cross-threading by default.
Furthermore, the above algorithm is used, even on armv4/v5 binaries where
we can't possibly have hard floating point. I'd further propose that we
eliminate the above algorithm altogether for those systems, or more
generally when we're compiling for soft floating point.
I believe this won't change anybody's FreeBSD experience, unless they have
an ld.so compiled for hard float, but every single other binary on the
system is somehow soft float. The only time I'm aware of when this happens
is when one is jumping the chasm from soft to hard float in an installworld
situation, which we can cope with LD_SOFT_ env settings for those that want
to jump from 10->current (which I posit may not exist).