This fixes c++ libraries not implicitly linking in libc++. This is
generally not an issue because the final linking with the compiled binary
will involve CXX via PROG_CXX or other means. It is however
inconsistent with libraries implicitly linking in libc and problematic
for trying to build libraries with '-z defs' to ensure all direct
dependencies are linked in.
libatf-c++ is currently the only consumer of this new feature. Its
before and after direct-linkage is shown below:
Before:
/usr/lib/private/libatf-c++.so.2:
libatf-c.so.1 => /usr/lib/private/libatf-c.so.1 (0x80161e000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801835000) libc.so.7 => /lib/libc.so.7 (0x800822000)
After:
/usr/lib/private/libatf-c++.so.2:
libatf-c.so.1 => /usr/lib/private/libatf-c.so.1 (0x80161e000) libc++.so.1 => /usr/lib/libc++.so.1 (0x801835000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x801af5000) libm.so.5 => /lib/libm.so.5 (0x801d13000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801f3d000) libc.so.7 => /lib/libc.so.7 (0x800822000)
While here, unduplicate the linker line for handling of NM and unhide
the linker execution line.
Sponsored by: EMC / Isilon Storage Division